Утро бодрое
Написал внешнюю обработку для изменения заполнения табличной части.
Суть. Поступает кабельная продукция мотками по 100 метров. Мотков может быть 100 шт.
Отгрузка производится как мотками, так и смотанными кусками. Руководство желает видеть точное соответствие остатков на мотках. Решили реализовать через характеристики.
Соответственно необходимо чтобы на каждый моток формировалась своя характеристика.
Обработка это и делает.
Загружается в обработку табличная часть документа целикком, пользователь в документе вводит только общую длинну позиции. Есть доп. поле длинна мотка. В соответствии с этой длинной создается характеристики на необходимое количество мотков. Позиция дублируется необходимое количество раз со всеми необходимыми значениями строки. Все хорошо.
НО при выгрузке в документ происходит следующее выгружатся вся табличка из обработки но характеристики заполняются у 3-х первых. Причем это может быть и одна номенклатурная позиция и несколько.
Выгрузка происходит через КопироватьДанныеФормы(Объект, НовыйОбъект);
если использовать типовой механизм
ОбработкаТабличнойЧастиСервер.ЗаполнитьСлужебныеРеквизитыПоНоменклатуреВКоллекции(
НовыйОбъект.Товары,
Новый Структура("ЗаполнитьПризнакХарактеристикиИспользуются",
Новый Структура("Номенклатура", "ХарактеристикиИспользуются")
));
появляется ошибка
Нельзя изменять поле, содержащее объект данных формы
НовыйОбъект.Товары получаем из
КлючПоиска = Новый Структура("Ключ", ЭтаФорма.ОбъектыНазначения[0].Значение);
Окна = ПолучитьОкна();
Для каждого Окно из Окна Цикл
Если НЕ Окно.Основное И Найти(Окно.Заголовок, ЭтаФорма.ОбъектыНазначения[0].Значение) Тогда
Форма = ОткрытьФорму("Документ.ЗаказПоставщику.Форма.ФормаДокумента",КлючПоиска,,,Окно);
НовыйОбъект = Форма.Объект;
добавил в табличную часть обработки реквизит "ХарактеристикиИспользуются", заполнил необходимыми значениями при выгрузке в документ все встает как нужно
можно закрывать тему
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан