Имя: Пароль:
1C
1С v8
Как программно проверить принадлежит ли цвет веб цветам 1с
,
0 igorius
 
23.09.15
15:29
Добрый день, подскажите, как программно проверить выбранный цвет входит в вебцвета или нет.

Заранее спасибо.
1 Fragster
 
гуру
23.09.15
15:30
СериализаторXDTO.XMLСтрока(Цвет) начинается с {http://v8.1c.ru/8.1/data/ui/colors/web}
2 Fragster
 
гуру
23.09.15
15:31
но проблема в том, что если цвет был создан через RGB по значениям, совпадающим с вебцветами, то это никак не проверить
3 Живой Ископаемый
 
23.09.15
15:34
Значения системных перечислений не перебираются по индексу.

Сообщить(WEBЦвета.Количество());
Сообщить(WEBЦвета.Индекс(WEBЦвета.ЛососьСветлый));

Код обработки строки результата: Строка 1: Метод объекта не обнаружен (Количество)



так что подготовить самому каким-то образом структуру, и на вхождение в нее проверять
4 Живой Ископаемый
 
23.09.15
15:40
Можно было бы черезз XMLЗначение, но такой код:
====
Сообщить(XMLСтрока(WebЦвета.БледноКрасноФиолетовый));
Выдает "Код обработки строки результата: Строка 1: Ошибка при вызове метода контекста (XMLСтрока): Ошибка преобразования данных XML"

И в СП читаем:

Глобальный контекст.XMLСтрока (Global context.XMLString)
Глобальный контекст (Global context)
XMLСтрока (XMLString)
Синтаксис:

XMLСтрока(<Значение>)
Параметры:

<Значение> (обязательный)

Тип: Неопределено; Null; Булево; Число; Строка; Дата; УникальныйИдентификатор; ДвоичныеДанные; ХранилищеЗначения; значения перечислений, значения системных перечислений (ВидСчета; ВидДвиженияБухгалтерии; ВидДвиженияНакопления; ДопустимыйЗнак; ДопустимаяДлина; ЧастиДаты) или все ссылки на объекты базы данных.


То есть только для конкретных системных перечислений, и WEBЦвета в них не входят
5 Fragster
 
гуру
23.09.15
15:41
(4) прочитай еще раз (1)
6 Живой Ископаемый
 
23.09.15
15:42
муйня какая-то написано, а что?
7 Гёдза
 
23.09.15
15:42
СериализаторXDTO.XMLСтрока(Цвет)
8 Fragster
 
гуру
23.09.15
15:43
(6) очки протри
9 Живой Ископаемый
 
23.09.15
15:44
да ок-ок...
10 igorius
 
23.09.15
15:45
Всем спасибо, походу нашел способ это сделать )
11 Бубка Гоп
 
23.09.15
15:47
(10) Только не вздумай его раскрывать, вдруг кому то тоже понадобится. Так пусть еще тему создадут, правильно?
12 Живой Ископаемый
 
23.09.15
15:55
да и так все понятно
ж = СериализаторXDTO.XMLСтрока(WebЦвета.БледноКрасноФиолетовый);
Сообщить(ж);
Выдает

{http://v8.1c.ru/8.1/data/ui/colors/web}PaleVioletRed
13 igorius
 
23.09.15
15:55
(11) пособ не универсальный(наверное) но для моего случая подходит

Если Лев(Строка(ДанныеВыбора.Цвет.Вид), 3) = "Web" Тогда
Сообщить("Цвет входит в WebЦвета");
КонецЕсли;
14 Бубка Гоп
 
23.09.15
15:57
(13) Гениально, однако.
15 Гёдза
 
23.09.15
16:03
Цвет.Вид = ВидЦвета.WebЦвет
16 igorius
 
23.09.15
16:06
(15) То что искал!) у меня часто бывает, что я не вижу очевидные решения, огромное спасибо!!!)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший