Проблема интеграции современных мобильных устройств с классической платформой 1С:Предприятие 7.7 часто ставит разработчиков в тупик. Основная сложность заключается в том, что 7.7 не имеет штатных механизмов для работы с веб-сервисами или современными протоколами обмена данными, а мобильные устройства работают в иной среде. В данной статье мы проанализируем ситуацию и рассмотрим несколько эффективных способов реализации онлайн-связи Android-сканера с 1С 7.7, особенно при работе через RDP (Remote Desktop Protocol).
Разберем самый простой и бюджетный вариант, который не требует написания сложного кода или покупки дорогостоящего ПО. Этот метод основан на использовании смартфона как обычного устройства ввода (клавиатуры).
Для реализации этого метода нам потребуется установить на Android специальное приложение-клавиатуру (например, Barcode Keyboard). Такие приложения заменяют стандартную клавиатуру смартфона и добавляют кнопку вызова камеры для сканирования. Проанализируем алгоритм работы:
Важный нюанс: Чтобы 1С 7.7 корректно обрабатывала ввод, желательно, чтобы сканер посылал управляющий символ (префикс или суффикс), например Enter. Это позволит системе автоматически завершить ввод в поле или инициировать поиск товара.
Если простая клавиатурная эмуляция не подходит из-за нестабильности фокуса, рассмотрим вариант с использованием промежуточного программного обеспечения. Существуют решения, такие как BarcodeHarvester, которые специально заточены под работу с 1С.
Система состоит из двух частей: мобильного приложения и серверной части («сервера терминалов»), которая устанавливается на компьютер с 1С. Выясним преимущества этого подхода:
Проанализируем более продвинутый вариант для профессиональной разработки. Если в вашей конфигурации 1С 7.7 установлены расширения 1С++ и FormEx, возможности интеграции значительно расширяются. Мы можем организовать «честный» онлайн-обмен.
Рассмотрим пример логики работы через классы 1С++. Вместо того чтобы полагаться на фокус ввода, мы можем настроить систему так, чтобы она принимала данные по HTTP-протоколу или через мониторинг внешних событий.
Для реализации полноценной обработки внешнего события в 1С 7.7 нам потребуется использование компоненты ScanOPOS.dll или её аналогов. Посмотрим на примерную структуру кода, который должен располагаться в глобальном модуле или форме обработки:
Процедура ПриВнешнемСобытии(Источник, Событие, Данные)
Если Источник = "AndroidScanner" Тогда
Штрихкод = СокрЛП(Данные);
// Выполняем поиск товара в справочнике
СпрТовары = СоздатьОбъект("Справочник.Товары");
Если СпрТовары.НайтиПоРеквизиту("ШтрихКод", Штрихкод, 1) = 1 Тогда
// Товар найден, добавляем в таблицу
ДобавитьТоварВДокумент(СпрТовары.ТекущийЭлемент());
Иначе
Предупреждение("Товар не найден!");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В этом сценарии приложение на Android отправляет данные на специально написанный мини-сервер (на Python, Node.js или через ВК на Delphi), который, в свою очередь, генерирует внешнее событие для 1С. Это позволяет оператору работать в 1С, не беспокоясь о том, где в данный момент находится курсор.
Разберем вариант использования промышленных систем. Компания Cleverence предлагает платформу Mobile Smarts, у которой исторически была поддержка 1С 7.7. Хотя поддержка старых версий может быть ограничена в новых релизах, компонента для связи с 7.7 всё еще существует.
Особенности работы с Cleverence:
Однако, как отмечают участники обсуждения, внедрение таких систем в 7.7 может потребовать значительных усилий по доработке существующих конфигураций на уровне классов 1С++ для обеспечения высокой производительности и стабильности соединения.
Независимо от выбранного способа, при работе через RDP крайне важно обратить внимание на следующие моменты:
FormEx для 1С 7.7. Она позволяет программно отслеживать фокус и перехватывать нажатия клавиш на низком уровне, что делает работу со сканером-клавиатурой гораздо более надежной.Подведем итог: связать Android-сканер с 1С 7.7 в онлайне вполне реально. Для простых задач идеально подойдет эмуляция клавиатуры через мобильный RDP-клиент. Для более серьезных складских операций стоит рассмотреть специализированное ПО или разработку собственного механизма на базе 1С++ и внешних компонент.