Довольно часто после планового обновления конфигурации 1С:Управление торговлей 11.4 (например, на релиз 11.4.8.82 и выше) пользователи сталкиваются с неприятной ситуацией: сканеры штрихкодов продолжают исправно работать со старыми этикетками, но наотрез отказываются считывать только что напечатанные. При этом само оборудование исправно, а внешне штрихкод кажется идентичным старому. Рассмотрим детально, почему это происходит и как исправить ситуацию.
Прежде чем вносить изменения в программный код или макеты, проанализируем поведение системы. Первым делом нам необходимо понять, на каком этапе происходит сбой: при физическом считывании (оптика сканера) или при передаче данных в 1С. Разберем ситуацию по шагам.
Проверим работу сканера вне интерфейса 1С. Для этого воспользуемся обычным текстовым редактором (Блокнотом):
Если при сканировании в Блокнот ничего не попадает, но сканер при этом «пикает» (издает сигнал успешного чтения), значит, устройство работает в режиме эмуляции COM-порта или использует Native API. Если же сканер не издает звукового сигнала или выдает сигнал ошибки (длинный низкий звук), проблема кроется в качестве печати самого графического объекта штрихкода.
В рассматриваемом случае (обновление УТ 11.4) проблема чаще всего заключается именно в компоненте печати. Фирма «1С» периодически обновляет библиотеку 1C:BarCode, которая отвечает за генерацию изображения. В новых версиях могут измениться алгоритмы сглаживания (anti-aliasing) или расчет ширины полос, что критично для дешевых лазерных сканеров и термопринтеров с низким разрешением.
Как показывает практика, часто проблема решается простым изменением настроек вывода штрихкода в макете этикетки. Проанализируем, как параметры отображения влияют на читаемость.
Одной из наиболее частых причин становится нарушение так называемой «Тихой зоны» (Quiet Zone) — это пустое пространство слева и справа от полосок штрихкода. Если цифры под кодом выводятся слишком широким шрифтом или само изображение растянуто по краям контейнера, сканер не может определить границы кода.
Попробуем выполнить следующие действия в конфигураторе или через обработку «Печать этикеток и ценников»:
Также обратите внимание на свойство «Тип масштабирования». Для термопринтеров с разрешением 203 dpi крайне важно, чтобы ширина каждой полоски была кратна физическому пикселю печатающей головки. Установите режим «Сохранять пропорции» или «Оригинал» вместо «Растянуть».
Если манипуляции с макетом не помогают, выясним причину в самой программной библиотеке. В релизах 2019-2020 годов 1С внедрила новую версию компоненты печати, которая на некоторых принтерах выдает «размытые» края полос из-за попыток сглаживания.
Рассмотрим радикальный, но эффективный метод — возврат к старой версии компоненты штрихкодирования:
КомпонентаПечатиШтрихкодов.Важно: После замены макета может потребоваться перезапуск сеанса 1С всеми пользователями, чтобы система заново зарегистрировала компоненту в локальном кэше %AppData%\Local\1C.
Если же проблема в том, что сканер «пикает», но данные в 1С не появляются, проанализируем настройки подключения оборудования. С обновлением БСП (Библиотеки Стандартных Подсистем) в составе УТ 11.4 изменились требования к драйверам.
Выполним проверку в интерфейсе 1С:
13 (CR) или 10 (LF), и он совпадает с настройками самого сканера (программируется по инструкции к устройству).Рассмотрим пример кода, который вызывается при внешнем событии от сканера. Убедитесь, что конфигурация вообще получает данные:
// В модуле формы или в подключаемом модуле оборудования
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "BarCodeScan" Тогда
// Здесь можно поставить точку останова и проверить,
// попадает ли сюда управление при сканировании
ОбработатьШтрихкод(Данные);
КонецЕсли;
КонецПроцедуры
Проанализируем ситуацию с точки зрения железа. Большинство принтеров этикеток (Zebra, Godex, Xprinter) имеют разрешение 203 точки на дюйм (dpi). Это означает, что одна точка имеет размер примерно 0.125 мм. Если алгоритм новой компоненты 1С пытается нарисовать штрих шириной 0.2 мм, принтер будет вынужден либо округлить его до 1 точки (0.125 мм), либо до 2 точек (0.25 мм). Это искажает геометрию кода настолько, что лазерный сканер перестает его узнавать.
Рекомендация: Попробуйте в свойствах рисунка штрихкода в конфигураторе немного изменить физический размер объекта (ширину) буквально на 0.5–1 мм в большую или меньшую сторону. Иногда этого достаточно, чтобы математический расчет ширин полос «попал» в сетку принтера более удачно.
Для быстрого решения проблемы нечитаемых штрихкодов после обновления УТ 11.4 рекомендуем придерживаться следующего алгоритма:
КомпонентаПечатиШтрихкодов на версию из старого релиза.Следуя этим шагам, вы восстановите работоспособность склада и торговых точек в кратчайшие сроки.