Как связать ТСД на Windows CE 6.0 с самописной конфигурацией на 1С 8.3?

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

Интеграция терминалов сбора данных (ТСД) на базе операционной системы Windows CE 6.0 с современными версиями 1С:Предприятие 8.3 является нетривиальной задачей. Основная сложность заключается в том, что WinCE считается устаревшей платформой, для которой прекращена активная поддержка средств разработки, а современные мобильные приложения 1С требуют Android или iOS. В данной статье мы подробно разберем четыре основных стратегии реализации этой задачи, проанализируем их плюсы и минусы, а также выясним технические нюансы работы с оборудованием.

Вариант 1. Работа через удаленный рабочий стол (RDP)

Это самый популярный и бюджетный способ превратить старый ТСД в полноценное рабочее место. Суть заключается в том, что на терминале запускается стандартный RDP-клиент, который подключается к терминальному серверу под управлением Windows Server. На сервере открывается сеанс 1С.

Рассмотрим особенности этого метода:

  1. Интерфейс: Поскольку экраны ТСД имеют низкое разрешение (обычно 240x320 или 480x640), стандартные управляемые формы 1С могут отображаться некорректно. Рекомендуется разработать специализированные «легкие» формы. Эксперты советуют использовать Обычные формы (ОФ), так как они позволяют более гибко управлять размещением элементов на маленьком пространстве.
  2. Производительность: Вся вычислительная нагрузка ложится на сервер. ТСД выступает лишь в роли монитора. Это позволяет работать с огромными базами данных без задержек на самом устройстве.
  3. Работа со сканером: Для передачи штрихкода в 1С через RDP обычно используется режим эмуляции клавиатуры. Утилита на ТСД (например, DataWedge для устройств Motorola/Zebra) считывает код и «печатает» его в активное поле ввода 1С.

Преимущества: Минимум разработки на стороне WinCE, мгновенное обновление логики (достаточно изменить форму в 1С), отсутствие необходимости синхронизации данных.

Недостатки: Полная зависимость от стабильности Wi-Fi. Если связь прервется в «мертвой зоне» склада, работа остановится.

Вариант 2. Использование готовых программных комплексов (Cleverence, Data Mobile)

Если бюджет позволяет, лучшим решением будет использование специализированного ПО (middleware). Такие системы, как Клеверенс (Mobile SMARTS) или Data Mobile, уже имеют готовые клиенты под Windows CE и модули интеграции для 1С.

Проанализируем процесс интеграции:

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

Важные моменты:

Вариант 3. Разработка собственного клиента на C# (.NET Compact Framework)

Для тех, кто предпочитает полный контроль над кодом, возможна разработка нативного приложения. Однако здесь мы сталкиваемся с главной проблемой: для Windows CE 6.0 требуется Visual Studio 2008.

Разберем технические шаги реализации:

  1. Среда разработки: Вам понадобится VS 2008 с установленным .NET Compact Framework 3.5. Поскольку студия давно не продается, легальное приобретение может быть затруднено, но на рынке вторичного ПО или через старые подписки MSDN её еще можно найти.
  2. Обмен данными: На стороне 1С создается Web-сервис (SOAP) или HTTP-сервис (REST). Приложение на ТСД отправляет запросы к этим сервисам. Рассмотрим пример структуры запроса к Web-сервису 1С из C#:

// Пример вызова веб-сервиса 1С из .NET Compact Framework
try {
    WS_1C.NomenclatureService service = new WS_1C.NomenclatureService();
    service.Credentials = new NetworkCredential("login", "password");
    string productName = service.GetProductByBarcode("123456789");
    lblResult.Text = productName;
} catch (Exception ex) {
    MessageBox.Show("Ошибка связи: " + ex.Message);
}

Нюанс с бизнес-логикой: Не рекомендуется переносить сложную логику на ТСД. Лучше реализовать на устройстве только интерфейс и проверку ввода, а основные расчеты (движения регистров, поиск остатков) оставить на стороне 1С через Web-сервисы. Это сохранит трехзвенную архитектуру.

Вариант 4. Веб-интерфейс через браузер

Если на складе стабильный Wi-Fi, можно использовать встроенный браузер ТСД. Однако стандартный Internet Explorer в WinCE 6.0 крайне примитивен. Для работы современных веб-форм 1С (Управляемое приложение) он не подойдет.

Выходом может стать:

Работа с аппаратной частью (Сканером)

Выясним, как заставить кнопку сканирования работать в вашем приложении. На Windows CE есть два пути:

1. Режим Keyboard Wedge (Эмуляция клавиатуры). Самый простой вариант. Утилита DataWedge перехватывает данные со сканера и вставляет их в поле, где стоит фокус. В 1С или вашем приложении на C# достаточно обрабатывать событие OnKeyDown или TextChanged. Однако это ненадежно: если пользователь случайно уберет фокус с текстового поля, данные будут потеряны.

2. Использование SDK (Symbol/Motorola EMDK). Проанализируем программный подход. Вы подключаете библиотеку Symbol.Barcode к вашему проекту. Это позволяет программно управлять лазером и получать данные напрямую в переменную, даже если приложение свернуто или фокус не на поле ввода.


// Пример инициализации сканера через Symbol SDK
private Symbol.Barcode.Reader myReader = null;
private Symbol.Barcode.ReaderData myReaderData = null;

myReader = new Symbol.Barcode.Reader();
myReaderData = new Symbol.Barcode.ReaderData(
    Symbol.Barcode.ReaderDataTypes.Text,
    Symbol.Barcode.ReaderDataLengths.MaximumLabel);

myReader.Actions.Enable();
myReader.OnStatus += (s, e) => { /* Обработка статуса */ };
myReader.OnRead += (s, e) => {
    string barcode = myReaderData.Text; // Получили ШК напрямую
};

Архитектурные рекомендации и ограничения

Проанализировав ситуацию, можно выделить несколько критических советов для разработчика:

  1. Ограничение памяти: Помните, что в WinCE 6.0 процесс ограничен 32 МБ оперативной памяти. Избегайте загрузки больших справочников (например, всей номенклатуры в 100 000 позиций) в память устройства. Используйте постраничную загрузку или поиск на сервере.
  2. Стабильность Wi-Fi: На больших складах возникает проблема «роуминга» (перехода между точками доступа). Для WinCE это часто приводит к разрыву TCP-сессии. При написании службы обмена на C# обязательно реализуйте механизм автоматического переподключения и подтверждения доставки пакетов.
  3. Пользовательский опыт: Кладовщик работает в перчатках и на бегу. Кнопки должны быть огромными, звуковые сигналы об успешном сканировании — громкими, а об ошибке — вибрирующими или пронзительными.
  4. Выбор между C# и RDP: Если вам нужно запустить проект «вчера» — выбирайте RDP. Если вы строите масштабируемую систему с возможной работой в зонах плохого приема — пишите клиента на C#.

Таким образом, несмотря на почтенный возраст Windows CE 6.0, она остается рабочей лошадкой для складских задач. Выбор способа связи с 1С 8.3 зависит от ваших навыков программирования и требований к автономности устройств. Рассмотрим вариант с RDP как наиболее быстрый старт, а разработку на C# — как путь создания максимально профессионального и отказоустойчивого решения.

← На главную