Как подключить терминал сбора данных (ТСД) к самописной конфигурации 1С 7.7 и разработать удобный складской интерфейс?

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

Автоматизация складского учета с использованием терминалов сбора данных (ТСД) — стандарт де-факто для современного бизнеса. Однако, если на предприятии до сих пор успешно функционирует надежная, но технологически устаревшая платформа «1С:Предприятие 7.7» (особенно если конфигурация полностью самописная), перед разработчиком встает непростой выбор. Как «подружить» современное мобильное железо под управлением Android или DOS-подобных операционных систем с платформой, созданной более двадцати лет назад?

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

---

Вариант 1. Терминальный доступ (RDP) в режиме онлайн

Это один из самых популярных и экономически оправданных подходов для внедрения на самописных конфигурациях. Суть метода заключается в том, что ТСД выступает в роли «тонкого клиента». На терминале запускается RDP-клиент (например, Microsoft Remote Desktop на Android), который подключается к серверу терминалов Windows. Пользователь видит на экране ТСД запущенный сеанс 1С 7.7.

Рассмотрим ключевые преимущества этого подхода:

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

Тем не менее, у RDP-режима есть существенные недостатки. Прежде всего, это критическая зависимость от стабильности Wi-Fi покрытия на складе. При малейшем обрыве связи сессия «зависает» или сбрасывается. Кроме того, мелкие элементы стандартного интерфейса Windows крайне неудобно отображаются на небольших экранах терминалов, что требует тщательной переработки форм.

---

Вариант 2. Батч-терминалы (сбор данных в оффлайн-режиме)

Классический, проверенный временем метод «забежать на минутку». В качестве оборудования используются простые и сверхнадежные терминалы, такие как легендарный CipherLab 8001 (или вся линейка CipherLab 8xxx) на инфракрасной подставке (кредле).

Проанализируем схему работы батч-обмена:

  1. Кладовщик берет ТСД, в котором уже загружен справочник товаров или штрихкодов.
  2. Он ходит по складу и автономно сканирует позиции, собирая данные во внутреннюю память устройства. Связь в процессе работы не требуется.
  3. После завершения работы ТСД устанавливается в подставку (кредл), подключенную к компьютеру по USB или COM-порту.
  4. В 1С 7.7 запускается обработка, которая через специальную внешнюю компоненту (например, драйвер от компании Сканкод) считывает накопленные данные и автоматически заполняет табличную часть документа (приходной накладной, инвентаризации, расходного ордера).

Этот способ идеален для небольших складов с простой логистикой, где нет необходимости контролировать остатки ежесекундно. Главный минус — отсутствие оперативного контроля в реальном времени. Кладовщик не узнает, что отсканировал пересортицу, пока не выгрузит данные в 1С.

---

Вариант 3. Использование специализированного промежуточного ПО (Middleware)

Для создания полноценной профессиональной системы автоматизации используют специализированные программные комплексы, такие как Cleverence (Mobile SMARTS) или DataMobile.

С технической точки зрения интеграция с 1С 7.7 здесь выглядит следующим образом:

---

Вариант 4. Клиент-серверная архитектура через HTTP-прокси

Если вам требуется полноценный онлайн-режим на современных Android-устройствах (например, Urovo i6200), но вы хотите отказаться от RDP из-за дороговизны лицензий служб удаленных рабочих столов (RDS CAL) или нестабильности Wi-Fi, можно использовать гибридную схему.

Выясним структуру такого решения. Поскольку сама платформа 1С 7.7 не умеет нативно работать в качестве веб-сервера и публиковать HTTP-сервисы, перед ней выстраивается легкий прокси-сервер (написанный на Python, Node.js или ASP.NET). На самом ТСД запускается легкое нативное Android-приложение.

Мобильное приложение отправляет HTTP-запросы (в формате JSON) на прокси-сервер. Тот, в свою очередь, напрямую обращается к SQL-базе данных 1С 7.7 (или читает DBF-таблицы через OLE/ADO) и возвращает структурированный ответ на терминал. Этот способ гарантирует максимальное быстродействие, современный интерфейс и полную независимость от кратковременных разрывов связи — мобильное приложение просто повторит запрос при восстановлении сети.

---

Борьба с техническими трудностями RDP: Проблема «потерянных» символов штрихкода

Если вы остановили свой выбор на интеграции через RDP (Вариант 1), вы неизбежно столкнетесь со специфической проблемой передачи данных сканера. При сканировании штрихкода Android-терминал эмулирует нажатия клавиш клавиатуры и передает их по RDP-каналу на сервер. Из-за задержек сети или слишком высокой скорости эмуляции символы начинают «теряться» (например, штрихкод 4810438008884 считывается сервером как 481043800884 — дублирующиеся цифры «проглатываются»).

Разберем два эффективных пути решения этой проблемы:

  1. Изменение типа поля ввода на форме 1С (быстрый костыль): По непонятным архитектурным причинам однострочные текстовые поля ввода в 1С 7.7 под RDP часто сбоят при скоростном потоке ввода. Если изменить свойство поля ввода на форме 1С, сделав его многострочным, буфер ввода Windows Server начинает обрабатывать поток данных корректно, и символы перестают теряться.
  2. Использование внешней компоненты (профессиональное решение): Настройте сканер на самом ТСД на передачу данных по сетевому протоколу (TCP/IP), а на стороне сервера 1С подключите специализированную внешнюю компоненту (например, бесплатную утилиту «RDP Scanner» или драйвер АТОЛ «Устройства ввода» с библиотекой Scaner1C.dll). Компонента перехватит сетевой пакет от ТСД и сгенерирует в 1С штатное предопределенное событие ОбработкаВнешнегоСобытия(). Этот метод полностью исключает эмуляцию клавиатуры и работает со 100% надежностью при любом качестве связи.

---

Проектирование идеального UI/UX для экранов ТСД

Разработка интерфейса для терминала кардинально отличается от создания форм для обычных ПК. Здесь важен каждый пиксель, а скорость работы сотрудника напрямую зависит от читаемости информации.

Проанализируем основные правила дизайна экранов ТСД:

  1. Выбор шрифта:
    • Используйте шрифты без засечек — они наиболее читабельны на небольших дисплеях. Отлично подходит стандартный Arial.
    • Для вывода больших массивов вспомогательной текстовой информации задействуйте плотные шрифты, например, Arial Narrow или Web Serveroff. Это позволит уместить длинные наименования без переноса строк.
    • Для ключевых идентификаторов (адреса складских ячеек, номера документов, коды зон) идеально подходит моноширинный шрифт Courier New. Он четко разделяет знаки и исключает путаницу при беглом взгляде.
  2. Отказ от списков и скроллбаров:

    Наличие таблиц значений (ТЗ) или длинных списков на экране ТСД — это признак неоптимально спроектированного процесса. Избегайте вертикальных и горизонтальных полос прокрутки. Экран должен быть спроектирован так, чтобы пользователю не приходилось ничего пролистывать. Список допустим исключительно в качестве меню выбора режима работы.

  3. Оптимизация ручного ввода:

    Минимизируйте работу со стандартной клавиатурой ТСД. Если клавиатурный ввод неизбежен, используйте концепцию автоподстановки символов. Посмотрим на пример ввода габаритов товара (длина, ширина, высота). Вместо переключения между полями ввода предоставьте пользователю одну большую строку, куда он сможет ввести габариты триадой через пробел, например: 100 200 150. Нажатие клавиши пробела программно заменяйте на разделители.

    Рассмотрим, как это можно реализовать на встроенном языке 1С 7.7:

    
    // Функция разбирает строку ввода габаритов, разделенных пробелами
    Процедура РазобратьГабариты(СтрокаВвода)
        Стр = СокрЛП(СтрокаВвода);
        // Заменяем множественные пробелы на одиночные
        Пока Найти(Стр, "  ") > 0 Цикл
            Стр = СтрЗаменить(Стр, "  ", " ");
        КонецЦикла;
        
        // Выделяем габариты
        Поз1 = Найти(Стр, " ");
        Если Поз1 > 0 Тогда
            Длина = Лев(Стр, Поз1 - 1);
            Остаток = Сред(Стр, Поз1 + 1);
            Поз2 = Найти(Остаток, " ");
            Если Поз2 > 0 Тогда
                Ширина = Лев(Остаток, Поз2 - 1);
                Высота = Сред(Остаток, Поз2 + 1);
                Предупреждение("Успешно введено! Длина: " + Длина + ", Ширина: " + Ширина + ", Высота: " + Высота, 1);
            Иначе
                Предупреждение("Неверный формат! Введите три числа через пробел.");
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры
    
  4. Дублирование кнопок управляющими штрихкодами:

    Часто физические кнопки на ТСД затираются или ломаются в процессе жесткой эксплуатации на складе. Заложите в логику системы возможность выполнять ключевые команды (например, «ОК», «Отмена», «Закрыть документ», «Очистить») путем сканирования заранее распечатанных сервисных штрихкодов. Эти штрихкоды можно наклеить прямо на корпус терминала или на складскую тележку.

---

Обязательная настройка звукового сопровождения в RDP

Работа кладовщика — это монотонный циклический процесс. Со временем у сотрудника «замыливается» взгляд, и он перестает смотреть на экран ТСД, сканируя товары на автомате. Без качественной звуковой индикации неизбежно возникнет лавина ошибок: кладовщик пропустит сообщение о неверном товаре или переходе к следующему шагу сборки.

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

Разберем по шагам, как пробросить звук в RDP-сессии:

  1. Настройка групповых политик (GPO) на сервере Windows: Откройте редактор групповых политик (gpedit.msc) и перейдите по пути:
    Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление устройств и ресурсов.
    Включите политику «Разрешить перенаправление воспроизведения аудио и видео».
  2. Настройка мобильного RDP-клиента: В параметрах созданного подключения на ТСД найдите настройки звука и выберите значение «Проигрывать на этом устройстве» (Play on this device).
  3. Программное воспроизведение звука в 1С 7.7: Стандартная команда 1С 7.7 Сигнал() часто некорректно транслируется через RDP. Для гарантированного воспроизведения звуковых файлов формата .wav используйте внешние библиотеки (например, популярную компоненту FormEx или системные вызовы Windows API через объект WScript.Shell).

    Посмотрим на пример кода для проигрывания системного звука ошибки:

    
    // Пример проигрывания WAV-файла ошибки через командную строку Windows из 1С 7.7
    Процедура ОзвучитьОшибку()
        Попытка
            Шелл = СоздатьОбъект("WScript.Shell");
            // Запускаем скрытое проигрывание wav-файла штатными средствами ОС
            ПутьКЗвуку = "C:\Windows\Media\chord.wav";
            Шелл.Run("powershell -c (New-Object Media.SoundPlayer '" + ПутьКЗвуку + "').PlaySync()", 0, 0);
        Исключение
            // Альтернативный вариант, если PowerShell недоступен
            Предупреждение("Ошибка! Неверный товар!", 1);
        КонецПопытки;
    КонецПроцедуры
    

Обязательно разделите звуковые сигналы на три типа: успешное действие (негромкий приятный клик), предупреждение/смена ячейки (двойной звуковой сигнал) и критическая ошибка/неверный товар (громкая протяжная сирена). Это позволит сократить ошибки пересортицы на складе практически до нуля.

← На главную