Как настроить сканер штрихкода Honeywell 1450g в 1С:Управление торговлей 10.3 без нажатия F7 и исправить ошибку ТаймаутCOM

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

При автоматизации рабочих мест кассиров в конфигурации «1С:Управление торговлей», редакция 10.3, специалисты часто сталкиваются со специфическими трудностями при подключении торгового оборудования. Наиболее популярными проблемами являются конфликт драйверов торгового оборудования, вызывающий программные ошибки, и необходимость постоянного нажатия клавиши F7 на клавиатуре для активации поля ввода штрихкода.

В этой статье мы подробно разберем, как решить эти проблемы на примере популярного сканера Honeywell Voyager 1450g. Мы проанализируем причины возникновения ошибки ТаймаутCOM, разберемся с распределением виртуальных портов в операционной системе Windows и настроим сканер так, чтобы он мгновенно считывал как штучные, так и весовые товары в автоматическом режиме.

Выясняем причину ошибки «Поле объекта не обнаружено (ТаймаутCOM)»

Давайте рассмотрим ситуацию, когда при тестировании подключенного оборудования во внешней обработке обслуживания 1С возникает ошибка следующего вида:

{ВнешняяОбработка.СканерШтрихкода.МодульОбъекта(263)}: Поле объекта не обнаружено (ТаймаутCOM)

Эта ошибка указывает на то, что код обработки обслуживания пытается обратиться к свойству ТаймаутCOM объекта драйвера, но установленная в операционной системе библиотека (драйвер) этого свойства попросту не имеет. Такое несоответствие возникает из-за рассогласования версий:

  1. Устаревшая обработка обслуживания. В вашей базе данных «1С:Управление торговлей 10.3» используется старый файл обработки (например, 1CScanOPOSScan_v2.epf), разработанный под старые версии драйвера ScanOpos.dll (например, версии 8.0.X), где свойства таймаута назывались иначе или отсутствовали.
  2. Новая версия драйвера. Вы установили современный драйвер версии 8.1.7.9 или выше. Код старой обработки не ожидает структуры данных нового драйвера и аварийно завершает работу.

Разберем три пути решения этой проблемы:

Способ 1. Исправление кода обработки в Конфигураторе (Рекомендуемый для разработчиков)

Если у вас нет возможности или желания подбирать совместимые версии файлов, мы можем исправить код обработки обслуживания самостоятельно, добавив безопасный обход вызова этого свойства через конструкцию проверки:


Попытка
    Объект.Драйвер.ТаймаутCOM = ?(Объект.Параметры.ТаймаутCOM = Неопределено, 5, Объект.Параметры.ТаймаутCOM);
Исключение
    // Если свойство не поддерживается драйвером, просто игнорируем его настройку
    ЗаписьЖурналаРегистрации("ПодключениеСканера", УровеньЖурналаРегистрации.Предупреждение, , , "Свойство ТаймаутCOM не поддерживается текущим драйвером.");
КонецПопытки;

Способ 2. Обновление обработки обслуживания торгового оборудования

Необходимо скачать свежую версию обработки обслуживания сканера штрихкода с официального портала поддержки пользователей «1С:ИТС» и обновить ее в справочнике «Обработки обслуживания торгового оборудования» в самой 1С.

Способ 3. Откат версии драйвера

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

Решаем проблему дублирования COM-портов на разных компьютерах

Рассмотрим ситуацию, когда при подключении одинаковых моделей сканеров на разных кассовых компьютерах операционная система Windows автоматически присваивает им один и тот же виртуальный COM-порт (например, COM3). Это абсолютно нормально, если кассы работают локально и независимо друг от друга.

Однако, если ваши кассиры работают в режиме терминального сервера (через RDP-подключение), возникает конфликт адресации проброшенных портов. Чтобы решить эту проблему, выполним следующие шаги:

  1. Откройте Диспетчер устройств в Windows на одном из локальных компьютеров кассира.
  2. Найдите раздел Порты (COM и LPT) и выберите ваш сканер штрихкода (он может отображаться как Honeywell USB Serial Port).
  3. Нажмите правой кнопкой мыши и выберите Свойства.
  4. Перейдите на вкладку Параметры порта и нажмите кнопку Дополнительно.
  5. В выпадающем списке Номер COM-порта вручную выберите любой свободный номер порта (например, COM7 или COM9) и нажмите «ОК» для сохранения изменений.

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

Автоматическое распознавание штучного и весового товара без кнопки F7

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

Прежде всего, проанализируем, как 1С УТ 10.3 различает штучный и весовой товар. Программе не требуется настраивать разные префиксы для разных типов товаров на самом сканере. Определение типа штрихкода происходит на уровне логики самой системы 1С:

Для того чтобы считывание происходило автоматически в фоне, настроим сканер Honeywell 1450g одним из двух методов.

Метод 1. Программирование аппаратного префикса F7 через утилиту EZConfig (Режим клавиатуры)

Этот метод заключается в том, что мы программируем сканер выдавать определенную последовательность сигналов при каждом сканировании: сначала виртуальное нажатие клавиши F7, затем передача символов штрихкода, а затем нажатие клавиши Enter (символ перевода каретки CR).

Выполним настройку по шагам:

  1. Скачайте и установите официальное программное обеспечение Honeywell EZConfig для браузеров с сайта производителя.
  2. Подключите сканер к компьютеру через USB-кабель.
  3. Запустите EZConfig и нажмите кнопку Discover для поиска вашего устройства.
  4. Перейдите в раздел настроек Data Formatting (Форматирование данных).
  5. Выберите пункт настройки префиксов (Prefix).
  6. Добавьте префикс, соответствующий функциональной клавише F7. В кодировке Honeywell для клавиатурного ввода префикс настраивается вставкой специального управляющего кода клавиши. Вы можете выбрать клавишу F7 из визуального списка клавиатурных команд в интерфейсе утилиты EZConfig. В шестнадцатеричном выражении (Hex) управляющий символ эмуляции клавиши F7 для устройств Honeywell часто передается последовательностью \x16\x54 или специальным кодом 99 1C (в зависимости от выбранного режима передачи).
  7. В разделе суффиксов (Suffix) убедитесь, что настроен суффикс возврата каретки — CR (значение Hex: 0D, код клавиши Enter).
  8. Нажмите кнопку Save to Device для записи конфигурации непосредственно в энергонезависимую память сканера Honeywell 1450g.

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

Метод 2. Использование современного драйвера 1С (NativeApi) без аппаратного программирования

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

Выполним следующие шаги по настройке:

  1. Переведите сканер штрихкода Honeywell 1450g в стандартный режим работы клавиатуры (режим по умолчанию). Для этого достаточно считать управляющий штрихкод "USB Keyboard (PC)" из бумажной инструкции к сканеру.
  2. Считайте настроечный штрихкод из инструкции для добавления суффикса возврата каретки "Add CR Suffix" (чтобы после каждого штрихкода сканер отправлял символ Enter).
  3. Откройте 1С:Управление торговлей 10.3 и перейдите в меню Сервис -> Подключение и настройка торгового оборудования.
  4. Добавьте новое устройство в группу «Сканеры штрихкода». В качестве драйвера выберите встроенный современный драйвер «1С:Сканер штрихкода (NativeApi)».
  5. Перейдите в параметры созданного устройства.
  6. В поле Порт выберите значение «Клавиатура» (в некоторых версиях драйвера это может называться Keyboard).
  7. В поле Суффикс укажите число 13 (десятичный код клавиши Enter / CR). Поле префикса оставьте пустым.
  8. Нажмите «Записать и закрыть».

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

← На главную