Как организовать выгрузку данных из 1С в ТСД при использовании ПО RS:Mobile ACS

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

Интеграция терминалов сбора данных (ТСД) с системой «1С:Предприятие» часто кажется магическим процессом, особенно если под рукой нет физического устройства для тестов. Рассмотрим подробно, как устроена механика прогрузки товаров в ТСД под управлением ПО RS:Mobile ACS (от компании RightScan) на примере конфигурации 1С:Розница 2.2. Мы разберем программные методы, структуру данных и способы отладки, которые помогут вам реализовать задачу «вслепую».

Общий принцип взаимодействия «на пальцах»

Прежде чем погружаться в код, проанализируем упрощенную схему обмена. Взаимодействие 1С и ТСД в режиме Offline (когда база товаров загружается в память устройства целиком) строится по следующему алгоритму:

  1. Подготовка данных: В 1С формируется таблица значений, содержащая информацию о товарах (штрихкод, наименование, цена, остаток).
  2. Передача драйверу: 1С передает эту таблицу драйверу (внешнему компоненту), который установлен на компьютере.
  3. Транспортировка: Драйвер «нарезает» таблицу на порции и через USB, Wi-Fi или Bluetooth передает их на ТСД.
  4. Прием: ПО на ТСД (в нашем случае RS:Mobile ACS) принимает данные и записывает их в свою локальную базу (обычно SQLite).

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

Разбор метода UploadTable (ВыгрузитьТаблицу)

Основной инструмент программиста при работе с современными драйверами ТСД — это метод UploadTable. Рассмотрим подробнее, почему автор темы столкнулся с трудностями при его использовании. Согласно требованиям БПО (Библиотеки подключаемого оборудования), выгрузка должна происходить итерационно.

Проанализируем ситуацию: передать за один раз справочник из 50 000 товаров невозможно из-за ограничений оперативной памяти или таймаутов соединения. Поэтому используется механизм пакетов. Метод UploadTable вызывается в цикле, и ему передается специальный параметр статуса пакета:

Если при отладке вы видите пустую таблицу, скорее всего, типовой механизм 1С не прошел условия фильтрации (например, по складу нет остатков) или не сработал инициализирующий вызов с параметром first.

Структура таблицы данных для RS:Mobile ACS

Для успешной прогрузки ТСД мы должны подготовить таблицу со строго определенными именами колонок. Драйвер RightScan ожидает следующие поля:

  1. Barcode — Штрихкод (основной идентификатор для поиска на устройстве).
  2. Name — Наименование товара.
  3. Price — Цена (выводится на экран ТСД при сканировании).
  4. Quantity — Количество (текущий остаток для контроля).
  5. UnitOfMeasure — Единица измерения.

Если ваша задача связана с инвентаризацией алкоголя, структура усложняется. Выясним причину: для корректной работы с ЕГАИС терминалу нужно знать дополнительные атрибуты. В таблицу добавляются:

Реализация выгрузки в коде 1С

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


// Создаем таблицу товаров
ТаблицаТоваров = Новый ТаблицаЗначений;
ТаблицаТоваров.Колонки.Добавить("Barcode", Новый ОписаниеТипов("Строка"));
ТаблицаТоваров.Колонки.Добавить("Name", Новый ОписаниеТипов("Строка"));
ТаблицаТоваров.Колонки.Добавить("Quantity", Новый ОписаниеТипов("Число"));

// Заполняем данными (в реальной задаче здесь будет запрос)
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Barcode = "2000000000015";
НоваяСтрока.Name = "Водка Особая 0.5";
НоваяСтрока.Quantity = 10;

// Вызываем метод драйвера (условно)
// Параметры: ИдентификаторУстройства, ТаблицаДанных, СтатусПакета
Результат = ОбъектДрайвера.ВыгрузитьТаблицу(ИдентификаторУстройства, ТаблицаТоваров, "first");

Обратите внимание: если вы используете Розница 2.2, вам не нужно писать этот код с нуля. Достаточно использовать типовую обработку ВыгрузкаТоваровВТСД. Если она открывается пустой, проверьте настройки отбора в шапке обработки: организацию, склад и формат выгрузки.

Как отладить прогрузку без ТСД (вслепую)

Это самый важный вопрос для разработчика. Проанализируем инструменты, которые позволяют проверить работу кода без физического устройства:

  1. Эмулятор ТСД: В составе БПО 1С есть встроенный драйвер «1С:Терминал сбора данных (эмулятор)». Настройте новое оборудование в справочнике «Подключаемое оборудование», выбрав этот драйвер. При выгрузке 1С покажет вам окно с таблицей — именно те данные, которые она собиралась отправить в реальное устройство. Это лучший способ проверить состав колонок и корректность заполнения полей.
  2. Логирование драйвера RightScan: Драйверы RS:Mobile часто пишут логи в папку пользователя. Ищите файлы в %AppData%\Roaming\RightScan\. В этих логах можно увидеть XML-структуры, которые формирует компонент перед отправкой.
  3. Утилита RS:Exchange: Установите на компьютер утилиту обмена от производителя. Она позволяет настроить обмен через промежуточные файлы (CSV/XML). Вы можете настроить 1С на работу с «файловым ТСД», и смотреть, какие файлы появляются в папке обмена.

Особенности работы с акцизными марками

Для инвентаризации алкоголя (акцизных марок) прогрузки просто справочника товаров недостаточно. Рассмотрим подробнее: если клиент хочет проверять марки на соответствие документу (например, при поступлении), в ТСД нужно выгружать таблицу ожидаемых марок. В RS:Mobile ACS это отдельный режим работы. В этом случае в метод UploadTable передаются штрихкоды PDF417 или DataMatrix, которые устройство должно «узнать» при сканировании.

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

Подведем итоги

Для успешной настройки выгрузки в ТСД через RS:Mobile ACS выполните следующие шаги:

  1. Проверьте, установлена ли внешняя компонента драйвера в системе.
  2. Используйте Эмулятор ТСД для проверки структуры таблицы 1С.
  3. Убедитесь, что имена колонок соответствуют требованиям драйвера (Barcode, Name и т.д.).
  4. При работе с алкоголем добавьте поля AlcoholCode и Capacity.
  5. Для больших объемов данных реализуйте цикл с передачей статусов first, regular, last.

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

← На главную