Как настроить стабильную работу 1С на ТСД и избавиться от разрывов RDP и засыпания устройства?

Программист 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

При использовании терминалов сбора данных (ТСД) под управлением операционной системы Windows CE / Embedded в связке с 1С через RDP-подключение разработчики часто сталкиваются с неприятным поведением оборудования: при коротком простое (2–3 минуты) ТСД переходит в спящий режим. При этом автоматически гаснет экран, отключается модуль Wi-Fi и рвется RDP-сессия. Восстановление подключения занимает от 15 до 30 секунд, что сильно замедляет работу кладовщиков и сборщиков заказов.

Разберем подробно причины возникновения этой проблемы, способы настройки оборудования на базе Windows CE и альтернативные варианты архитектуры работы 1С с мобильными устройствами.

Причины проблем с веб-клиентом и засыпанием устройства

Выясним, почему стандартные механизмы 1С не всегда можно запустить на устаревших промышленных терминалах (например, CipherLab CPT-9700):

  1. Несовместимость с мобильной платформой 1С: Мобильный клиент и мобильная платформа 1С рассчитаны на современные ОС (Android, iOS, Windows 10/11) и не поддерживают устаревшие операционные системы Windows CE 6.0 или Windows Embedded Handheld.
  2. Зависание веб-клиента: Встроенный браузер Internet Explorer Mobile в WinCE не поддерживает современные стандарты HTML5, WebSockets и спецификации JavaScript. При попытке открыть веб-клиент 1С браузер «вешается» на этапе загрузки тяжёлых клиентских скриптов платформы. Попытки установить сторонние браузеры (например, Opera Mini) часто заканчиваются ошибками запуска из-за отсутствия необходимых системных библиотек.
  3. Сброс Wi-Fi при энергосбережении: В прошивке большинства WinCE-терминалов отключение дисплея жестко связано со сбросом питания Wi-Fi-модуля для экономии заряда батареи.

Способы решения проблемы на уровне настроек ТСД и Windows CE

Рассмотрим, как настроить сам терминал сбора данных для предотвращения разрывов соединения.

1. Отключение спящего режима в интерфейсе ОС

Перейдем в настройки питания терминала (Start -> Settings -> Control Panel -> Power). На вкладке управления питанием (Power Schemes / Advanced) необходимо снять галочки с пунктов отключения питания при простое (Turn off device if not used for) или изменить таймаут на максимально возможный. На многих промышленных устройствах присутствует специальный профиль работы без ухода в сон.

2. Изменение настроек Wi-Fi адаптера (CAM Mode)

По умолчанию Wi-Fi адаптер переходит в режим энергосбережения (Power Save Mode). В настройках беспроводного модуля (утилита управления Wi-Fi от производителя, например, Summit или Fusion) переведем режим работы радиомодуля из Power Save в CAM (Continuous Aware Mode). В этом режиме Wi-Fi адаптер постоянно находится в активном состоянии и не отключает связь при снижении трафика.

3. Снятие ограничений через реестр Windows CE

Если штатный интерфейс позволяет задать таймаут не более 5 минут, отключим спящий режим напрямую через системный реестр WinCE. Откроем редактор реестра на ТСД и перейдем в ветку:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\Timeouts

Установим следующие параметры в значение 0 (что означает отключение таймаута):

  1. BattPowerOff = 0
  2. ExtPowerOff = 0
  3. ScreenOff = 0

Важно: В операционной системе Windows CE изменения в реестре хранятся в оперативной памяти и сбрасываются при перезагрузке устройства. Чтобы сохранить настройки энергонезависимо, после редактирования реестра необходимо запустить фирменную утилиту сохранения (например, RegFlush или FlashSave из раздела меню System Tools).

4. Фоновые утилиты удержания связи (Keep-Alive)

Если прошивка устройства все равно принудительно гасит экран, установим на ТСД небольшую фоновую утилиту, которая каждые 30–60 секунд эмулирует минимальное действие (например, посылает ping на сервер или сбрасывает счетчик простоя системы SystemIdleTimerReset). Это блокирует засыпание устройства на аппаратном уровне.

Альтернативные архитектурные решения

Работа через RDP требует идеально стабильного покрытия Wi-Fi на всем складе. Если сеть имеет «мертвые зоны», RDP-сессия будет регулярно зависать. Проанализируем более надежные подходы к автоматизации рабочих мест на ТСД.

1. Использование промежуточного RDP-прокси (Terminal Emulation / Session Persistence)

Для RDP-клиентов применяются специализированные промышленные прокси-серверы. Прокси-сервер держит открытую RDP-сессию на сервере 1С. Когда ТСД теряет сеть или засыпает, сессия 1С не рвется. При восстановлении сигнала Wi-Fi терминал моментально подключается к прокси и продолжает работу с той же формы и позиции без длительной переавторизации.

2. Разработка нативного легкого клиента + HTTP-сервисы 1С

Наиболее устойчивый к обрывам связи вариант — создание автономного или полуавтономного приложения для ТСД (например, на C# под .NET Compact Framework или с использованием стороннего специализированного софта), которое обменивается данными с 1С через HTTP-сервисы или WEB-сервисы.

Рассмотрим преимущества схемы на базе HTTP-сервисов:

  1. Минимальный трафик и высокий отклик: На сервер передаются только структурированные данные (JSON/XML). Для выполнения операции требуется соединение длительностью в несколько миллисекунд.
  2. Экономия лицензий 1С: При работе через HTTP-сервисы соединения не висят постоянно. В современных версиях платформы 1С 8.3 сеансы для веб-сервисов повторно используются из пула, что позволяет обходиться меньшим количеством клиентских лицензий.
  3. Устойчивость к потере сети: Если Wi-Fi пропал в момент сканирования, клиентское приложение сохраняет данные локально и отправляет их на сервер сразу при появлении сигнала.

Пример простейшего HTTP-сервиса в 1С для обработки сканированного штрихкода от ТСД:


Функция ОбработатьШтрихкодПОСТ(Запрос)
	
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
	
	СтрокаJSON = Запрос.ПолучитьТелоКакСтроку();
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
	Данные = ПрочитатьJSON(ЧтениеJSON);
	ЧтениеJSON.Закрыть();
	
	Штрихкод = Данные.Штрихкод;
	
	// Выполняем поиск номенклатуры по штрихкоду
	НоменклатураСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Штрихкод", Штрихкод);
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	СтруктураОтвета = Новый Структура;
	Если ЗначениеЗаполнено(НоменклатураСсылка) Тогда
		СтруктураОтвета.Вставить("Успех", Истина);
		СтруктураОтвета.Вставить("Наименование", НоменклатураСсылка.Наименование);
		СтруктураОтвета.Вставить("Код", НоменклатураСсылка.Код);
	Иначе
		СтруктураОтвета.Вставить("Успех", Ложь);
		СтруктураОтвета.Вставить("Ошибка", "Товар не найден");
	КонецЕсли;
	
	ЗаписатьJSON(ЗаписьJSON, СтруктураОтвета);
	Ответ.УстановитьТелоКакаСтроку(ЗаписьJSON.Закрыть());
	
	Возврат Ответ;
	
КонецФункции

Сравнение оборудования: ТСД против бытовых смартфонов

В процессе выбора аппаратной базы часто возникает идея зашиты RDP на обычные Android-смартфоны с Bluetooth-сканерами. Сравним эти подходы для задач складской логистики:

  1. Защищенность и износостойкость: Промышленный ТСД рассчитан на многократные падения на бетонный пол, работу при отрицательных температурах и в запыленных помещениях. Обычные смартфоны в условиях интенсивной складской эксплуатации часто выходят из строя в течение первых недель.
  2. Скорость и дальность сканирования: В ТСД встроен аппаратный лазерный или 2D-сканирующий модуль. Он считывает поврежденные, затертые или мелкие штрихкоды за доли секунды и на большом расстоянии (в том числе с верхних ярусов стеллажей). Сканирование камерой смартфона или дешевым Bluetooth-кольцом существенно уступает в скорости.
  3. Эргономика и клавиатурный ввод: При вводе большого количества наименований и количеств товара (например, 100–500 единиц) физическая кнопочная клавиатура ТСД позволяет выполнять ввод «вслепую» и работать в защитных перчатках, тогда как сенсорный экран смартфона загрязняется и снижает точность ввода.

Таким образом, для небольших складов или локальных задач может подойти комбинированная схема (смартфон/планшет + сканер), но для полноценного складского учета с высокой интенсивностью оптимальным выбором остаются специализированные ТСД. При использовании RDP главным решением проблемы засыпания является корректная настройка параметров питания и режима Wi-Fi (CAM) в самой ОС WinCE, а для масштабных систем — переход на архитектуру HTTP-сервисов.

← На главную