В процессе работы торгового или складского предприятия часто возникает необходимость быстро найти электронный документ в базе 1С по его бумажной копии. Для решения этой задачи разработчики конфигураций 1С предусмотрели возможность автоматического вывода штрихкода на печатных формах (например, в «Заказе клиента», «Реализации товаров и услуг» и т.д.). Однако пользователи часто сталкиваются с проблемой: штрихкод на документе распечатан, но при его сканировании в системе ничего не происходит. Выясним, почему это происходит, как устроен этот механизм изнутри и как правильно настроить систему для автоматического поиска.
Прежде чем приступать к программированию или настройке оборудования, проверим, активирован ли стандартный функционал вывода штрихкодов в настройках вашей базы данных. В современных типовых конфигурациях этот функционал встроен по умолчанию и не требует доработки кода.
Для включения опции выполним следующие шаги в зависимости от используемой конфигурации:
После активации данных настроек во всех стандартных печатных формах документов в левом или правом верхнем углу начнет автоматически формироваться графический штрихкод (обычно в формате Code 128).
Проанализируем важную особенность: в отличие от штрихкодов номенклатуры, которые жестко записываются в базу данных (в регистр сведений ШтрихкодыНоменклатуры), штрихкоды документов нигде физически не сохраняются. Они генерируются динамически «на лету» в момент формирования печатной формы на основе уникального идентификатора ссылки документа.
Рассмотрим детально, как работает этот алгоритм в платформе «1С:Предприятие 8»:
58df113e-c7e3-4da8-7000-1e50ee4df678).58df113ec7e34da870001e50ee4df678.ШтрихкодированиеПечатныхФорм.За генерацию и обратное декодирование отвечают две ключевые функции общего модуля ШтрихкодированиеПечатныхФорм. Посмотрим на структуру этих функций:
// Возвращает числовой код для печати штрихкода по ссылке на объект
Функция ЧисловойКодПоСсылке(Ссылка) Экспорт
// Внутренний алгоритм платформы преобразует GUID ссылки в числовую строку
КонецФункции
// Возвращает ссылку на документ по числовому штрихкоду
Функция ПолучитьСсылкуПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры = Неопределено) Экспорт
// Алгоритм восстанавливает GUID из числа и выполняет поиск документа
КонецФункции
Частой ошибкой пользователей является попытка сканировать штрихкод в «пустоту» или просто в поисковую строку журнала документов без предварительной настройки оборудования в самой программе. Обычный сканер по умолчанию работает в режиме эмуляции клавиатуры. Если просто нажать на кнопку сканера, он быстро наберет длинное число в активное текстовое поле, но 1С не поймет, что это штрихкод документа, и не выполнит автоматический поиск.
Чтобы система отрабатывала сканирование корректно, сканер необходимо настроить как Подключаемое оборудование через специальный драйвер. Разберем этот процесс:
1С:Сканеры штрихкодов (NativeApi)).CR или Tab).При правильной настройке сканер начинает работать через механизм внешних событий. Когда вы сканируете штрихкод, платформа 1С перехватывает его данные в фоновом режиме в любой открытой форме (например, в журнале документов) с помощью обработчика оповещений.
В модуле формы списков типовых документов за обработку этого события отвечает предопределенная процедура ОбработкаОповещения. Рассмотрим пример типового кода:
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Проверяем, что событие пришло от подключенного торгового оборудования
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
// Преобразуем считанные данные в структуру и запускаем поиск документа
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Благодаря этому коду, когда вы находитесь в списке заказов или реализаций и нажимаете кнопку сканера, программа перехватывает событие ScanData, декодирует штрихкод обратно в GUID ссылки и автоматически открывает карточку найденного документа.
Бывают ситуации, когда настроить сканер через встроенную систему подключаемого оборудования невозможно (например, используется специфический беспроводной Bluetooth-сканер без необходимых драйверов, или работа ведется на тонком клиенте в веб-браузере, где есть ограничения на работу с портами компьютера).
В этом случае существует удобный встроенный лайфхак, позволяющий задействовать режим эмуляции клавиатуры:
Enter. Платформа перехватит этот ввод, закроет окно, распознает в коде GUID документа и откроет его форму.Этот способ позволяет работать с любыми дешевыми сканерами без необходимости установки драйверов торгового оборудования на рабочие места пользователей.
Использование штрихкодирования документов позволяет значительно ускорить ключевые складские и логистические процессы, минимизируя влияние человеческого фактора. Рассмотрим основные сценарии использования этой технологии:
Таким образом, использование встроенных механизмов штрихкодирования документов в 1С:Управление торговлей 11 — это мощный инструмент автоматизации бумажного документооборота, который легко внедрить без привлечения программистов для написания дополнительного программного кода.