|
1C 8.3 УФ ПолучитьЦветИзХранилищаЗначений |
☑ |
0
Darhon
22.01.16
✎
11:26
|
Доброе утро! Есть вопрос, помогите решить непонятное...Вот код:
Если ЗначениеЗаполнено(Выборка.Статус) Тогда
Цвет = Выборка.Статус.Цвет; //здесь в отладчике ТИП ХранилищеЗн
Если НЕ Цвет = Неопределено Тогда
ЦветФона=Цвет.Получить(); //А здесь уже неопределено
НовыйЭлемент.ЦветФона = ЦветФона; //Здесь падает с ошибкой несоответствия типов
КонецЕсли;
КонецЕсли;
Статус - это справочник с реквизитом цвет типа ХранЗначений, при записи элемента в ХЗ сохраняется цвет из диалого. А В коде приведенном выше он вытаскивается запросом. Вопрос в следующем, как получить цвет из хранилища из внешней обработки? Заранее спасибо
|
|
1
Lexey_
22.01.16
✎
11:55
|
(0) ЦветФона=Цвет.Получить();//А здесь уже неопределено
значит, хранилище пусто
|
|
2
Darhon
22.01.16
✎
11:56
|
(0) Причем при открытии самого элемента справочника видно, что значение цвета сохраняется в хранилище.
|
|
3
Darhon
22.01.16
✎
11:56
|
(1) В коде справочника
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Цвет = ТекущийОбъект.Цвет.Получить();
КонецПроцедуры
Все нормально.
|
|
4
Fragster
гуру
22.01.16
✎
11:57
|
храни в строке через СериализаторXDTO.XMLСтрока() и СериализаторXDTO.XMLЗначение(). тогда сразу будет понятно, где цвета нет. да и в УФ с клиент-сервером проще, так как хранилища на клиенте нет в принципе
|
|
5
Darhon
22.01.16
✎
11:58
|
(4) Не работал с сериализатором Как это можно примерно реализовать?
|
|
6
Darhon
22.01.16
✎
12:02
|
XMLСтрока(<Значение>)
Параметры:
<Значение> (обязательный)
Тип: Неопределено; Null; Булево; Число; Строка; Дата; УникальныйИдентификатор; ДвоичныеДанные; ХранилищеЗначения; значения перечислений, значения системных перечислений (ВидСчета; ВидДвиженияБухгалтерии; ВидДвиженияНакопления; ДопустимыйЗнак; ДопустимаяДлина; ЧастиДаты) или все ссылки на объекты базы данных.
С цветом не работает :(
|
|
7
Fragster
гуру
22.01.16
✎
12:02
|
Строка = СериализатоXDTO.XMLСтрока(Цвет);
Цвет = СериализатоXDTO.XMLЗначение(Тип("Цвет"), Строка);
Ну, или что-то типа того. В СП лень смотреть
|
|
8
Fragster
гуру
22.01.16
✎
12:02
|
(6) сериализаторррррр
|
|
9
FIXXXL
22.01.16
✎
16:07
|
или подшамань код
Если ЗначениеЗаполнено(Выборка.Статус) Тогда
Цвет = Выборка.Статус.Цвет;//здесь в отладчике ТИП ХранилищеЗн
ЦветФона=Цвет.Получить();//А здесь уже неопределено
Если НЕ ЦветФона= Неопределено Тогда
НовыйЭлемент.ЦветФона = ЦветФона;//Здесь падает с ошибкой несоответствия типов
КонецЕсли;
КонецЕсли;
|
|