Как в 1С:УНФ реализовать разделение готовой продукции на упаковки с уникальными штрихкодами и контролем отгрузки?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Промышленность, строительство и АПК
← На главную

На производственных предприятиях (особенно в мебельной отрасли, производстве дверей или крупногабаритного оборудования) часто возникает задача поупаковочного учета. Готовое изделие, например диван или шкаф, изготавливается как единое целое, но для транспортировки разбирается на несколько составных частей (упаковок). Каждая упаковка заворачивается в пленку или картон, маркируется собственной этикеткой с уникальным штрихкодом (ШК). При отгрузке клиенту кладовщик должен отсканировать ШК абсолютно всех упаковок, чтобы исключить риск некомплектной поставки.

В типовой конфигурации 1С:Управление нашей фирмой (УНФ) готовое изделие учитывается как одна номенклатурная позиция. Прямого механизма автоматического деления одной штуки товара на несколько маркируемых грузовых мест «из коробки» не предусмотрено. В этой статье мы подробно разберем несколько вариантов реализации такой схемы учета: от использования типового функционала до кастомных доработок и интеграции со сторонним программным обеспечением.

Бизнес-процесс и требования к системе

Прежде чем переходить к технической реализации в 1С, давайте детально проанализируем схему работы и сформулируем ключевые требования к системе:

  1. Позаказное производство: Каждое изделие уникально, имеет свои характеристики и уникальный серийный номер. Двух одинаковых изделий в системе быть не может.
  2. Нормативное количество упаковок: Количество упаковок для каждого изделия фиксировано и задается в карточке номенклатуры (например, диван всегда состоит из 4 упаковок: каркас, подлокотники, подушки, фурнитура).
  3. Маркировка на выпуске: В процессе упаковки готового изделия система должна сгенерировать уникальные штрихкоды для каждого места (упаковки) и распечатать этикетки вида «Диван №1001, упаковка 1 из 4».
  4. Контроль отгрузки на складе: При сборке заказа покупателя кладовщик должен отсканировать все 4 упаковки. Если отсканировано только 3, система должна заблокировать проведение расходного документа и сообщить о некомплектности.

---

Вариант 1. Упаковка как последний передел производства (Типовой функционал)

Рассмотрим самый близкий к типовой методологии 1С вариант, предложенный опытными пользователями на форуме. Мы можем представить процесс упаковки как финальный этап (передел) производства.

При такой схеме в спецификации изделия настраивается многоэтапное производство:

Для реализации штрихкодирования упаковок в данном сценарии мы можем использовать печатную форму «Упаковочный лист». При проведении документа выпуска готовой продукции формируется упаковочный лист, в котором выводятся строки для каждого грузового места. В состав упаковочного листа выводится основной штрихкод изделия с дополнительным префиксом или суффиксом номера упаковки.

Преимущества метода: Точный расчет себестоимости с учетом затрат на упаковочные материалы и трудоемкость работы упаковщиков.

Минусы метода: В типовой УНФ упаковочные листы имеют ограниченный функционал и требуют ручного контроля со стороны кладовщика, так как система не умеет автоматически проверять сканирование каждой отдельной коробки в рамках одного серийного номера без доработок.

---

Вариант 2. Использование механизма «Серийные номера»

Проанализируем возможность адаптации стандартного механизма серийных номеров УНФ под учет упаковок. Каждому изготовленному изделию присваивается уникальный серийный номер (например, СН-2023-0001).

Мы можем программно или организационно связать штрихкоды упаковок с этим серийным номером. Схема генерации штрихкодов в таком случае будет выглядеть следующим образом:

При выпуске продукции принтер этикеток сразу распечатывает ленту из 4 этикеток. На каждой этикетке выводится текстовая информация (номер упаковки, общие габариты) и уникальный линейный или QR-код, содержащий вышеуказанную строковую структуру.

При отгрузке в рабочем месте кладовщика сканирование любого из этих кодов должно распознаваться системой как сканирование части конкретного изделия с серийным номером СН-2023-0001. Кладовщик сканирует все коробки подряд, а система заполняет внутреннюю таблицу проверки отгрузки. Как только будут зафиксированы все индексы от 1 до 4 для данного серийного номера, строка считается собранной.

---

Вариант 3. Использование функционала «Наборы»

Если специфика производства позволяет хранить упаковки как отдельные складские сущности, то мы можем применить механизм Наборов.

В этом случае в справочнике Номенклатура создается элемент Диван (Набор). Для этого набора настраивается состав:

Каждая упаковка является отдельной номенклатурной позицией, имеет свой собственный уникальный штрихкод в регистре сведений Штрихкоды номенклатуры.

Как это работает в документах:

  1. В Заказе покупателя и Расходной накладной менеджер выбирает одну позицию — Диван (Набор).
  2. Для склада документ автоматически «раскрывается» до комплектующих.
  3. Кладовщик в форме проверки отгрузки сканирует штрихкоды каждой отдельной упаковки. Пока все элементы набора не будут отсканированы, документ не будет проведен.

Минус этого подхода: Придется вести складской учет в разрезе отдельных упаковок. Если на производстве повредится одна упаковка, на складе возникнет пересортица комплектующих, что усложнит инвентаризацию.

---

Вариант 4. Кастомная доработка: Регистр связи упаковок

Если мы хотим сохранить учет готовой продукции как единой целой штуки, но получить полный контроль над упаковками, наилучшим решением будет создание небольшого расширения для 1С:УНФ.

Разберем по шагам, какие объекты необходимо создать и как настроить логику их работы.

Шаг 1. Создание регистра сведений «Упаковки изделий»

Создадим новый независимый регистр сведений УпаковкиИзделий со следующей структурой:

Шаг 2. Генерация штрихкодов при выпуске продукции

В документе Производство при его проведении (или по кнопке «Упаковать и распечатать») должен запускаться алгоритм автоматической генерации записей в наш регистр и печать этикеток. Напишем пример функции генерации уникального штрихкода для упаковки:


Функция СгенерироватьШтрихкодУпаковки(СерийныйНомер, НомерУпаковки) Экспорт
    // Формируем уникальный префикс предприятия (например, 29)
    Префикс = "29";
    // Получаем чистый номер из серийного номера (очищаем от спецсимволов)
    КодСерии = СокрЛП(СерийныйНомер.Код);
    Пока СтрДлина(КодСерии) < 8 Цикл
        КодСерии = "0" + КодСерии;
    КонецЦикла;
    // Форматируем номер упаковки (двузначное число)
    СтрокаНомера = Формат(НомерУпаковки, "ЧЦ=2; ЧГ=0");
    
    // Собираем штрихкод без контрольного символа (всего 12 символов для EAN-13)
    ШтрихкодБезКонтрольного = Префикс + КодСерии + СтрокаНомера;
    
    // Вычисляем контрольный символ EAN-13
    Четные = 0; Нечетные = 0;
    Для Индекс = 1 По 12 Цикл
        Цифра = Число(Сред(ШтрихкодБезКонтрольного, Индекс, 1));
        Если Индекс % 2 = 0 Тогда
            Четные = Четные + Цифра;
        Иначе
            Нечетные = Нечетные + Цифра;
        КонецЕсли;
    КонецЦикла;
    Сумма = Нечетные + (Четные * 3);
    Остаток = Сумма % 10;
    КонтрольныйСимвол = ?(Остаток = 0, 0, 10 - Остаток);
    
    Возврат ШтрихкодБезКонтрольного + Строка(КонтрольныйСимвол);
КонецФункции

Данный алгоритм формирует полноценный штрихкод формата EAN-13, который легко считывается любым стандартным сканером штрихкодов или терминалом сбора данных (ТСД).

---

Шаг 3. Доработка формы проверки и подбора продукции (РМК кладовщика)

Для того чтобы кладовщик не мог отгрузить товар без сканирования всех коробок, нам необходимо доработать форму проверки отгрузки в документе Расходная накладная.

Создадим расширение для формы проверки и перехватим событие сканирования штрихкода. Проанализируем логику обработки отсканированного штрихкода:


&НаКлиенте
Процедура Расш_ПриСканированииШтрихкода(Штрихкод)
    // 1. Ищем штрихкод в нашем регистре упаковок
    ДанныеУпаковки = ПолучитьДанныеУпаковкиНаСервере(Штрихкод);
    
    Если ДанныеУпаковки = Неопределено Тогда
        Предупреждение("Штрихкод не зарегистрирован в базе упаковок!");
        Возврат;
    КонецЕсли;
    
    // 2. Проверяем, есть ли такое изделие в документе отгрузки
    СтрокаДокумента = НайтиСтрокуПоСерийномуНомеру(ДанныеУпаковки.СерийныйНомер);
    Если СтрокаДокумента = Неопределено Тогда
        Предупреждение("Данное изделие отсутствует в текущем документе реализации!");
        Возврат;
    КонецЕсли;
    
    // 3. Фиксируем факт сканирования конкретной упаковки
    ДобавитьУпаковкуВТаблицуПроверенных(ДанныеУпаковки);
    
    // 4. Проверяем комплектность изделия
    Если ВсеУпаковкиСобраны(ДанныеУпаковки.СерийныйНомер) Тогда
        УстановитьСтатусСтроки"Проверено"(СтрокаДокумента);
        Сообщить("Изделие " + ДанныеУпаковки.СерийныйНомер + " полностью укомплектовано!");
    Иначе
        КоличествоОставшихся = ПолучитьОстатокУпаковок(ДанныеУпаковки.СерийныйНомер);
        Сообщить("Успешно отсканировано. Осталось собрать упаковок для этого изделия: " + КоличествоОставшихся);
    КонецЕсли;
КонецПроцедуры

При такой логике работы кладовщик физически не сможет завершить проверку документа отгрузки, пока не отсканирует все штрихкоды, привязанные к конкретному серийному номеру готовой продукции.

---

Использование Терминалов Сбора Данных (ТСД)

Если сборка заказов на складе происходит динамично и на большой площади, использование обычного проводного сканера у стационарного компьютера становится крайне неудобным. В таком случае оптимальным решением является интеграция 1С:УНФ с мобильным программным обеспечением для ТСД (например, DataMobile или Клеверенс (Cleverence)).

В этих программных продуктах уже реализован готовый бизнес-процесс «Комплектация по упаковочным листам». Схема работы выглядит так:

  1. Документ Расходная накладная из 1С:УНФ выгружается на ТСД кладовщика.
  2. В документе указано готовое изделие с требованием отсканировать связанные штрихкоды упаковок (данные регистра УпаковкиИзделий выгружаются на ТСД как связанные штрихкоды номенклатуры).
  3. Кладовщик ходит по складу и сканирует каждую коробку. Экран ТСД наглядно отображает процесс сборки (например, «Диван №1001: собрано 2 из 4 упаковок»).
  4. После завершения сканирования документ с ТСД отправляется обратно в 1С:УНФ, автоматически меняя статус проверки отгрузки на «Проверено».

---

Резюме и рекомендации

Подводя итог, выберем оптимальный вариант автоматизации поупаковочного учета в зависимости от бюджета и сложности ваших процессов:

← На главную