В процессе автоматизации небольшого производства часто возникает задача фиксации каждой единицы выпущенной продукции в реальном времени. Стандартные документы 1С:УНФ, такие как СборкаЗапасов или Производство, обычно оформляются одной итоговой операцией за смену. Разберем, как создать удобное рабочее место (АРМ) для сотрудника цеха, которое позволит фиксировать выпуск каждой детали и мгновенно печатать этикетку.
Для обеспечения высокой скорости работы и надежности хранения данных рассмотрим схему с промежуточным регистром. Вместо того чтобы при каждом сканировании штрихкода создавать тяжелый документ или перезаписывать существующий, мы будем фиксировать событие в легком регистре.
Алгоритм реализации:
ЛогВыпускаПродукции). В измерения добавим ЗаказНаПроизводство, Номенклатура, Сотрудник, а в ресурсы — ДатаВремяВыпуска и Количество.СборкаЗапасов и СдельныйНаряд.Проанализируем пример кода для записи факта выпуска в регистр:
МенеджерЗаписи = РегистрыСведений.ЛогВыпускаПродукции.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.ЗаказНаПроизводство = Объект.ТекущийЗаказ;
МенеджерЗаписи.Номенклатура = Объект.ТекущаяНоменклатура;
МенеджерЗаписи.Исполнитель = ПараметрыСеанса.ТекущийПользователь;
МенеджерЗаписи.Записать();
Если объем выпуска невелик (например, до 100–200 единиц за смену), можно упростить схему и записывать данные напрямую в табличную часть документа. Рассмотрим ситуацию, когда при каждом сканировании программа открывает или находит документ текущей смены и добавляет в него новую строку.
Преимущества этого способа:
Важный нюанс: Чтобы избежать тормозов системы, документ следует просто записывать (Записать(РежимЗаписиДокумента.Запись)), а финальное проведение выполнять один раз в конце дня.
Не забудем, что в современных версиях 1С:УНФ уже существует встроенный функционал АРМ Исполнителя. Посмотрим, как можно адаптировать его под наши задачи:
ЗаказНаПроизводство.Выясним, какие дополнительные инструменты помогут сделать работу в цеху максимально комфортной:
1. Прямая печать (ZPL/EPL): Для мгновенного выхода этикетки из принтера рекомендуем использовать прямую отправку команд на языке принтера вместо формирования макета ТабличныйДокумент. Это исключает задержки на генерацию графики.
2. Серийный учет: Если нужно отслеживать каждую единицу индивидуально, обязательно задействуем механизм Серийные номера. При фиксации выпуска программа будет генерировать новый серийный номер, который и станет уникальным идентификатором на этикетке.
3. Звуковая индикация: В условиях шумного производства визуального подтверждения на мониторе недостаточно. Реализуем в АРМ проигрывание звукового сигнала при успешном сканировании. Это позволит работнику не отвлекаться на экран.
Рассмотрим пример подключения звукового оповещения:
// Пример вызова звукового сигнала в Windows
СредстваГеопозиционирования.ПроигратьЗвуковоеОповещение(СпособОповещенияПользователя.Звук);
// Или через запуск внешнего приложения (wav файла)
ЗапуститьПриложение("powershell -c (New-Object Media.SoundPlayer 'C:\Windows\Media\tada.wav').PlaySync()");
Таким образом, выбор между использованием регистра и прямой записью в документ зависит от интенсивности производства. Для большинства малых предприятий 1С:УНФ позволяет реализовать оба сценария с минимальными трудозатратами программиста.