Автоматизация складского учета и инвентаризации с использованием терминалов сбора данных (ТСД) — частая задача при развитии розничных и оптовых магазинов. Нередко бизнес ставит цель проводить ревизию прямо во время торгового процесса, отображая текущие учетные остатки на экране терминала и временно ограничивая продажу пересчитываемой номенклатуры. Рассмотрим, какие аппаратные и программные архитектуры подходят для решения этой задачи, с какими сложностями интерфейса и методологии учета придется столкнуться и как их правильно преодолеть.
Существует несколько основных подходов к организации обмена данными между мобильным терминалом и учетной системой 1С. Разберем преимущества и ограничения каждого из них:
Терминал подключается по Wi-Fi к серверу терминалов и запускает сеанс 1С. Основной плюс — не требуется разработка промежуточных баз, все данные передаются мгновенно в режиме реального времени. Однако у RDP есть существенные недостатки: при потере Wi-Fi пакетов сканер, эмулирующий клавиатурный ввод (HID), может терять или искажать символы штрихкода. Кроме того, интерфейс платформы 1С требует тонкой оптимизации под маленькие экраны.
Использование готового мобильного софта с интеграционными драйверами для 1С позволяет терминалу работать как в онлайн-режиме, так и автономно (при обрыве связи). Обработка штрихкодов происходит на аппаратном уровне устройства, что исключает сбои ввода, а интерфейс адаптирован под складские операции.
Современная альтернатива RDP. В 1С создаются HTTP-сервисы или используется тонкий мобильный клиент платформы. Приложение на Android взаимодействует с базой по REST API, оперативно передавая факт сканирования и статус блокировки номенклатуры без необходимости держать постоянную тяжелую RDP-сессию.
Проанализируем ключевые аппаратные параметры при подборе ТСД для складских и торговых ревизий:
При использовании сеанса 1С на компактном экране терминала стандартные управляемые формы могут выглядеть перегруженными из-за системных заголовков, командных панелей и отступов. Разберем правила оптимизации форм для ТСД:
РабочееМесто или Киоск, разворачивающий форму на весь экран.Посмотрим на пример структуры компактного обработчика внешнего события при сканировании на ТСД:
// Обработка внешнего события сканера штрихкодов
&НаКлиенте
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "BarCodeValue" Тогда
Штрихкод = СокрЛП(Данные);
ОбработатьШтрихкодНаСервере(Штрихкод);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьШтрихкодНаСервере(Знач Штрихкод)
// Поиск номенклатуры по штрихкоду
НайденнаяНоменклатура = РегистрыСведений.ШтрихкодыНоменклатуры.НайтиПоШтрихкоду(Штрихкод);
Если ЗначениеЗаполнено(НайденнаяНоменклатура) Тогда
ТекущаяНоменклатура = НайденнаяНоменклатура;
// Получение текущего остатка для проверки
ТекущийОстаток = ПолучитьОстатокПоСкладу(ТекущаяНоменклатура, СкладИнвентаризации);
Иначе
Сообщить("Штрихкод не найден в базе!");
КонецЕсли;
КонецПроцедуры
Ревизия в открытом магазине, где параллельно работают покупатели и кассиры, содержит в себе методологические и технические риски. Разберем, как правильно выстроить процесс: