Как организовать работу терминала сбора данных (ТСД) в онлайн-режиме с 1С

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

При автоматизации складских процессов и розничной торговли часто возникает задача перевода терминалов сбора данных (ТСД) в постоянный онлайн-режим. Это необходимо для мгновенного получения актуальных остатков, проверки цен, оперативной приемки товаров и предотвращения пересортицы. Однако при работе с устройствами под управлением Windows CE / Windows Mobile и крупными каталогами номенклатуры (от 30 000 позиций и выше) специалисты регулярно сталкиваются с зависаниями сессий RDP, нестабильным Wi-Fi и длительной выгрузкой справочников.

Разберем по шагам, как устранить эти ограничения, стабилизировать сетевое подключение и выбрать наиболее эффективную архитектуру взаимодействия ТСД с 1С.

Причины нестабильной работы ТСД по RDP и способы их устранения

Стандартный RDP-клиент Windows CE 5.0/6.0 имеет ряд критических ограничений: отсутствие сохранения паролей для автоматического входа, графические артефакты (черные прямоугольники) и зависание терминальных сессий на сервере Windows Server при кратковременной потере Wi-Fi связи. Когда связь обрывается, сервер помечает сессию как Disconnected, накапливает их и в конечном итоге блокирует новые подключения до перезагрузки служб терминалов.

Проанализируем шаги для стабилизации прямого терминального подключения:

  1. Обновление RDP-клиента на устройстве: Заменим встроенный клиент на портированный RDP Client 6.1 для Windows Mobile / WinCE или специализированные терминальные клиенты (например, CETerm от Naurtech или 2X Client). Они поддерживают автоматическую авторизацию, корректную отрисовку экранов и автоматическое переподключение без создания фантомных сессий.
  2. Настройка политик таймаутов на Windows Server: В оснастке управления групповыми политиками (GPO) или в настройках узла сессий удаленных рабочих столов зададим жесткие ограничения для отключенных сессий:

    Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Ограничения по времени сеанса.

    Включим параметры Задать ограничение по времени для отключенных сеансов (установим 1–2 минуты) и включим отправку пакетов проверки связи (Keep-Alive) с интервалом 1 минута.

  3. Отключение энергосбережения Wi-Fi на ТСД: В системных утилитах терминала (WLAN Utility) переведем режим работы адаптера из Power Save Mode (PSP) в режим постоянной активности Constantly Awake Mode (CAM). Это устранит задержки в 10–15 секунд при выходе модуля связи из спящего режима.
  4. Адаптация интерфейса 1С: Для учетной записи ТСД создадим отдельный упрощенный интерфейс и формы с фиксированным разрешением 240x320 точек, отключив тяжелые панели и командные строки.

Архитектура «Гибридный онлайн» для больших объемов номенклатуры

Если база данных содержит более 30 000 наименований, полная выгрузка таблиц на устройство перед каждой операцией нерациональна из-за низкой производительности процессоров WinCE и ограниченной памяти. Наиболее отказоустойчивым решением является разделение данных на статические справочники и оперативные остатки.

Рассмотрим структуру гибридной работы:

  1. Локальный справочник штрихкодов: Основные идентификаторы (штрихкод, артикул, наименование, единица измерения) выгружаются на устройство единовременно, а затем актуализируются только изменениями (дельта-обмен).
  2. Оперативный онлайн-запрос остатков: В момент сканирования товара терминал отправляет короткий запрос к веб-сервису или HTTP-сервису 1С для получения актуального остатка по конкретному складу.
  3. Накопление строк при обрыве сети: Если сигнал Wi-Fi пропадает, ТСД не прерывает работу, а накапливает отсканированные штрихкоды во внутренней памяти. Как только связь восстанавливается, накопленный документ передается в информационную базу 1С.

Посмотрим на пример реализации простого HTTP-сервиса в 1С для мгновенного возврата остатка и цены по отсканированному штрихкоду:


Функция ПолучитьДанныеПоШтрихкоду(Запрос)
    
    Штрихкод = Запрос.ПараметрыЗапроса.Получить("ШК");
    Склад = Справочники.Склады.НайтиПоКоду(Запрос.ПараметрыЗапроса.Получить("СкладКод"));
    
    ОтветJSON = Новый Структура;
    ОтветJSON.Вставить("Найдено", Ложь);
    ОтветJSON.Вставить("Номенклатура", "");
    ОтветJSON.Вставить("Остаток", 0);
    ОтветJSON.Вставить("Цена", 0);
    
    Запрос1С = Новый Запрос;
    Запрос1С.Текст = 
        "ВЫБРАТЬ
        |   РегШК.Номенклатура КАК Номенклатура,
        |   РегШК.ХарактеристикаНоменклатуры КАК Характеристика,
        |   ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
        |ИЗ
        |   РегистрСведений.Штрихкоды КАК РегШК
        |   ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ТоварыНаСкладахОстатки
        |       ПО РегШК.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
        |       И РегШК.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.Характеристика
        |ГДЕ
        |   РегШК.Штрихкод = &Штрихкод";
        
    Запрос1С.УстановитьПараметр("Штрихкод", Штрихкод);
    Запрос1С.УстановитьПараметр("Склад", Склад);
    Запрос1С.УстановитьПараметр("Период", ТекущаяДата());
    
    Выборка = Запрос1С.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        ОтветJSON.Найдено = Истина;
        ОтветJSON.Номенклатура = Строка(Выборка.Номенклатура);
        ОтветJSON.Остаток = Выборка.Остаток;
    КонецЕсли;
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, ОтветJSON);
    СтрокаОтвета = ЗаписьJSON.Закрыть();
    
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки(СтрокаОтвета, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
    
    Возврат Ответ;
    
КонецФункции

Применение готового специализированного ПО для ТСД

Если разработка собственной конфигурации для ТСД или доработка форм в 1С экономически нецелесообразна, оптимальным решением является внедрение специализированных платформ с готовыми модулями онлайн-интеграции:

  1. Mobile SMARTS (Клеверенс): Предоставляет клиенты для Windows CE и Android с встроенным гибридным онлайн-движком. Программа работает через промежуточный сервер или напрямую с 1С, кешируя номенклатуру локально и запрашивая остатки по Wi-Fi.
  2. DataMobile (Сканпорт): Работает с типовыми конфигурациями 1С без промежуточных баз. Настройка бизнес-процессов (инвентаризация, приемка, перемещение) выполняется параметрически в самой 1С без необходимости программирования логики внутри ТСД.
  3. RightScan (Райтлог): Готовые драйверы и конфигурации для интеграции устройств под WinCE и Windows Mobile с 1С по Wi-Fi с поддержкой блокировок документов и онлайн-проверки ценников.

Альтернативные сценарии: использование беспроводных сканеров

В условиях, когда мобильный терминал используется исключительно в пределах одного торгового зала или небольшого склада для инвентаризации, альтернативой ТСД может служить беспроводной сканер штрихкодов с памятью (радиосканер или Bluetooth-сканер):

  1. Радиосканеры с памятью (пакетный режим): Позволяют оператору перемещаться вдоль стеллажей и сканировать товары. Данные накапливаются в буфере сканера и при возврате на базу сбрасываются в табличную часть документа 1С (ИнвентаризацияТоваровНаСкладе или ПересчетТоваров) по событию ВнешнееСобытие.
  2. Сканеры-кольца в связке с планшетом: Сканер закрепляется на пальце, а компактное устройство отображения фиксируется на руке оператора (технология Hands-Free), обеспечивая высокую скорость сканирования и свободные руки при пересчете тяжелых коробок.

Таким образом, для надежной онлайн-работы ТСД на базе Windows CE необходимо обновить клиент RDP до версии 6.1 с настройкой политик таймаутов на сервере, либо перевести обмен на гибридную схему с точечными онлайн-запросами через HTTP-сервисы или специализированное ПО.

← На главную