При автоматизации складских процессов на базе 1С:Управление торговлей 11 часто возникает вопрос: как правильно подключить терминалы сбора данных (ТСД) на ОС Android к центральной базе? Существует несколько архитектурных путей, каждый из которых имеет свои преимущества и недостатки. В данной статье мы подробно разберем основные варианты реализации, технические сложности и способы их решения.
Первым делом проанализируем три основных способа взаимодействия ТСД с базой 1С, опубликованной через web-сервер (IIS или Apache):
Рассмотрим подробнее преимущества мобильного клиента. Главная его «прелесть» в том, что не появляется новых технологических слоев. Вам не нужно писать отдельное мобильное приложение и синхронизировать данные. Вы работаете напрямую с объектами конфигурации УТ 11, просто адаптируя экранные формы под размер дисплея терминала.
Одной из главных проблем при работе через веб-клиент или обычный тонкий клиент является работа со сканером штрихкодов. Рассмотрим две ситуации:
Эмуляция клавиатуры (HID): Большинство ТСД по умолчанию настроены так, что при сканировании штрихкод «впечатывается» в активное поле ввода. Это кажется простым, но на практике ведет к ошибкам: если фокус не стоит в поле, данные потеряются; если включена русская раскладка, вместо цифр придут «символы-кракозябры».
Broadcast Intent (Внешнее событие): Это профессиональный подход. ТСД при сканировании отправляет системное сообщение в Android (Intent), которое 1С перехватывает как ВнешнееСобытие. Это позволяет считывать штрихкоды в фоновом режиме, независимо от того, где находится курсор. Для реализации этого в 1С:УТ 11 необходимо:
Проанализируем ситуацию с интерфейсом УТ 11. Обычные формы этой конфигурации перегружены элементами и не помещаются на узкий экран ТСД. Выясним причину: интерфейсы десктопных версий проектируются под мышь, а на складе сотрудник работает пальцами, зачастую в перчатках.
Для качественной работы необходимо создать отдельные формы для мобильного клиента:
Посмотрим на пример обработки сканирования в мобильном клиенте. Для этого используется процедура ОбработкаОповещения или специализированный обработчик внешнего события:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Событие = "Barcode" Тогда
Штрихкод = СокрЛП(Данные);
ОбработатьШтрихкодНаСервере(Штрихкод);
КонецЕсли;
КонецПроцедуры
Для крупных складов с сотнями ТСД иногда выбирают путь разработки отдельного приложения (на Java, Kotlin или React Native), которое общается с 1С через HTTP-сервисы. Разберем этот вариант:
Плюсы: Максимальная производительность, полный контроль над «железом» ТСД, минимальный трафик (передаются только компактные JSON-пакеты).
Минусы: Высокая стоимость разработки. Вам придется поддерживать два программных продукта: логику в 1С и интерфейс в Android-приложении.
Если ваша задача — автоматизировать небольшой или средний магазин/склад, этот путь будет избыточным. Мобильного клиента 1С будет более чем достаточно.
Разберем важный нюанс — работу Wi-Fi. Если вы используете Тонкий или Мобильный клиент в режиме онлайн, критически важно обеспечить бесшовный роуминг (протоколы 802.11r/k/v). При переходе сотрудника от одной точки доступа к другой сессия 1С не должна обрываться. Если сеть настроена плохо, тонкий клиент будет постоянно «вылетать» при перемещении кладовщика между стеллажами.
Для реализации задачи на ТСД с Android в связке с УТ 11 рекомендуем придерживаться следующего алгоритма:
Такой подход позволит вам использовать всю мощь 1С:Управление торговлей 11 без необходимости сложной синхронизации данных и приобретения дорогостоящего стороннего ПО для терминалов.