Что делать, если после обновления 1С:Розница сканер открывает окно поиска или добавляет лишние скобки в штрихкод

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

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

Причина №1: Некорректная обработка суффикса и префикса драйвером

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

Рассмотрим порядок действий для настройки суффикса:

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Выберем наше устройство в списке Сканеры штрихкода и нажмем кнопку Настроить....
  3. В открывшемся окне параметров драйвера найдем поле Суффикс. Для большинства сканеров, работающих в режиме эмуляции клавиатуры, там должно быть указано значение 13 (код возврата каретки CR) или 10 (LF).
  4. Проверим физические настройки самого сканера. Если сканер не передает «Enter» после кода, 1С не понимает, что ввод завершен, и инициирует поиск по строке, что приводит к открытию окна подбора.

Если в настройках Суффикс указан верно, но проблема сохраняется, проанализируем тайминги. В современных версиях драйверов 1С:Сканеры штрихкода (NativeApi) время ожидания между символами сократилось. Если сканер «медленный», 1С может разрывать штрихкод на части.

Причина №2: Появление скобок в кодах (формат GS1-128)

Выясним причину появления странных символов, например, когда код 01046... превращается в (01)046.... Это связано с тем, что новые версии драйверов 1С автоматически распознают идентификаторы применения стандарта GS1. Для маркировки честного знака или алкоголя это может быть критично, если конфигурация ожидает «сырые» данные без форматирования.

Для решения этой проблемы выполним следующие шаги:

  1. Зайдем в настройки подключаемого оборудования.
  2. Если используется драйвер 1С:Сканеры штрихкода (NativeApi), найдем параметр Разбирать штрихкоды GS1 или Преобразовывать формат.
  3. Попробуем отключить эту опцию. В этом случае драйвер перестанет вставлять скобки, и штрихкод будет передаваться в программу в первозданном виде.
  4. Если используется режим эмуляции COM-порта, убедимся, что в системе установлен актуальный драйвер от производителя (Honeywell, Zebra и др.), так как универсальные драйверы могут конфликтовать с новыми требованиями платформы 8.3.13.

Причина №3: Баги платформы 8.3.13 и потеря фокуса

Разберем специфическую проблему платформы 8.3.13.1865. В этой версии был замечен баг, при котором фокус ввода в окне РМК мог самопроизвольно перескакивать на другие элементы интерфейса при поступлении данных от внешнего устройства. Это заставляет программу открывать дополнительные диалоговые окна вместо обработки события ВнешнееСобытие.

Посмотрим на возможные пути решения:

Пример настройки логики обработки (для программистов)

Если вы обладаете правами разработчика и проблема не решается настройками, проанализируем, как программно обрабатывается ввод. В модуле формы РМК обычно присутствует обработчик, реагирующий на сканирование. Проверьте, как интерпретируются данные в процедуре ПриВнешнемСобытии.

Типичная логика, которую стоит проверить в коде:


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    // Проанализируем, приходит ли суффикс в данных
    Если Событие = "BarCodeValue" Тогда
        Штрихкод = СокрЛП(Данные);
        // Если драйвер NativeApi, скобки могут быть уже добавлены здесь
        ОбработатьШтрихкод(Штрихкод);
    КонецЕсли;
КонецПроцедуры

Если вы видите, что переменная Данные содержит лишние символы, стоит вернуться к настройкам NativeApi и проверить параметры форматирования. Также убедитесь, что в справочнике Номенклатура штрихкоды записаны без учета этих специфических скобок.

Итоговый алгоритм восстановления работы сканера

Подведем итог и составим четкую последовательность действий:

  1. Удалите текущее устройство из списка Подключаемое оборудование.
  2. Перезагрузите 1С и очистите временные файлы (кэш).
  3. Создайте новое устройство, используя драйвер 1С:Сканеры штрихкода (NativeApi) актуальной версии.
  4. В настройках драйвера нажмите Тест устройства. Считайте любой штрихкод и посмотрите на результат.
  5. Если в тесте в конце кода отсутствует символ #13, добавьте его в поле суффикса.
  6. Если код содержит скобки, которые мешают поиску товара, снимите флаг Разбирать GS1 в параметрах драйвера.
  7. Если ничего не помогло, временно используйте старую версию драйвера (COM-компоненту), если ваша операционная система и разрядность платформы это позволяют.

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

← На главную