Почему сканер штрихкодов работает в окне теста, но не добавляет товар в документ 1С:Управление торговлей 10.3?

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

Ситуация, когда сканер штрихкодов успешно проходит внутренние тесты драйвера, но при этом "отказывается" вносить данные непосредственно в табличную часть документа 1С, является классической проблемой для конфигураций на обычных формах, таких как Управление торговлей 10.3. Это особенно актуально при работе в терминальном режиме (через RDP) или при использовании устаревших моделей оборудования, например, марки Symbol (Zebra).

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

Проверка прав доступа пользователя

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

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

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

Если с правами всё в порядке, значит проблема кроется в механизме инициализации торгового оборудования.

Анализ режима работы: Клавиатура или COM-порт

Рассмотрим ситуацию, когда сканер физически подключен через USB, но определяется системой по-разному. Существует два основных режима:

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

Настройка суффиксов и префиксов

Для корректной работы драйвера ScanOPOS крайне важно, чтобы настройки в самой 1С совпадали с "железными" настройками сканера. Проанализируем значение суффикса. Обычно это символ перевода строки (LF — код 10) или возврата каретки (CR — код 13).

Если сканер настроен на передачу суффикса LF, а в 1С указано CR, драйвер будет бесконечно ждать завершающего символа и не передаст данные в программу. Проверьте в окне теста, какие непечатные символы приходят вместе со штрихкодом. Если вы видите символы типа #10 или #13, убедитесь, что они корректно прописаны в настройках торгового оборудования в 1С.

Отладка инициализации оборудования в коде

Посмотрим на ситуацию с точки зрения программиста. Чтобы понять, почему событие не доходит до документа, нужно проверить момент открытия формы. Разберем работу процедуры ПриОткрытии в типовых документах УТ 10.3.

Проанализируем код, отвечающий за подключение оборудования:


Процедура ПриОткрытии()
    // Стандартный механизм инициализации торгового оборудования
    Если ПолучитьСерверТО() <> Неопределено Тогда
        Результат = ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
        Если Результат <> Перечисления.ТООшибки.ПустаяСсылка Тогда
            Сообщить("Ошибка подключения сканера: " + ТекстОшибки(Результат));
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Если отладчик при сканировании не заходит в процедуру ВнешнееСобытие, значит метод ПодключитьКлиента(ЭтаФорма) не сработал успешно. Причиной может быть поврежденный кэш метаданных пользователя. Попробуйте полностью очистить папки Local и Roaming в профиле пользователя Windows, чтобы 1С заново пересчитала описания доступного оборудования.

Обновление драйверов и обработки обслуживания

Как показывает практика, для стабильной работы старых сканеров Symbol в среде современных ОС (особенно в связке с 64-битной платформой 1С) необходимо использовать проверенные версии компонентов. Рассмотрим наиболее эффективное сочетание:

  1. Версия драйвера: Установите драйвер версии 14.1 (или выше, если поддерживается оборудованием).
  2. Обработка обслуживания: Используйте внешнюю обработку обслуживания (файлы .epf) версии 27 или выше. Старые встроенные обработки часто имеют ошибки при работе с виртуальными COM-портами.
  3. Драйвер USB CDC Host: Для сканеров Symbol/Zebra убедитесь, что в Windows установлен специфический драйвер эмуляции COM-порта от производителя, а не стандартный драйвер Microsoft.

Особенности работы в RDP (удаленный рабочий стол)

Если ваша база "северная", проанализируем маппинг портов. При подключении к удаленному рабочему столу в настройках клиента (mstsc) обязательно должна стоять галочка Порты в разделе "Локальные ресурсы".

Важный нюанс: 1С:Предприятие 8.3 иногда некорректно работает с номерами портов выше COM9. Если ваш сканер определился как COM15, перейдите в диспетчер устройств на локальном ПК, зайдите в свойства порта и принудительно переназначьте его на свободный номер в диапазоне COM1-COM5. После этого перенастройте подключение в 1С.

Сброс настроек сканера (Hard Reset)

Если программные методы не помогают, выясним причину в самом устройстве. Сканеры Symbol часто "запоминают" некорректные режимы работы. Найдите управляющее руководство (Programming Guide) для вашей модели и последовательно считайте следующие штрихкоды:

  1. Set Factory Defaults (Сброс до заводских настроек).
  2. Simple COM Port Emulation (если работаете через COM-порт).
  3. Add Enter Key (для настройки суффикса).

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

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

← На главную