При подключении сканера штрихкодов к конфигурациям на платформе 1С:Предприятие (в частности, в 1С:Управление торговлей 11) через режим эмуляции COM-порта в терминальной сессии RDP нередко возникают две взаимосвязанные проблемы. Во-первых, при сканировании штрихкод мгновенно появляется в строке ввода и тут же стирается. Во-вторых, после успешного сохранения штучного штрихкода документ реализации при повторном сканировании может выдавать окно «Найден новый штрихкод», отображая вместо цифр маску вида 2_7005300000_. Разберем по шагам причины такого поведения оборудования и системы, а также рассмотрим способы их полного устранения.
Проанализируем механику возникновения этой ошибки. Когда сканер (например, Honeywell Voyager 1250g) переведен в режим эмуляции последовательного интерфейса (Virtual COM Port) и проброшен через сеанс удаленного рабочего стола на сервер, стандартная обработка внешнего события в 1С может конфликтовать с потоком данных.
В большинстве случаев проблема кроется в использовании устаревшего драйвера «1С:Сканеры штрихкода (COM)» и передаче суффиксов окончания ввода (возврат каретки CR или перевод строки LF). Данные попадают в текстовое поле карточки номенклатуры как клавиатурный ввод, после чего срабатывает внутреннее событие завершения ввода с отменой незафиксированного значения из-за рассинхронизации задержек по RDP-каналу.
Рассмотрим порядок решения проблемы с драйвером:
13 — возврат каретки).Выясним причину странного поведения программы, когда считанный код 2470053002159 превращается в строку с подчеркиваниями и нулями. В международных стандартах штрихового кодирования EAN-13 диапазон префиксов от 20 до 29 зарезервирован под внутреннее использование предприятиями. Именно этот диапазон в 1С по умолчанию назначен для фасованного весового товара.
В конфигурациях 1С логика работы с весовым кодом построена на шаблонах: начальная цифра 2 определяет признак внутреннего кода, следующая цифра является префиксом весового товара или узла весов, затем следует код товара (PLU), а последние разряды отдаются под вес упаковки и контрольный символ. При считывании штрихкода, начинающегося на 24, система расценивает цифру 4 как префикс весового товара, отсекает последние цифры как вес (в данном примере 00215 — 0.215 кг) и рассчитывает внутреннюю маску 2_7005300000_. Так как штучный товар был записан с полным статическим кодом, 1С не находит совпадения по маске и сообщает о неизвестном штрихкоде.
Рассмотрим два варианта решения в зависимости от характера товара.
Если поставщик маркирует штучный товар собственным кодом из диапазона 20–29, необходимо скорректировать настройки префиксов в 1С, чтобы программа не пыталась выделять из него вес:
4 или префикс пересекается с кодами поставщика, удалим или изменим эту настройку, выделив под весовую продукцию другой свободный префикс (например, только 20 или 28).Если продукция продается на вес, регистрировать полный штрихкод с этикетки конкретной фасовки в карточку номенклатуры нельзя, так как вес каждой упаковки уникален. Настроим весовой учет правильно: