Работа с формой:
Выбираем вид номенклатуры и характеристику, которой будем заполнять документы.
Добавляем позиции номенклатуры в табличную часть. Можно по одной, можно по кнопке "Подобрать номенклатуру" заполнить через стандартную обработку подбора. При переносе данных через обработку подбора будут перенесены только те позиции, у которых совпадает вид с выбранным на форме.
Далее нажимаем "Проверить ссылки" и на форме отобразится таблица с документами имеющими ссылки на отмеченную в таблице "Номенклатура для отбора" номенклатуру.
Далее нажимаем кнопку "Заполнить характеристики" и обработка выполнит заполнение и проведение документов. Если документ не проведётся, тогда пометка на строке не снимется после обработки. Можно запустить несколько раз, так как проведению может мешать последовательность документов, и проблема проведения будет устранена после проведения связанных документов.
Если включен флаг "Режим загрузка данных", тогда проведение документов не происходит, только запись.
Если заполнение документов выполняете с отключением контроля остатков по организациям, не забудьте проверить корректность остатков после обработки данных.
При наличии ордерного склада, для проведения расходных ордеров и и связанных с ними распоряжений, можно отключить на время обработки контроль оперативных остатков.
По алгоритму обработки:
Обрабатываются табличные части с именами:
- "Товары",
- "ТоварыПоРаспоряжениям",
- "ОтгружаемыеТовары",
- "ВыходныеИзделияСерии",
- "ПобочныеИзделия",
- "ПобочныеИзделияСерии",
- "ОбеспечениеМатериаламиИРаботами",
- "РасходМатериаловИРабот",
- "ЭкономияМатериалов",
- "ЭкономияМатериаловСерии",
- "Товары2_5"
Если в документе уже заполнена характеристика выбранным значением, тогда пометка со строки снимается, документ не изменяется и не перезаписывается.
Строки в документах отбираются и изменяются только по отмеченной в табличной части "Номенклатура к обработке" номенклатуре.
Поиск ссылок стандартными методами:
ОтборСтрок = Новый Структура("Пометка", Истина);
МассивСтрок = ТЗНоменклатура.НайтиСтроки(ОтборСтрок);
ЧтоИщем = ТЗНоменклатура.Выгрузить(МассивСтрок, "Номенклатура").ВыгрузитьКолонку("Номенклатура");
Ссылки = НайтиПоСсылкам(ЧтоИщем, Новый Массив, ВключаемыеОбъекты);
Если ТипЗнч(Ссылки) = Тип("ТаблицаЗначений") Тогда
Ссылки.свернуть("Ссылка, Данные, Метаданные");
Ссылки.Сортировать("Данные");
ВывестиРезультатНаФорму(Ссылки);
КонецЕсли;
Проверено на
- 1С:Предприятие 8.3 (8.3.22.1709)
- Конфигурация: 1С:ERP Управление предприятием 2 (2.5.9.131)