Почему ТСД сканирует штрихкод в поле поиска, но не добавляет товар в документ 1С:Мобильная торговля?

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

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

Понимаем разницу между режимами сканирования

Прежде всего, проанализируем техническую сторону вопроса. В операционной системе Android встроенный сканер ТСД может работать в двух основных режимах: Keyboard Wedge (эмуляция клавиатуры) и Broadcast Intent (передача данных через системные сообщения). Чтобы эффективно управлять этим процессом, разработчики часто настраивают перехват клавиш и событий штрихкода в ТСД на базе Android.

В режиме Keyboard Wedge ТСД имитирует обычное нажатие клавиш. Если вы открыли блокнот или строку поиска в 1С, сканер просто «печатает» туда цифры штрихкода. Однако приложение «1С:Мобильная торговля» ожидает не просто ввод символов, а программное событие — сигнал о том, что сканирование завершено. Если приложение не получает этот сигнал через механизм Intent, оно игнорирует входящие данные, так как не понимает, что это штрихкод, а не случайный ввод с клавиатуры.

Настройка режима Broadcast Intent на различных устройствах

Для корректной работы с мобильной платформой 1С необходимо переключить сканер из режима эмуляции клавиатуры в режим передачи данных через сообщения Android. В этом помогает сервис перехвата сообщений Broadcast со сканера, который эмулирует внешнее событие и позволяет обрабатывать данные не «в разрыв клавиатуры». Рассмотрим настройки для популярных моделей, упомянутых в обсуждении.

Для устройств Honeywell (например, EDA50k):

  1. Перейдем в системные настройки Android (Settings).
  2. Выберем пункт Honeywell Settings, далее — Scanning.
  3. Зайдем в Internal Scanner -> Default Profile.
  4. Найдем раздел Data Processing Settings.
  5. Установим параметр Data Intent в положение On.
  6. В поле Action необходимо указать строку, которую ожидает программное обеспечение. Обычно это com.google.zxing.client.android.SCAN или специфическая строка от разработчика ПО (например, RightScan).

Для устройств Atol (например, Smart Droid):

  1. Найдем в списке установленных программ приложение Scan Settings (или «Настройки сканера»).
  2. В разделе Output Mode (Режим вывода) выберем Intent Mode вместо Keyboard Mode.
  3. Проверим, чтобы в настройках был указан правильный «Action» для передачи данных.

Проблема суффиксов и префиксов в режиме эмуляции

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

Проанализируем ситуацию: если вы сканируете код 12345678, и он просто остается в поле поиска без автоматического запуска поиска, значит, приложению не хватает символа CR (Carriage Return) или LF (Line Feed). В настройках ТСД (раздел Data Editing) нужно добавить суффикс \n или \r. Это имитирует нажатие клавиши Enter после каждого сканирования.

Специфика программного обеспечения от RightScan

Решение «1С:Мобильная торговля» от компании RightScan часто использует вспомогательную службу RS:Core. Правильная интеграция 1С с устройством Android позволяет получать данные сканера напрямую в код модуля формы для дальнейшей обработки. Разберем шаги проверки:

  1. Убедимся, что приложение RS:Core установлено на ТСД и имеет все необходимые разрешения (доступ к оборудованию).
  2. В самом приложении 1С зайдем в раздел «Настройки» -> «Настройки оборудования».
  3. Проверим, какой драйвер выбран. Для многих китайских ТСД (iData, Mindeo) часто помогает выбор драйвера «Устройства ввода (Native)».

Проверка лицензионных ограничений

Важный момент, который часто упускают из виду: демо-режим. Как отмечают участники обсуждения, в демо-версии программного обеспечения функционал сканирования штрихкодов может быть ограничен. В некоторых конфигурациях сканер разрешен только для «Проверки ценника», но заблокирован для работы в документах товароучета (приход, расход). Чтобы интерфейс работал корректно, иногда требуется реализовать динамический подбор товаров в мобильном приложении с учетом прав доступа и лицензий.

Выясним причину блокировки: если при открытии программы появляется сообщение «Функционал по сканированию штрих-кодов ограничен», необходимо активировать лицензию. Также помните, что при сбросе настроек ТСД до заводских Device ID может измениться, что приведет к «слету» лицензии.

Использование Библиотеки подключаемого оборудования (БПО)

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


// Пример структуры параметров для настройки сканера через БПО
ПараметрыПодключения = Новый Структура;
ПараметрыПодключения.Вставить("ИмяСобытия", "com.google.zxing.client.android.SCAN");
ПараметрыПодключения.Вставить("ДанныеИнтента", "data");
Результат = МенеджерОборудования.ПодключитьУстройство(ИмяДрайвера, ПараметрыПодключения);

Если вы используете сторонние драйверы, такие как «Сканпорт:Драйвер устройств ввода», убедитесь, что версия БПО в вашем приложении не ниже 3.2.409. Этот драйвер часто решает проблемы несовместимости для устройств Mindeo и Urovo, так как он бесплатен и оптимизирован под требования мобильной платформы 1С.

Что делать, если ничего не помогло?

Если настройки интентов верны, лицензия активна, но товар все равно не добавляется, проанализируем следующие факторы:

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

← На главную