Почему 1С:Управление торговлей 11 некорректно считывает штрих-код и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Проверка настроек префиксов внутренних и весовых штрих-кодов

Самая распространенная причина искажения штрих-кодов в 1С:УТ 11 кроется в механизмах обработки весовых товаров. Посмотрим, как это работает: если штрих-код начинается с цифры 2 (особенно диапазоны 22-29), система автоматически может расценивать его как внутренний штрих-код весового товара. В этом случае программа не ищет полное совпадение всего набора цифр, а пытается разобрать его на составные части: префикс, код (PLU) товара и его вес.

Рассмотрим пример того, как программа видит такой код: стандартный формат весового товара выглядит примерно как 2_000100000_. Если вы отсканировали обычный штучный товар, чей заводской код случайно начинается на 2, программа отсечет часть цифр, интерпретируя их как вес (например, 0 кг 0 гр), а оставшуюся часть будет искать как артикул или внутренний код, которого, разумеется, не существует.

Решим эту задачу с помощью корректировки настроек конфигурации:

  1. Перейдем в раздел Администрирование.
  2. Откроем подраздел Номенклатура.
  3. Найдем пункт Настройка префиксов внутренних ШК (в зависимости от релиза УТ 11 расположение может немного отличаться, иногда это находится в разделе настроек подключаемого оборудования или продаж).
  4. Проверим диапазоны. Если штучные товары попадают в диапазон весовых префиксов, изменим настройки так, чтобы префикс соответствовал "штучному" товару. Это отключит автоматическое разделение штрих-кода на вес и код PLU.

Если в вашем релизе УТ 11 логика распознавания кодов, начинающихся на «2», жестко зашита в программном модуле и стандартными настройками не отключается, вам придется либо избегать использования таких штрих-кодов для штучных товаров, либо привлекать программиста для корректировки модуля обработки подключаемого оборудования.

Перевод сканера в режим эмуляции COM-порта

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

Разберем по шагам, как перевести сканер в более надежный режим:

  1. Найдем инструкцию к вашему сканеру (обычно идет в комплекте или доступна на сайте производителя).
  2. Отсканируем специальный управляющий штрих-код для перевода устройства в режим эмуляции COM-порта (USB-COM).
  3. Установим в операционной системе драйвер виртуального COM-порта (часто скачивается с сайта производителя, например, Honeywell).
  4. Зайдем в диспетчер устройств Windows и убедимся, что сканер появился в разделе "Порты (COM и LPT)". Запомним номер порта, например COM3.
  5. Перейдем в 1С: Администрирование -> Подключаемое оборудование -> Сканеры штрихкода.
  6. В настройках оборудования укажем тип подключения как COM-порт и выберем нужный номер порта. Проверим параметры: скорость (обычно 9600 или 115200), биты данных и четность. Они должны совпадать с настройками в Windows.

Этот режим позволяет передавать штрих-код в систему цельным пакетом, исключая любые потери символов из-за сетевых задержек.

Влияние раскладки клавиатуры и CapsLock

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

Аналогично влияет нажатая клавиша CapsLock: все символы сменят регистр. Из-за этого строка искажается, и программа выдает ошибку, что штрих-код не найден. Перевод сканера в режим COM-порта (описанный выше) полностью решает и эту проблему, так как данные передаются в сыром виде напрямую в драйвер 1С, минуя системную обработку ввода с клавиатуры.

Настройка суффиксов завершения и невидимых спецсимволов

Выясним причину, по которой 1С может вообще не реагировать на отсканированный код или обрабатывать его не до конца. Для того чтобы программа поняла, что передача штрих-кода завершена, сканер должен в конце отправлять специальный невидимый символ (суффикс завершения). Обычно это команда возврата каретки — Enter или CR (в настройках 1С отображается как код #13).

Если суффикс не запрограммирован в самом сканере, 1С будет воспринимать введенные цифры просто как текст, набранный в строке поиска, и ждать дальнейшего ввода. Обязательно проверьте по мануалу сканера, включен ли суффикс Enter.

Также обратим внимание на сложную маркировку (например, коды DataMatrix). В таких штрих-кодах содержатся служебные разделители GS (код #029). Сканеры в режиме клавиатуры часто "съедают" эти невидимые символы, из-за чего 1С считает код маркировки недействительным. Решение аналогично: использование режима USB-COM и актуального драйвера, например 1С:Сканер штрихкода (Native).

Правильная диагностика с помощью "Теста устройства"

В завершение разберем, как правильно локализовать проблему, не ломая рабочую базу. Не стоит тестировать сканер сразу в справочнике "Номенклатура", в интерфейсе кассира или в форме подбора номенклатуры, так как там на результат влияют алгоритмы поиска 1С.

Сделаем следующее:

  1. Откроем в 1С раздел Подключаемое оборудование.
  2. Выделим наш сканер в списке и нажмем кнопку Настроить.
  3. В открывшемся окне нажмем Тест устройства (или Тест подключения).
  4. Отсканируем проблемный штрих-код.

В окне лога вы увидите "сырую" строку данных, которую 1С получает от драйвера. Сравним то, что вывелось на экране, с тем, что напечатано на этикетке. Если в окне теста не хватает цифр в начале (обрезаются нули), присутствуют лишние префиксы, или вместо английских букв выводятся русские — значит, проблема кроется в аппаратных настройках самого сканера (неверно считан управляющий код, не тот режим). Если же в окне теста штрих-код отображается идеально (ровно так, как на этикетке), но в самой программе товар не ищется — возвращаемся к первому пункту нашей инструкции. Иногда стандартная логика поиска не предусмотрена в некоторых формах, например, в обработке подбора товаров, и ее приходится добавлять расширениями.

← На главную