Имя: Пароль:
1C
1С v8
Программное заполнение варианта обеспечения
0 geminisf
 
20.01.23
09:25
Доброго всем дня!
Конфигурация УТ 11.1.10.176.
Программно создается документ "Заказ на сборку". Необходимо у этого нового документа проставить вариант обеспечения. Пытаюсь сделать вот так:

                
МассивВариантовОбеспечения = Новый Массив;
МассивВариантовОбеспечения.Добавить(Перечисления.ВариантыОбеспечения.Отгрузить);

МассивИндексовВыделенныхСтрок = Новый Массив;

Для каждого СтрокаТабличнойЧасти Из СборкаТовара.Товары Цикл
    МассивИндексовВыделенныхСтрок.Добавить(СтрокаТабличнойЧасти.НомерСтроки - 1);
КонецЦикла;

ПутиКДанным = Новый Соответствие();
ПутиКДанным.Вставить("ДатаОтгрузки", "НачалоСборкиРазборки");
ПутиКДанным.Вставить("Назначение", "НазначениеТовары");

ПараметрыЗаполнения = Новый Структура("ИмяТабличнойЧасти", "Товары");
ПараметрыЗаполнения.Вставить("ПутиКДанным", ПутиКДанным);
ПараметрыЗаполнения.Вставить("МенеджерРегистра", РегистрыНакопления.ЗаказыНаСборку);

ТаблицаОбеспечения  = ОбеспечениеСервер.ТаблицаЗаполнениеОбеспеченияДокумента(СборкаТовара, МассивВариантовОбеспечения, ПараметрыЗаполнения, МассивИндексовВыделенныхСтрок);



СборкаТовара - это программно созданный, но ещё не записанный документ "Заказ на сборку". Ошибка возникает в общем модуле на этой строке:

Таблица = Приемник.Товары[ИменаСвойств.Получить(Строка.ВариантОбеспечения)];


Строка.ВариантОбеспечения = Неопределено. Ошибка "Получение элемента по индексу для значения не определено".
Собственно вопрос - Как сделать правильно? Или может есть другой способ установить вариант обеспечения для программно создаваемого документа?
1 mikecool
 
20.01.23
09:30
правильно - понять, что за коллекция Товары у тебя и использовать соотв метод
2 geminisf
 
20.01.23
09:31
(1) Это табличная часть документа
3 geminisf
 
20.01.23
09:37
(1) Если речь про это Приемник.Товары, то это структура, в которую помещены скопированные данные
4 Мультук
 
гуру
20.01.23
10:03
(0)

Очевидно 1С ожидает, что в Строка.ВариантОбеспечения лежит уже что-то осмысленное, например Перечисления.ВариантыОбеспечения.КОбеспечению
5 geminisf
 
20.01.23
10:33
(4) Я также думаю, но пока не могу туда понять как при программном создании документа туда что-то подставить.
6 lubitelxml
 
20.01.23
10:38
(5) а в чем проблема? Добавляешь строку в ТЧ, заполняешь ВариантОбеспечения.
7 Мультук
 
гуру
20.01.23
11:02
(5)

эээ

Для каждого СтрокаТабличнойЧасти Из СборкаТовара.Товары Цикл
    СтрокаТабличнойЧасти.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.Отгрузить;
    //или так, не знаю чего хочешь
    //СтрокаТабличнойЧасти.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.КОбеспечению;
КонецЦикла;
8 shuhard
 
20.01.23
11:08
(5)[но пока не могу туда понять как при программном создании документа туда что-то подставить.]
определить доступность, возможно расщепить строку на части