Как подключить беспроводной сканер штрихкодов или мобильный ТСД к 1С через RDP или мобильное приложение?

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

При организации автоматизированного сбора товаров на складе, когда требуется сканировать штрихкоды документов и товаров, а затем видеть эти данные в 1С (например, 1С:Комплексная автоматизация 2.4), возникают вопросы по интеграции беспроводных сканеров и мобильных терминалов сбора данных (ТСД). Особенно актуально это становится, если работа с 1С ведется через RDP (Remote Desktop Protocol) или рассматриваются мобильные приложения на платформах Android или Windows CE. Давайте вместе разберем различные подходы и решения для этой задачи. Для тех, кто находится на этапе перехода на новую версию программы, доступен раздел с решениями для переноса данных в 1С:Комплексную автоматизацию из других конфигураций.

Начнем с анализа доступных вариантов, охватывающих как устаревшее, так и современное оборудование, а также различные методы подключения к 1С.

1. Использование устаревших ТСД (например, Zebra MC2180 с Windows CE) через RDP

Если у вас есть старый терминал сбора данных, такой как Zebra MC2180 с операционной системой Windows CE, вы можете попытаться интегрировать его с 1С, работающей через RDP. Рассмотрим, как это можно сделать:

  1. Запуск RDP-клиента на ТСД: Большинство ТСД на Windows CE поддерживают запуск клиента удаленного рабочего стола. Вы можете подключиться к серверу, где запущена 1С.
  2. Проброс сканера как клавиатуры: В этом режиме сканер ТСД эмулирует ввод с клавиатуры. При сканировании штрихкода данные передаются в RDP-сессию так, как если бы они были введены вручную с клавиатуры.
  3. Настройка в 1С: Для работы с таким сканером в 1С используется стандартный драйвер сканера штрихкодов, который воспринимает данные как ввод с клавиатуры. Мы открываем настройки оборудования в 1С, выбираем тип устройства «Сканер штрихкодов» и настраиваем его на работу как с клавиатурным устройством ввода.

Однако, важно учитывать, что этот подход имеет ряд ограничений:

2. Подключение современных планшетов или ТСД на Android через RDP

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

2.1. Подключение по RDP с внешним или встроенным сканером

  1. RDP-клиент на Android: На Android-устройствах легко найти и установить RDP-клиент. Например, официальное приложение

    «Удаленный рабочий стол Microsoft» (Microsoft Remote Desktop)

    доступно в Google Play Store. Это приложение позволяет подключиться к серверу 1С.
  2. Использование беспроводного сканера по Bluetooth: Мы можем подключить любой беспроводной сканер штрихкодов, работающий по Bluetooth, к Android-планшету или ТСД. Сканер должен работать в режиме HID (Human Interface Device), эмулируя клавиатуру. В этом режиме сканер передает считанный штрихкод как обычный ввод с клавиатуры. Для 1С в RDP-сессии это будет выглядеть как ввод данных с клавиатуры сервера, к которому подключен RDP-клиент. Настройка в 1С аналогична предыдущему пункту – используем стандартный драйвер сканера штрихкодов.
  3. Сканирование с помощью камеры устройства: Существуют приложения для Android, которые позволяют использовать встроенную камеру устройства для сканирования штрихкодов и отправки распознанного значения в буфер клавиатуры. Это позволяет имитировать ввод со сканера без отдельного устройства.
  4. Использование встроенного сканера ТСД: Многие современные ТСД на Android имеют встроенный сканирующий модуль. Их утилиты часто позволяют настроить работу сканера таким образом, чтобы он также эмулировал ввод с клавиатуры, что делает его совместимым с RDP-сессией 1С без дополнительных настроек драйверов на сервере.

2.2. Особенности работы RDP на Android и адаптация 1С

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

  1. Настройки RDP-клиента: В приложении RDP-клиента на Android мы можем настроить разрешение экрана, масштабирование и управление жестами. Это позволяет нам оптимизировать отображение 1С под размер экрана ТСД или планшета, делая взаимодействие более удобным. Например, тачскрин устройства будет работать как сенсорная панель (тачпад) ноутбука, а клавиатура будет вызываться по мере необходимости.
  2. Оптимизация интерфейса 1С для RDP: Для обеспечения максимального удобства работы мы рекомендуем создавать специальные «облегченные» формы в 1С, предназначенные для работы через RDP на мобильных устройствах. Эти формы должны быть:
    • Упрощенными: Содержать только необходимый минимум полей и элементов управления.
    • С крупными элементами: Кнопки, поля ввода и другие элементы должны быть достаточно большими для удобного сенсорного ввода.
    • Адаптированными под сенсор: Избегайте мелких элементов, требующих точного попадания курсором.

    Хотя создание отдельных форм для RDP может показаться «хреновым вариантом» из-за дополнительной работы, оно значительно улучшает пользовательский опыт и делает работу с 1С на маленьком экране ТСД гораздо более эффективной, особенно когда нужно подготовить упаковочный лист из документа Реализация товаров и услуг. При подготовке тестовых контуров или очистке баз перед внедрением мобильных рабочих мест применяется обработка для выборочного удаления организаций.

  3. Настройки RDP-клиента для производительности: Мы можем уменьшить качество графики, отключить передачу звука и другие функции в настройках RDP-клиента. Это снизит нагрузку на канал связи и ускорит работу интерфейса 1С, что особенно важно при нестабильном Wi-Fi или мобильном интернете.

3. Использование нативных мобильных приложений 1С

Вместо того чтобы запускать полную версию 1С через RDP, мы можем использовать мобильную платформу 1С для создания специализированных приложений под Android. Этот подход обеспечивает наилучшую производительность и пользовательский опыт на мобильных устройствах. При самостоятельной разработке такого решения можно использовать руководство по настройке взаимодействия мобильного клиента с базой 1С через HTTP-сервисы.

  1. Мобильная платформа 1С: 1С:Предприятие поддерживает разработку мобильных приложений, которые работают на Android. Для этого мы можем разработать мобильное приложение, которое будет подключаться к основной базе 1С. У меня в профиле есть статья на эту тему, где подробно описываются механизмы.
  2. Сканирование штрихкодов: В мобильной платформе 1С есть встроенный механизм чтения штрихкодов с камеры устройства. Это позволяет нам напрямую использовать камеру смартфона или встроенный сканер ТСД для сканирования без необходимости эмуляции клавиатуры или дополнительных драйверов. Для ТСД со встроенным сканером, 1С мобильная платформа обычно предоставляет более глубокую интеграцию, чем просто эмуляция клавиатуры.
  3. Подключение к 1С: Чтобы мобильное приложение 1С могло взаимодействовать с основной базой 1С (например, 1С:КА), необходимо опубликовать базу на веб-сервере (например, Apache или IIS). Мобильное приложение затем подключается к этой опубликованной базе по HTTP/HTTPS.
  4. Оптимизация интерфейса: При разработке мобильных приложений 1С мы создаем интерфейс, специально разработанный для мобильных устройств. Это означает крупные элементы управления, удобное расположение полей, оптимизацию под сенсорный ввод и минимизацию переходов между экранами. Это обеспечивает максимальное удобство для сборщика товара.

Когда вы скачали на Android приложение 1С:КА, вы, вероятно, скачали мобильный клиент, который требует подключения к опубликованной базе 1С. Для того чтобы "расшарить" 1С для ТСД, вам нужно выполнить следующие шаги:

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

4. Специализированное ПО для ТСД (Cleverence Mobile SMARTS)

Для более комплексных решений по автоматизации складских операций часто используются специализированные платформы, такие как Cleverence Mobile SMARTS. Этот подход значительно упрощает разработку и внедрение.

  1. Платформа Mobile SMARTS: Это платформа для создания мобильных решений, разработанная специально для ТСД и интегрированная с 1С. Она предоставляет готовые шаблоны для типовых операций (приемка товаров, отгрузка товаров, инвентаризация) и инструменты для разработки собственных решений.
  2. Принцип работы: Вместо прямого запуска 1С на ТСД или через RDP, Mobile SMARTS синхронизирует данные с 1С. Обычно это происходит через обработку или веб-сервис. Пользователь выполняет операции на ТСД в оффлайн-режиме, что обеспечивает стабильность работы даже при временной потере связи. После завершения операций или при восстановлении связи результаты выгружаются обратно в 1С.
  3. Преимущества:
    • Оптимизированный интерфейс: Интерфейс Mobile SMARTS изначально разработан для ТСД и максимально удобен для складских работников, включая автоматический разбор возвратных заказов.
    • Стабильность и скорость: Работа в оффлайн-режиме и оптимизированный код обеспечивают высокую скорость и стабильность работы.
    • Глубокая интеграция: Платформа позволяет использовать весь функционал встроенного сканера ТСД без сложностей с пробросом или настройкой драйверов.
    • Быстрое внедрение: Готовые шаблоны позволяют быстро запустить типовые операции.
  4. Интеграция с 1С: Продавцы ТСД часто предлагают услуги по интеграции с 1С, используя такие платформы как Mobile SMARTS, что может значительно упростить процесс внедрения.

5. Выбор оборудования и софта

При выборе нового оборудования для решения нашей задачи, следует обратить внимание на следующие моменты:

  1. Современные ТСД на Android: Мы рекомендуем выбирать ТСД на базе Android (версия Android 8.0 и выше для лучшей совместимости с современными приложениями и безопасностью). Желательно, чтобы устройство имело физическую клавиатуру (для ускорения ввода данных, помимо сенсорного экрана) и качественный сканирующий модуль.
  2. RDP-клиенты на Android: Для подключения к RDP используйте проверенные приложения, такие как "Удаленный рабочий стол Microsoft" из Google Play Store. Они предлагают гибкие настройки разрешения экрана, масштабирования и управления жестами для улучшения взаимодействия.
  3. Беспроводные сканеры: При выборе Bluetooth-сканера для работы через RDP, отдавайте предпочтение моделям, которые явно поддерживают режим HID (эмуляция клавиатуры). Это упростит настройку и избавит от проблем с драйверами, поскольку сканер будет вести себя как обычная внешняя клавиатура.

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

В управляемой форме 1С вы можете использовать событие ОбработкаВвода для поля ввода, или же глобальный обработчик для всей формы. Если сканер настроен через стандартный драйвер 1С, то обычно достаточно просто установить курсор в нужное поле и сканировать. 1С сама подхватит данные.


// Пример обработчика события для поля ввода (например, ПолеВводаШК)
&НаКлиенте
Процедура ПолеВводаШКНачалоВыбора(Элемент, СтандартнаяОбработка)
    // Отключаем стандартную обработку, чтобы не открывалось окно выбора
    СтандартнаяОбработка = Ложь;

    // В данном случае, сканер работает как клавиатура,
    // и значение уже будет в ПолеВводаШК.
    // Если нам нужно вызвать какую-то команду после ввода ШК,
    // это можно сделать в событии ПриИзменении
КонецПроцедуры

&НаКлиенте
Процедура ПолеВводаШКПриИзменении(Элемент)
    // После сканирования штрихкода (или ручного ввода)
    // значение ШК попадает в ПолеВводаШК.
    // Здесь мы можем обработать его:
    Штрихкод = Элементы.ПолеВводаШК.Значение;
    Если ЗначениеЗаполнено(Штрихкод) Тогда
        // Выполняем поиск товара по Штрихкоду
        // и обновляем данные о собранном/остатке
        НайтиИОбработатьТоварПоШК(Штрихкод);
        Элементы.ПолеВводаШК.Значение = ""; // Очищаем поле для следующего сканирования
    КонецЕсли;
КонецПроцедуры

// Функция на сервере, которая будет искать товар и обновлять данные
&НаСервере
Процедура НайтиИОбработатьТоварПоШК(Штрихкод)
    // Здесь реализуется логика поиска товара в базе 1С по ШК,
    // обновление табличной части "СобранныеТовары",
    // расчет "ОсталосьСобрать" и т.д.
    // Пример:
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    Номенклатура.Ссылка КАК Номенклатура,
        |    ХарактеристикиНоменклатуры.Ссылка КАК Характеристика,
        |    СерииНоменклатуры.Ссылка КАК Серия
        |ИЗ
        |    РегистрСведений.Штрихкоды КАК Штрихкоды
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
        |        ПО Штрихкоды.Владелец = Номенклатура.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        |        ПО Штрихкоды.Характеристика = ХарактеристикиНоменклатуры.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
        |        ПО Штрихкоды.Серия = СерииНоменклатуры.Ссылка
        |ГДЕ
        |    Штрихкоды.Штрихкод = &Штрихкод";

    Запрос.УстановитьПараметр("Штрихкод", Штрихкод);

    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();

    Если Выборка.Следующий() Тогда
        // Найден товар. Обновляем данные на форме.
        // Например, добавляем строку в табличную часть "ТоварыКСборке"
        // или увеличиваем количество в существующей строке.

        // Предположим, у нас есть коллекция для собранных товаров
        // и мы обновляем ее, а затем пересчитываем остатки
        
        // Например, если на форме есть таблица "ТоварыДляСборки"
        // и мы ищем в ней строку по найденной номенклатуре.
        НайденнаяСтрока = Неопределено;
        Для Каждого СтрокаТЧ Из Объект.ТоварыДляСборки Цикл
            Если СтрокаТЧ.Номенклатура = Выборка.Номенклатура Тогда
                НайденнаяСтрока = СтрокаТЧ;
                Прервать;
            КонецЕсли;
        КонецЦикла;

        Если НайденнаяСтрока <> Неопределено Тогда
            НайденнаяСтрока.КоличествоСобрано = НайденнаяСтрока.КоличествоСобрано + 1;
            // Пересчет поля "Осталось"
            НайденнаяСтрока.ОсталосьСобрать = НайденнаяСтрока.Количество - НайденнаяСтрока.КоличествоСобрано;
        Иначе
            // Добавляем новую строку, если товар еще не был в списке для сборки
            НоваяСтрока = Объект.ТоварыДляСборки.Добавить();
            НоваяСтрока.Номенклатура = Выборка.Номенклатура;
            // Другие поля...
            НоваяСтрока.КоличествоСобрано = 1;
            НоваяСтрока.Количество = 1; // Предположим, что надо собрать 1, если ШК сканируется впервые
            НоваяСтрока.ОсталосьСобрать = 0;
        КонецЕсли;

        // Оповестить пользователя об успешном сканировании
        Сообщить("Штрихкод " + Штрихкод + " обработан. Товар: " + Выборка.Номенклатура);
    Иначе
        Сообщить("Штрихкод " + Штрихкод + " не найден.", СтатусСообщения.Важное);
    КонецЕсли;
КонецПроцедуры

Для мобильной платформы 1С механизм работы со сканером еще более интегрирован:


// Пример обработчика для мобильной платформы 1С
&НаКлиенте
Процедура ОтсканироватьШтрихкод(Команда)
    // Создаем объект для работы со сканером
    Сканер = Новый МобильноеУстройство.СканерШтрихкода();
    
    // Настраиваем параметры сканирования (опционально)
    // Сканер.РежимРаботы = РежимРаботыСканераШтрихкода.ПостоянноеСканирование;
    
    // Вызываем сканирование
    РезультатСканирования = Сканер.НачатьСканирование();

    Если РезультатСканирования <> Неопределено Тогда
        // Получаем отсканированный штрихкод
        Штрихкод = РезультатСканирования.Значение;
        // Здесь вызываем серверную процедуру для обработки ШК
        ОбработатьШтрихкодНаСервере(Штрихкод);
    Иначе
        ПоказатьОповещениеПользователя("Сканирование отменено или произошла ошибка.");
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОбработатьШтрихкодНаСервере(Штрихкод)
    // Аналогичная логика обработки, как в примере выше,
    // но вызывается из мобильного клиента.
    //... (логика поиска и обновления данных)
    // Не забудьте обновить данные на клиенте после обработки на сервере
    ОповеститьКлиента("ОбновитьДанныеФормы");
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ОбновитьДанныеФормы" Тогда
        // Обновляем элементы формы на клиенте
        ОбновитьОтображениеДанных();
    КонецЕсли;
КонецПроцедуры

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

Внимательно проанализируйте ваши потребности и ресурсы, чтобы выбрать наиболее подходящий вариант. Мы всегда готовы помочь вам в этом процессе!

← На главную