При переходе на новые релизы 1С:ERP Управление предприятием (начиная с версии 2.5.11.86 и выше, включая 2.5.12) многие специалисты столкнулись с неприятной ситуацией: встроенные сканеры терминалов сбора данных (ТСД), которые годами работали через стандартный драйвер 1С:Сканеры штрихкода (NativeApi), внезапно перестают функционировать. Проблема проявляется либо в невозможности установить внешнюю компоненту (сообщение «ВК не предназначена для мобильного клиента»), либо в «тихом» игнорировании отсканированных данных, когда событие ОбработкаОповещения в формах 1С просто не вызывается.
В этой статье мы подробно разберем, почему это происходит, проанализируем технические изменения в библиотеке подключаемого оборудования (БПО) и рассмотрим пошаговые алгоритмы восстановления работоспособности оборудования на базе ОС Android.
Проанализируем ситуацию с технической стороны. В релизах ERP 2.5.11 произошел качественный скачок в развитии Библиотеки подключаемого оборудования. Новая логика БПО ориентирована на использование современных методов взаимодействия с мобильной платформой. Основная причина отказа NativeApi заключается в несоответствии манифеста драйвера требованиям обновленной БПО и архитектуре процессоров новых ТСД.
Кроме того, выяснилось, что новая БПО требует мобильную платформу версии не ниже 8.3.23. Если вы продолжаете использовать мобильный клиент версии 8.3.22, возникает программный конфликт: компонента загружается, но методы обратного вызова (callback), отвечающие за передачу штрихкода в 1С, блокируются на уровне ядра платформы.
Первым делом нам необходимо исключить версию о несовместимости платформенных механизмов. Выполним следующие шаги:
Драйвер1СУстройстваВводаNative.Если обновление платформы не помогло или Native-драйвер продолжает вести себя нестабильно, перейдем к самому надежному «промышленному» способу — использованию механизма Android Intent. Этот метод позволяет мобильному клиенту 1С «слушать» сообщения от операционной системы Android, которые отправляет служба сканирования ТСД, минуя промежуточные драйверы 1С.
Рассмотрим настройку на примере ТСД KAICOM и аналогичных моделей под управлением Android:
Шаг 1. Настройка системного приложения на ТСД.
Найдем на терминале приложение Scanner (или Scan Settings). Нам нужно изменить режим вывода данных:
com.google.zxing.client.android.SCAN или android.intent.ACTION_DECODE_DATA.barcode_string или data.Шаг 2. Настройка в 1С:ERP.
Теперь подготовим конфигурацию к приему этих данных. Проанализируем настройки в справочнике ПодключаемоеОборудование:
При использовании Intent данные попадают в 1С через механизм внешних событий. Посмотрим на пример кода, который должен располагаться в модуле формы или в специализированном обработчике, чтобы корректно принять данные:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "СканерШтрихкода" Тогда
// Проанализируем полученные данные
Штрихкод = СокрЛП(Данные);
ПараметрыСобытия = Новый Структура;
ПараметрыСобытия.Вставить("Штрихкод", Штрихкод);
// Вызываем стандартную обработку БПО
ОбработатьШтрихкод(ПараметрыСобытия);
КонецЕсли;
КонецПроцедуры
Важно помнить, что при работе через мобильный клиент событие может приходить в ОбработкаОповещения, если используется стандартная библиотека подключаемого оборудования. Проверьте, что в коде формы вызван метод ПодключитьСканерШтрихкода(), иначе мобильное устройство не будет перехвачено системой.
Разберем ситуацию, когда бизнес-процесс требует немедленного запуска, а настройка Intent затягивается. В этом случае используем режим Keyboard Wedge. В этом режиме сканер работает как обычная USB-клавиатура: он «печатает» штрихкод в то поле, где сейчас находится фокус.
Чтобы 1С понимала, что ввод данных осуществлен именно сканером, а не пользователем вручную, выполним следующие действия:
#).# фокус автоматически переносился в поле поиска, а после получения всего штрихкода (завершается символом Enter или Суффиксом) инициировался поиск товара.Важное замечание: Этот метод является резервным, так как он чувствителен к раскладке клавиатуры и текущему фокусу на форме, однако он полностью независим от внешних компонент NativeApi.
Проанализировав проблему, мы видим, что «поломка» сканера в 1С:ERP 2.5.11/12 — это следствие эволюции БПО и повышения требований к мобильной платформе. Для стабильной работы рекомендуем:
Следование этим инструкциям позволит вам восстановить автоматизацию складских операций и избежать простоя из-за технических несовершенств драйверов.