Автоматизация складских процессов с использованием мобильных устройств — одна из приоритетных задач для современного бизнеса, особенно в условиях обязательной маркировки товаров. Конфигурация 1С:Комплексная автоматизация 2.5 (КА 2.5) предлагает типовое решение — Мобильное рабочее место кладовщика (МРМК). Однако на практике пользователи часто сталкиваются с техническими сложностями при попытке отсканировать коды DataMatrix. Рассмотрим подробнее, почему возникают ошибки и как настроить систему для корректной работы.
Одной из самых частых проблем является ситуация, когда при попытке сканирования кода маркировки через камеру телефона в форме МРМК ничего не происходит или система выдает ошибку соответствия штрихкоду EAN-13. Проанализируем причину этого поведения. Код маркировки (DataMatrix) содержит в себе не только GTIN и серийный номер, но и специальные управляющие символы, такие как разделитель GS (ASCII 29).
Стандартные приложения-сканеры и встроенные алгоритмы камеры на многих смартфонах не всегда корректно передают эти спецсимволы в мобильный клиент 1С. В результате 1С получает «битую» строку, которую не может распознать как средство идентификации маркируемой продукции. Выясним, как это решить. Зачастую требуется вмешательство программиста для создания расширения, которое будет перехватывать данные с камеры и принудительно обрабатывать их в контексте маркировки. В коде необходимо предусмотреть логику, которая при получении строки определенной длины и структуры будет инициировать поиск по справочнику штрихкодов упаковок и марок.
Если вы используете профессиональный терминал сбора данных (ТСД), например, Atol или Zebra, работа через камеру является неэффективной. Правильный путь — использование встроенного сканирующего луча. Разберем по шагам, как настроить взаимодействие ТСД и 1С через механизм Android Intent (Broadcast).
Многие совершают ошибку, оставляя ТСД в режиме эмуляции клавиатуры. В этом случае данные вводятся в активное поле медленно, и 1С не понимает, что произошло именно событие сканирования. Для настройки режима Broadcast выполним следующие действия:
Barcode Utility или ScanWedge).com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST.EXTRA_BARCODE_DECODING_DATA.Важно помнить, что регистр символов в названиях действий имеет значение. Если строки не совпадут, 1С просто проигнорирует сигнал от сканера.
Рассмотрим ситуацию, когда кладовщик вынужден сканировать один и тот же товар дважды: сначала для статуса «К отбору», затем для статуса «К проверке». Это происходит из-за жесткой логики ордерного склада, заложенной в 1С. Проанализируем, как можно упростить этот процесс.
Если ваша задача — максимально быстрая отгрузка, проверьте настройки склада в 1С:
ВидНоменклатуры установлен соответствующий тип маркировки (например, «Обувь», «Одежда» и т.д.) и включена опция ведения учета марок в настройках системы.Выясним причину низкой скорости обработки данных. 1С:МРМК по своей сути является «тонким» мобильным клиентом. Это означает, что на каждое сканирование или нажатие кнопки устройство отправляет HTTP-запрос на сервер 1С. Если Wi-Fi соединение на складе нестабильно или сервер перегружен, возникают задержки.
Посмотрим на пример того, как происходит обработка в типовом коде. Каждый раз при активации камеры вызывается инициализация видеозахвата, что занимает 1–2 секунды. Для массовой приемки или отгрузки (сотни позиций) это критично. В таких случаях профессионалы часто рекомендуют переходить на специализированное ПО, работающее с локальной базой данных на ТСД (например, DataMobile), либо глубоко дорабатывать интерфейсы МРМК, чтобы минимизировать количество серверных вызовов.
Если вы все же решили дорабатывать МРМК самостоятельно, рассмотрим примерный алгоритм перехвата данных в модуле мобильного клиента. Нам нужно убедиться, что событие ВнешнееСобытие корректно обрабатывает входящий поток данных:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "Barcode" Тогда
// Очищаем данные от лишних символов
Штрихкод = СокрЛП(Данные);
// Проверяем, является ли это кодом маркировки DataMatrix
Если СтрДлина(Штрихкод) > 20 Тогда
// Логика поиска марки и сопоставления с заданием
ОбработатьМаркировкуНаКлиенте(Штрихкод);
Иначе
// Обычный штрихкод товара
ОбработатьШтрихкодТовара(Штрихкод);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Важный момент: при работе с маркировкой всегда проверяйте наличие прав у пользователя МРМК на работу с объектами Справочник.ШтрихкодыУпаковокТоваров. Без этого мобильное приложение может молча игнорировать отсканированные марки.
Подводя итог, можно сказать, что 1С:МРМК — это рабочий инструмент, но он требует тщательной настройки «под железо» (ТСД) и, в ряде случаев, программной адаптации под особенности конкретных кодов маркировки. Если скорость работы является решающим фактором, стоит обратить внимание на качество сетевого покрытия на складе и использование специализированных драйверов NativeApi вместо эмуляции клавиатуры.