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

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

В процессе автоматизации небольшого производства часто возникает задача фиксации каждой единицы выпущенной продукции в реальном времени. Стандартные документы 1С:УНФ, такие как СборкаЗапасов или Производство, обычно оформляются одной итоговой операцией за смену. Разберем, как создать удобное рабочее место (АРМ) для сотрудника цеха, которое позволит фиксировать выпуск каждой детали и мгновенно печатать этикетку.

Вариант 1: Использование «буферного» регистра сведений (Оптимальный подход)

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

Алгоритм реализации:

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

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


МенеджерЗаписи = РегистрыСведений.ЛогВыпускаПродукции.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.ЗаказНаПроизводство = Объект.ТекущийЗаказ;
МенеджерЗаписи.Номенклатура = Объект.ТекущаяНоменклатура;
МенеджерЗаписи.Исполнитель = ПараметрыСеанса.ТекущийПользователь;
МенеджерЗаписи.Записать();

Вариант 2: Прямая запись в документ «Сборка запасов»

Если объем выпуска невелик (например, до 100–200 единиц за смену), можно упростить схему и записывать данные напрямую в табличную часть документа. Рассмотрим ситуацию, когда при каждом сканировании программа открывает или находит документ текущей смены и добавляет в него новую строку.

Преимущества этого способа:

Важный нюанс: Чтобы избежать тормозов системы, документ следует просто записывать (Записать(РежимЗаписиДокумента.Запись)), а финальное проведение выполнять один раз в конце дня.

Вариант 3: Использование типового «АРМ Исполнителя»

Не забудем, что в современных версиях 1С:УНФ уже существует встроенный функционал АРМ Исполнителя. Посмотрим, как можно адаптировать его под наши задачи:

  1. Включим использование операций в настройках производства.
  2. Настроим формирование заданий сотрудникам через документ ЗаказНаПроизводство.
  3. Доработаем экранную форму АРМ, добавив кнопку быстрой печати этикетки. Это позволит использовать стандартную логику учета времени 1С, просто расширив её визуальную часть.

Технические советы по ускорению процесса

Выясним, какие дополнительные инструменты помогут сделать работу в цеху максимально комфортной:

1. Прямая печать (ZPL/EPL): Для мгновенного выхода этикетки из принтера рекомендуем использовать прямую отправку команд на языке принтера вместо формирования макета ТабличныйДокумент. Это исключает задержки на генерацию графики.

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

3. Звуковая индикация: В условиях шумного производства визуального подтверждения на мониторе недостаточно. Реализуем в АРМ проигрывание звукового сигнала при успешном сканировании. Это позволит работнику не отвлекаться на экран.

Рассмотрим пример подключения звукового оповещения:


// Пример вызова звукового сигнала в Windows
СредстваГеопозиционирования.ПроигратьЗвуковоеОповещение(СпособОповещенияПользователя.Звук); 
// Или через запуск внешнего приложения (wav файла)
ЗапуститьПриложение("powershell -c (New-Object Media.SoundPlayer 'C:\Windows\Media\tada.wav').PlaySync()");

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

← На главную