Как организовать мобильное рабочее место продавца в торговом зале с интеграцией с 1С?

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

В современной розничной торговле критически важно сокращать очереди и повышать мобильность персонала. Организация мобильного рабочего места продавца-консультанта позволяет оформлять продажи и принимать оплату непосредственно в торговом зале («у полки»). Однако при реализации такой схемы ИТ-специалисты сталкиваются со сложной дилеммой: как совместить мобильность, прием безналичных платежей, требования 54-ФЗ и расчет сложных скидок из центральной базы 1С без классического оффлайн-обмена.

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

В чем сложность классического подхода?

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

Попытки решить задачу «в лоб» — например, через терминальный доступ (RDP) с планшета к стационарному компьютеру — часто натыкаются на технические ограничения: неудобство интерфейса 1С на маленьком экране, нестабильность Wi-Fi сессий и необходимость носить с собой сразу три устройства (планшет для RDP, мобильный фискальный регистратор и банковский терминал).

Рассмотрим рабочие архитектурные сценарии, которые позволяют элегантно решить эту задачу.

---

Сценарий 1. Смарт-терминалы «Все в одном» с тонким клиентом или специализированным ПО

Оптимальным аппаратным решением является использование специализированных Smart POS-терминалов класса «три в одном» (например, линейка MSPOS-SE-F, MSPOS-F20-Ф или АТОЛ СТБ 6). Эти устройства объединяют в одном компактном корпусе:

Для программной интеграции такого устройства с центральной 1С без использования оффлайн-обменов применяются два подхода:

А. Использование «1С:Мобильная касса» и онлайн-синхронизации

На смарт-терминал устанавливается приложение 1С:Мобильная касса. Оно интегрируется с центральной базой (например, 1С:Розница или 1С:УНФ) по протоколу веб-сервисов. Синхронизация данных может происходить в режиме реального времени при наличии Wi-Fi связи. При этом для расчета сложных скидок используется встроенный механизм Сервера лояльности 1С.

Б. Мобильный клиент 1С на управляемых формах

Если конфигурация вашей центральной базы значительно доработана, на смарт-терминал устанавливается стандартный Мобильный клиент 1С. Он напрямую подключается к опубликованной на веб-сервере базе данных. Продавец работает непосредственно в интерфейсе 1С, а драйверы ККТ и эквайринга, установленные внутри мобильного Android-приложения 1С, обеспечивают печать чеков и отправку команд на банковский модуль терминала.

---

Сценарий 2. Удаленная фискализация (облачная или центральная касса)

Согласно поправкам к закону 54-ФЗ, в некоторых сценариях торговли внутри одного помещения (в режиме консультант-продавец) разрешено осуществлять фискализацию чеков на удаленной кассе. Это позволяет существенно сэкономить на оборудовании.

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

  1. Продавец подбирает товары в мобильном приложении (например, 1С:РМК на смартфоне), подключенном к центральной базе по Wi-Fi.
  2. Скидки рассчитываются в режиме реального времени на стороне центральной 1С через HTTP-запросы.
  3. Оплата принимается безналичным способом с использованием технологии SoftPOS (Tap on Phone), когда клиент прикладывает карту непосредственно к NFC-чипу смартфона продавца, либо по СБП (Системе быстрых платежей) через генерацию динамического QR-кода на экране.
  4. После успешной оплаты документ отправляется на центральный сервер 1С, который дает команду стационарному фискальному регистратору (например, АТОЛ или Штрих-М), установленному на кассовой зоне, пробить чек. Покупателю чек отправляется в электронном виде (SMS или Email).

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


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

---

Сценарий 3. Работа через Сервер лояльности 1С (Решение проблемы сложных скидок)

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

Рассмотрим пошагово, как работает этот механизм:

  1. Продавец на смарт-терминале сканирует штрихкоды товаров.
  2. Продавец считывает дисконтную карту покупателя (или находит ее по номеру телефона).
  3. Мобильное приложение формирует JSON-запрос и отправляет его на опубликованный веб-сервис вашей центральной 1С.
  4. На стороне центральной 1С (например, 1С:Управление торговлей или 1С:Розница) отрабатывают все настроенные автоматические скидки, проверяется баланс бонусных баллов и рассчитывается итоговая сумма к оплате.
  5. Центральная 1С возвращает ответ в формате JSON, и мобильное приложение мгновенно пересчитывает чек на экране продавца.

Ниже приведен пример реализации обработки HTTP-запроса сервером лояльности 1С для расчета скидки мобильному клиенту.


// Обработчик HTTP-сервиса лояльности на стороне центральной 1С
Функция РассчитатьСкидкиДляМобильногоКлиента(Запрос) Экспорт
    
    СтрокаЗапроса = Запрос.ПолучитьТелоКакСтроку();
    ДанныеЧека = СервисМультиплатформенногоОбмена.ДесериализоватьJSON(СтрокаЗапроса);
    
    // Создаем временную структуру чека для расчета скидок
    ДокументРасчета = Документы.ЧекККМ.СоздатьДокумент();
    ДокументРасчета.Дата = ТекущаяДатаСеанса();
    
    Для Каждого СтрокаТовара Из ДанныеЧека.Товары Цикл
        НоваяСтрока = ДокументРасчета.Товары.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТовара);
    КонецЦикла;
    
    ДокументРасчета.ДисконтнаяКарта = Справочники.ИнформационныеКарты.НайтиПоКоду(ДанныеЧека.КодКарты);
    
    // Вызываем стандартный расчет скидок конфигурации
    ОбработкаТабличнойЧастиТоварыКлиентСервер.РассчитатьСкидки(ДокументРасчета);
    
    // Формируем структуру ответа для мобильной кассы
    Результат = Новый Структура;
    Результат.Вставить("СуммаДоСкидки", ДокументРасчета.Товары.Итог("Сумма"));
    Результат.Вставить("СуммаСкидки", ДокументРасчета.Товары.Итог("СуммаАвтоматическойСкидки"));
    Результат.Вставить("ИтогоК Оплате", ДокументРасчета.Товары.Итог("Всего"));
    
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки(СервисМультиплатформенногоОбмена.СериализоватьJSON(Результат));
    Возврат Ответ;
    
КонецФункции

---

Как минимизировать риски при внедрении?

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

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

← На главную