При производстве и продаже готовой продукции (например, пластиковых окон, дверей или сборных конструкций) часто возникает задача: вместе с основным изделием отгрузить клиенту набор сопутствующей мелочевки — монтажную пену, анкерные пластины, заглушки, саморезы и прочий крепеж. При этом состав и количество расходных материалов напрямую зависят от габаритов, профиля или типа самого изделия, а списание материалов должно происходить отдельно от производственной себестоимости продукции.
Разберем, почему стандартные инструменты конфигурации «1С:Управление производственным предприятием» (УПП) не всегда подходят для этой задачи «из коробки», и какие варианты реализации наиболее эффективны и удобны для пользователей.
Прежде чем выбирать архитектуру решения, проанализируем поведение типовых объектов конфигурации:
ОтчетПроизводстваЗаСмену. Поскольку окно является произведенной продукцией с типом Товар (учитывается на счете 43), сделать его одновременно «набором» в типовом функционале нельзя.Номенклатура и лишнему документообороту.Наиболее гибкий и рекомендуемый способ — использование типового механизма дополнительных внешних обработок табличных частей без внесения изменений в конфигурацию. Менеджер заполняет документ ЗаказПокупателя или РеализацияТоваровУслуг позициями готовых окон, после чего по кнопке Заполнить запускает обработку расчета сопутствующих материалов.
Разберем по шагам алгоритм работы такой обработки:
Товары, находя в них готовую продукцию.Посмотрим на пример программной логики заполнения табличной части документа реализации:
// В модуле объекта внешней обработки заполнения ТЧ
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле = Неопределено) Экспорт
ТаблицаТоваров = Объект.Товары;
НовыеСтроки = Новый ТаблицаЗначений;
НовыеСтроки.Колонки.Добавить("Номенклатура");
НовыеСтроки.Колонки.Добавить("Количество");
НовыеСтроки.Колонки.Добавить("ЕдиницаИзмерения");
НовыеСтроки.Колонки.Добавить("Коэффициент");
Для Каждого Стр Из ТаблицаТоваров Цикл
// Проверяем принадлежность к готовой продукции
Если Стр.Номенклатура.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Окна ПВХ") Тогда
// Расчет сопутствующих материалов исходя из количества окон
КоличествоОкон = Стр.Количество;
// Пример расчета пены монтажной (1 баллон на окно)
СтрокаМатериала = НовыеСтроки.Добавить();
СтрокаМатериала.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("ПЕНА001");
СтрокаМатериала.Количество = КоличествоОкон * 1;
СтрокаМатериала.ЕдиницаИзмерения = СтрокаМатериала.Номенклатура.БазоваяЕдиницаИзмерения;
СтрокаМатериала.Коэффициент = 1;
// Пример расчета анкерных пластин (6 шт на окно)
СтрокаКрепежа = НовыеСтроки.Добавить();
СтрокаКрепежа.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("КРЕП006");
СтрокаКрепежа.Количество = КоличествоОкон * 6;
СтрокаКрепежа.ЕдиницаИзмерения = СтрокаКрепежа.Номенклатура.БазоваяЕдиницаИзмерения;
СтрокаКрепежа.Коэффициент = 1;
КонецЕсли;
КонецЦикла;
// Добавляем рассчитанные строки в документ
Для Каждого СтрДобавления Из НовыеСтроки Цикл
ЗаполнитьЗначенияСвойств(ТаблицаТоваров.Добавить(), СтрДобавления);
КонецЦикла;
КонецПроцедуры
Обработка регистрируется в справочнике ВнешниеОбработки с видом обработки Заполнение табличных частей для необходимых документов продаж.
Если требуется обойтись исключительно типовыми средствами без написания программного кода, рассмотрим вариант с разделением номенклатурных позиций:
Номенклатура создается парный виртуальный элемент с типом Набор-пакет (например, «Комплект крепежа для Окна Тип-1»).Данный вариант не требует программирования, однако требует от менеджера дисциплины и двойного выбора строк в документе.
Для автоматизации отгрузки комплектов сопутствующей фурнитуры к готовой продукции в 1С:УПП оптимальным решением является подключение внешней обработки заполнения табличной части. Это исключает ручные ошибки менеджеров, сохраняет типовую конфигурацию на стандартной поддержке и позволяет гибко менять нормативы комплектации в зависимости от параметров заказа.