Работа с парком устаревшего оборудования — это классический вызов для разработчика 1С. Когда перед нами стоит задача перевести складские терминалы сбора данных (ТСД) на базе Android 5.1 Lollipop на актуальную версию мобильной платформы 8.3.24, мы сталкиваемся не только с вопросом «запустится или нет», но и с целым комплексом скрытых технических проблем. В данной статье мы подробно проанализируем системные требования, разберем критические точки отказа и рассмотрим проверенные альтернативные методы организации работы.
Для начала проанализируем официальную документацию. Начиная с последних релизов мобильной платформы (8.3.24, 8.3.25), компания 1С устанавливает минимальный порог поддержки на уровне Android 5.0 (API 21). Поскольку Android 5.1 соответствует API 22, формально наши ТСД попадают в список поддерживаемых устройств. Однако здесь важно понимать разницу между «поддерживается» и «стабильно работает».
Рассмотрим уровни API подробнее:
Выясним причину, по которой «Мобильный клиент» часто не может соединиться с сервером на старых устройствах. Современные веб-серверы (IIS 10, Apache 2.4) по умолчанию требуют протоколы TLS 1.2 или TLS 1.3. В Android 5.1 поддержка TLS 1.2 присутствует, но она часто реализована некорректно на уровне системных библиотек или отключена по умолчанию в компонентах WebView.
Если ваша база опубликована по протоколу HTTPS, вы можете получить ошибку соединения без объяснения причин. Проанализируем возможные варианты решения:
Интерфейс мобильного приложения 1С — это сложная структура, отрисовка которой во многом ложится на плечи системного компонента WebView. На Android 5.1 этот компонент зачастую «заморожен» в версии семилетней давности. Разберем, к чему это ведет:
Во-первых, современные динамические формы 1С используют сложные CSS-конструкции, которые старый движок обрабатывает крайне медленно. Мы увидим задержки при открытии списков или переключении вкладок. Во-вторых, могут некорректно отображаться иконки и шрифты шрифтовых наборов 1С.
Если на ТСД установлены Google Play Services, попробуем обновить Android System WebView через магазин приложений. Если же сервисов Google нет (что часто встречается на промышленных ТСД), мы окажемся заложниками прошивки производителя.
Посмотрим на аппаратную часть ТСД 2015–2016 годов выпуска. Обычно это устройства с 1 ГБ или 2 ГБ оперативной памяти. Для «Мобильного клиента» 1С 8.3.24, который является фактически «тонким клиентом» внутри мобильной оболочки, этого критически мало. Проанализируем ситуацию: значительную часть памяти забирает сама ОС и кэш графики. В итоге на выполнение кода 1С остается 200–300 МБ, что приведет к постоянным вылетам приложения при попытке сформировать крупный отчет или открыть форму с большим количеством строк.
Разберем ситуацию с драйверами. Современная Библиотека подключаемого оборудования (БПО) ориентирована на актуальные методы Android. Старые ТСД (например, Zebra MC36 или ранние модели Honeywell) могут требовать специфических драйверов, которые не обновлялись под новые требования 1С.
В таком случае нам придется отказаться от прямой интеграции и использовать механизм Intent (сканирование в «разрыв клавиатуры»). Рассмотрим пример логики, которую придется реализовать в конфигурации для обработки данных:
// Пример обработки внешнего события от сканера через Intent
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "СканерШтрихкода" Тогда
// Обрабатываем полученный штрихкод
ОбработатьШтрихкод(Данные);
КонецЕсли;
КонецПроцедуры
Проанализируем предложение из сообщений форума, которое часто оказывается самым жизнеспособным. Если парк устройств велик, а бюджет на обновление ограничен, использование RDP (удаленного рабочего стола) становится спасением.
Почему это выгодно для Android 5.1:
Автор темы выразил опасение по поводу ручного обновления каждого ТСД через APK-файлы. Разберем, как мы можем автоматизировать этот процесс в рамках мобильного клиента:
Сам мобильный клиент (оболочка) обновляется редко. Его достаточно установить один раз. Вся логика приложения (конфигурация) подтягивается с сервера автоматически при каждом подключении. Это позволяет вносить изменения в код конфигурации на стороне основного сервера 1С, и все ТСД получат их мгновенно без переустановки APK.
Однако, если сама версия платформы 8.3.24 потребует обновления до 8.3.25 или выше, нам придется столкнуться с риском: новые версии могут окончательно прекратить поддержку API 22. Посмотрим на функцию проверки версии в коде, которую можно добавить для контроля:
// Пример проверки версии системы для логирования
Информация = ИнформацияСистемы;
Если Информация.ВерсияОС < "5.0" Тогда
Сообщить("Устройство не поддерживается! Требуется замена ТСД.");
КонецЕсли;
Рассмотрев все за и против, примем взвешенное решение:
Таким образом, мы выяснили, что работа на старом оборудовании возможна, но она требует от программиста глубокого понимания ограничений мобильной архитектуры и готовности к поиску обходных путей в вопросах безопасности и производительности.