Как разработать мобильное приложение для ТСД на Android для интеграции с 1С

Программист 1С v8.3 (Управляемые формы) Управленческий учет Промышленность, строительство и АПК
← На главную

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

Вариант 1: Использование удаленного рабочего стола (RDP)

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

Проанализируем ключевые особенности этого подхода:

  1. Простота запуска: Не нужно настраивать обмены данными или публиковать веб-сервисы.
  2. Онлайн-режим: Все данные актуальны в режиме реального времени.
  3. Проблема интерфейса: Обычные управляемые формы 1С плохо подходят для маленьких экранов ТСД. Придется создавать специализированные обработки с крупными кнопками и адаптированным разрешением.
  4. Стабильность связи: При обрыве Wi-Fi сессия RDP может зависнуть, что критично для складских условий.

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


ПараметрыФормы = Новый Структура("Высота, Ширина", 480, 320);
ОткрытьФорму("Обработка.РабочееМестоКладовщика.Форма.ФормаТСД", ПараметрыФормы);

Вариант 2: Мобильный клиент 1С

Разберем современный подход — использование Мобильного клиента. Это тонкий клиент для мобильных устройств, который работает с базой через веб-сервер. В отличие от RDP, мобильный клиент умеет использовать нативные возможности Android (камеру, сканер штрихкодов).

Выясним, что нужно для реализации:

  1. Публикация базы: Необходимо опубликовать базу на веб-сервере (Apache или IIS).
  2. Адаптация форм: В свойствах конфигурации или конкретных форм нужно установить флаг использования в мобильном клиенте. Платформа сама перестроит элементы управления под палец.
  3. Работа со сканером: Для интеграции встроенного лазерного сканера ТСД рекомендуется использовать библиотеку подключаемого оборудования (БПО) для мобильных устройств.

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


&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Событие = "Barcode" Тогда
        Штрихкод = СокрЛП(Данные);
        ОбработатьСканирование(Штрихкод);
    КонецЕсли;
КонецПроцедуры

Вариант 3: Мобильная платформа (Автономная работа)

Проанализируем ситуацию, когда на складе нестабильный Wi-Fi. В этом случае лучшим решением станет Мобильная платформа 1С. Это полноценное отдельное приложение со своей локальной базой данных на ТСД (SQLite).

Основные этапы реализации:

  1. Создание конфигурации: Разрабатывается отдельная «легкая» конфигурация для мобильных устройств.
  2. Интеграция через HTTP-сервисы: Для обмена данными между основной базой и ТСД создаются HTTP-сервисы. Это позволяет передавать только нужную информацию (остатки, задания на сборку).
  3. Автономность: Кладовщик может работать даже в подвале без связи, а при выходе в зону покрытия Wi-Fi нажать кнопку «Синхронизировать».

Рассмотрим пример простейшего GET-запроса из мобильного приложения к основной базе для получения остатка товара:


Соединение = Новый HTTPСоединение("192.168.1.10", , "Админ", "Пароль");
Запрос = Новый HTTPЗапрос("/Base/hs/Warehouse/GetBalance?Article=" + Артикул);
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    Данные = Ответ.ПолучитьТелоКакСтроку();
    // Обработка JSON с остатками
КонецЕсли;

Методология учета сырья в емкостях (бочки, канистры)

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

Рекомендуемый подход: использование учета по грузовым местам (емкостям). Каждая бочка при поступлении должна получать уникальный идентификатор (серийный номер или LPN-код).

  1. Приход: Принимаем 2000 кг кислоты, генерируем 10 этикеток для каждой бочки по 200 кг. Каждая бочка — это отдельная запись в регистре остатков с привязкой к ШК.
  2. Расход: При взятии 50 кг из бочки №1, кладовщик сканирует ШК бочки. Система понимает, что остаток в этой конкретной емкости теперь 150 кг.
  3. Визуализация: На экране ТСД кладовщик видит не просто «Кислота: 2000 кг», а список бочек с их текущим весом.

Для реализации такого учета необходимо добавить в конфигурацию регистр накопления ОстаткиПоЕмкостям с измерениями Номенклатура, Склад и Емкость (справочник или серийный номер).

Технические нюансы настройки сканера (Broadcast Intent)

Разберем важный момент для ТСД на Android (например, Sunmi или Zebra). Чтобы 1С корректно ловила штрихкоды, в настройках самого устройства (DataWedge или Scanner Settings) нужно настроить передачу данных через Broadcast Intent.

Это позволяет избежать проблем «клавиатурного» ввода (когда сканер просто «печатает» цифры в поле ввода) и дает возможность обрабатывать штрихкод в фоновом режиме. Мы настраиваем действие (Action) в настройках ТСД, например com.mycompany.scan, и прописываем его в коде 1С при инициализации библиотеки оборудования.

Выводы и рекомендации

Проанализировав все варианты, можно сделать следующие выводы:

Помните, что для стабильной работы с файловой базой через веб-сервер желательно перейти на Client-Server вариант (например, с бесплатным PostgreSQL), чтобы избежать блокировок при одновременном обращении множества ТСД.

← На главную