Почему после обновления 1С:УТ 11.4 сканер перестал считывать новые штрихкоды?

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

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

Выясняем причину: диагностика оборудования и печати

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

Проверим работу сканера вне интерфейса 1С. Для этого воспользуемся обычным текстовым редактором (Блокнотом):

  1. Откройте «Блокнот» на рабочем столе.
  2. Попробуйте считать старую этикетку, которая распознается в 1С.
  3. Попробуйте считать новую этикетку, напечатанную после обновления.

Если при сканировании в Блокнот ничего не попадает, но сканер при этом «пикает» (издает сигнал успешного чтения), значит, устройство работает в режиме эмуляции COM-порта или использует Native API. Если же сканер не издает звукового сигнала или выдает сигнал ошибки (длинный низкий звук), проблема кроется в качестве печати самого графического объекта штрихкода.

В рассматриваемом случае (обновление УТ 11.4) проблема чаще всего заключается именно в компоненте печати. Фирма «1С» периодически обновляет библиотеку 1C:BarCode, которая отвечает за генерацию изображения. В новых версиях могут измениться алгоритмы сглаживания (anti-aliasing) или расчет ширины полос, что критично для дешевых лазерных сканеров и термопринтеров с низким разрешением.

Способ 1: Корректировка макета этикетки

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

Одной из наиболее частых причин становится нарушение так называемой «Тихой зоны» (Quiet Zone) — это пустое пространство слева и справа от полосок штрихкода. Если цифры под кодом выводятся слишком широким шрифтом или само изображение растянуто по краям контейнера, сканер не может определить границы кода.

Попробуем выполнить следующие действия в конфигураторе или через обработку «Печать этикеток и ценников»:

  1. Зайдите в редактирование макета этикетки.
  2. Выберите объект штрихкода и откройте его свойства.
  3. Установите параметр «Отображать текст» (цифры под кодом) в значение «Нет». Если штрихкод после этого начал считываться, значит, новая компонента некорректно рассчитывала отступы при наличии текста.
  4. Если цифры необходимы, попробуйте вывести их отдельным текстовым полем под объектом штрихкода, а не средствами самой компоненты.

Также обратите внимание на свойство «Тип масштабирования». Для термопринтеров с разрешением 203 dpi крайне важно, чтобы ширина каждой полоски была кратна физическому пикселю печатающей головки. Установите режим «Сохранять пропорции» или «Оригинал» вместо «Растянуть».

Способ 2: Откат внешней компоненты печати

Если манипуляции с макетом не помогают, выясним причину в самой программной библиотеке. В релизах 2019-2020 годов 1С внедрила новую версию компоненты печати, которая на некоторых принтерах выдает «размытые» края полос из-за попыток сглаживания.

Рассмотрим радикальный, но эффективный метод — возврат к старой версии компоненты штрихкодирования:

  1. Найдите базу 1С:УТ до обновления (архивную копию), где печать работала корректно.
  2. В конфигураторе найдите Общий макет с именем КомпонентаПечатиШтрихкодов.
  3. Сохраните содержимое этого макета в файл (обычно это библиотека DLL или ZIP-архив).
  4. В текущей (обновленной) базе замените содержимое аналогичного общего макета сохраненным файлом из старой базы.

Важно: После замены макета может потребоваться перезапуск сеанса 1С всеми пользователями, чтобы система заново зарегистрировала компоненту в локальном кэше %AppData%\Local\1C.

Способ 3: Настройка драйвера и Native API

Если же проблема в том, что сканер «пикает», но данные в 1С не появляются, проанализируем настройки подключения оборудования. С обновлением БСП (Библиотеки Стандартных Подсистем) в составе УТ 11.4 изменились требования к драйверам.

Выполним проверку в интерфейсе 1С:

  1. Перейдите в раздел «НСИ и администрирование» — «Ремонтное оборудование».
  2. Откройте настройки вашего сканера штрихкода.
  3. Проверьте версию установленного драйвера. Если используется драйвер версии 8.х, попробуйте обновить его до актуальной версии 9.х или 10.х, поддерживающей Native API.
  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 рекомендуем придерживаться следующего алгоритма:

  1. Проверьте макет: уберите отображение цифр средствами компоненты и увеличьте границы объекта.
  2. Масштаб: установите режим «Сохранять пропорции» в свойствах картинки штрихкода.
  3. Компонента: если ничего не помогает, замените общий макет КомпонентаПечатиШтрихкодов на версию из старого релиза.
  4. Драйверы: обновите драйверы торгового оборудования до последних версий с поддержкой Native API.

Следуя этим шагам, вы восстановите работоспособность склада и торговых точек в кратчайшие сроки.

← На главную