Имя: Пароль:
1C
1С v8
УФ. ХранилищеЗначений. Проблема с записью
0 Krolik Bezobraznik
 
28.12.18
11:10
Добрый день,

есть управляемая форма элемента справочника. У справочника есть ТЧ, а у ТЧ реквизиты один из которых имеет тип ХранилищеЗначение.

На Сервере заполняю несколько реквизитов, в том числе и реквизит с хранилищем, в него пишу массив.

Для этого использую алгоритм

МетаданныеТаблицы = Метаданные.ВнешниеИсточникиДанных.<ИмяИсточникаДанных>.Таблицы[ИмяSQLТаблицы];

КоллекцияРеквизитов = МетаданныеТаблицы.Поля;

ЭлементОбъект = ДанныеФормыВЗначение(Объект, Тип("СправочникОбъект.<ИмяСправочника>"));
    
ТЧШапка = ЭлементОбъект.Шапка;

ТЧШапка.Очистить();

КоллекцияРеквизитов = МетаданныеТаблицы.Поля;
    
Для каждого ЭлементКоллекции ИЗ КоллекцияРеквизитов Цикл

    нСтрока = ТЧШапка.Добавить();
    ЗаполнитьЗначенияСвойств(нСтрока, ЭлементКоллекции);
    Если ЭлементКоллекции.РазрешитьNull Тогда
        нСтрока.ИсточникЗаполнения = Перечисления.WMS_ИсточникЗаполненияПоляДокумента.НеЗаполнять;
    КонецЕсли;
    
    Если ЗначениеЗаполнено(ИмяКлюча) Тогда
        нСтрока.ПолеКлюча = ИмяКлюча = ЭлементКоллекции.Имя;
        нСтрока.ИсточникЗаполнения = Перечисления.WMS_ИсточникЗаполненияПоляДокумента.НеЗаполнять;
    КонецЕсли;
    
    ВремХранилище = Новый ХранилищеЗначения(ЭлементКоллекции.Тип.Типы(), Новый СжатиеДанных(9));
    нСтрока.Типы = ВремХранилище;
    
КонецЦикла;

ЗначениеВДанныеФормы(ЭлементОбъект, Объект);

Отладчиком проверял. при заполнении строки данные в реквизит попадают. 100%

Затем при попытке получить из строки из хранилища массив 1С возвращает НЕОПРЕДЕЛЕНО.

Подозреваю что связано это с тем что реквизит с типом Хранилище значений не отображается на форме и потому при помещении значения в данные формы он не заполняется.

Как быть? Есть мысли?
1 palsergeich
 
28.12.18
11:13
(0) Это очно не изза того что элемент не отображается.
2 palsergeich
 
28.12.18
11:16
Есть подозрение что это изза того что при распоковке Типы хранят в себе ссылку на МетаданныеТаблицы
А их нет.
3 palsergeich
 
28.12.18
11:18
Точнее ммылку на конкретный экземпляр МетаданныеТаблицы
4 Krolik Bezobraznik
 
28.12.18
11:21
(2) Типы() возвращает массив, который я пишу в реквизит ТЧ.
5 palsergeich
 
28.12.18
11:30
(4) Проблема не с типом Массив.
А с содержимым элементов массива
6 palsergeich
 
28.12.18
11:31
Ради теста - запихни в массив простые строки и проверь.
Должно работать корректно и при распаковке - данные будут.
Программист всегда исправляет последнюю ошибку.