Автоматизация производственных процессов с помощью штрихкодирования — это эффективный способ избавиться от ручного ввода данных и ошибок человеческого фактора. В рамках данной статьи мы разберем по шагам, как доработать конфигурацию «1С:Управление нашей фирмой» (УНФ) для автоматического формирования сдельных нарядов на основе сканирования штрихкодов сотрудниками в цеху.
Для начала проанализируем ситуацию: нам необходимо связать три ключевых сущности — исполнителя, технологическую операцию и конкретное задание (заказ на производство). Существует два основных подхода к формированию штрихкодов для этих целей:
Code128), можно использовать регистрацию коротких кодов в специальном регистре сведений или кодировать строку вида «ТипОбъекта_ID».Рассмотрим подробнее реализацию через UUID, так как это наиболее типовой путь для современных конфигураций. Для того чтобы штрихкод был компактнее, мы можем преобразовать шестнадцатеричный UUID в десятичное число.
Выясним причину, по которой стандартный UUID не всегда удобен в чистом виде: он содержит 36 символов (включая дефисы). Для оптимизации используем функцию преобразования. Разберем пример кода, который позволяет получить числовое представление ссылки для печати штрихкода:
Функция ЧисловойКодПоСсылке(Ссылка) Экспорт
// Убираем дефисы из строкового представления UUID
ШестнадцатиричноеЧисло = СтрЗаменить(Строка(Ссылка.УникальныйИдентификатор()), "-", "");
Возврат ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(ШестнадцатиричноеЧисло);
КонецФункции
Функция ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(Знач Значение)
Значение = НРег(Значение);
ДлинаСтроки = СтрДлина(Значение);
Результат = 0;
Для НомерСимвола = 1 По ДлинаСтроки Цикл
Результат = Результат * 16 + СтрНайти("0123456789abcdef", Сред(Значение, НомерСимвола, 1)) - 1;
КонецЦикла;
Возврат Формат(Результат, "ЧГ=0");
КонецФункции
При сканировании такого кода в АРМ (автоматизированном рабочем месте) нам потребуется выполнить обратное преобразование, чтобы найти объект в базе данных.
Посмотрим на процесс глазами рабочего. Оптимальная схема работы выглядит следующим образом:
Справочник.Сотрудники или Справочник.Пользователи.Сдельный наряд.Важный момент: Чтобы АРМ понимал, что именно было отсканировано (сотрудник или операция), рекомендуется использовать префиксы в штрихкодах. Например, код сотрудника начинается с «S», код операции — с «O». Это позволит системе мгновенно переключать контекст ввода.
Проанализируем ситуацию с формированием итоговых документов. Создавать Сдельный наряд в реальном времени при каждом сканировании может быть накладно для производительности системы, если на производстве одновременно работают десятки людей.
Рассмотрим вариант с использованием регламентного задания. Данные из АРМ сохраняются в промежуточный регистр «ОтработанныеТехнологическиеОперации». Раз в 10–15 минут запускается фоновое задание, которое группирует записи по сотрудникам и сменам, после чего формирует итоговые документы Сдельный наряд со статусом «Выполнено».
Это решение позволяет:
В новых версиях 1С:УНФ (3.0 и выше) рекомендуем обратить внимание на объект Производственное задание. Этот документ специально предназначен для выдачи заданий на конкретные смены или операции. Штрихкодирование именно этих документов является наиболее «чистым» с точки зрения типовой архитектуры программы.
В штрихкод Производственного задания можно заложить его ссылку (UUID), а при сканировании программно извлекать из него всю необходимую информацию: номенклатуру, спецификацию и список необходимых операций. Таким образом, печатная форма становится полноценным навигатором для рабочего в цеху.
Резюмируя: Для успешной доработки УНФ необходимо реализовать компактную генерацию штрихкодов на основе ссылок объектов, создать упрощенный интерфейс АРМ с поддержкой префиксов и настроить механизм консолидации данных через фоновые задания. Это обеспечит высокую скорость работы и прозрачность управленческого учета в производстве.