Как подключить онлайн-кассу (54-ФЗ) к «1С:Розница 1.0» без перехода на новую редакцию?

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

Многие компании продолжают использовать конфигурацию «1С:Розница 1.0» из-за наличия существенных доработок, кастомизированного Рабочего места кассира (РМК) и сложно настроенных обменов данными с другими системами (например, Управление торговлей 10.3, Управление производственным предприятием 1.3 или Бухгалтерия предприятия 2.0). Переход на редакции 2.2 или 3.0 в таких условиях может потребовать полной переработки бизнес-логики и интеграционных механизмов.

Рассмотрим, с помощью каких решений и технических подходов можно подружить устаревшую конфигурацию «1С:Розница 1.0» с современными фискальными регистраторами и онлайн-кассами по правилам закона № 54-ФЗ.

Причины сложности интеграции

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

Способ 1. Встраивание библиотеки подключаемого оборудования (БПО) из «УТ 10.3»

Разберем вариант переноса подсистемы БПО из конфигурации Управление торговлей 10.3 (начиная с релиза 10.3.40 и выше), в которой фирма «1С» реализовала полноценную поддержку 54-ФЗ для обычных форм.

Проанализируем порядок действий при переносе объектов подсистемы БПО:

  1. Выгрузим и перенесем из типовой УТ 10.3 основные справочники: ТорговоеОборудование, ДрайверыОборудования и ОбработкиОбслуживанияТО.
  2. Перенесем общие модули работы с торговым оборудованием, такие как МенеджерОборудованияКлиент, МенеджерОборудованияСервер и ПодключениеТорговогоОборудованияПереопределяемый.
  3. Доработаем документы Чек ККМ и экранную форму РМК. По закону № 54-ФЗ перед пробитием чека требуется запрашивать у покупателя номер телефона или адрес электронной почты для отправки электронного чека (тег 1008).

Посмотрим на пример кода, формирующего структуру параметров фискализации для передачи в подсистему БПО:


// Формирование структуры параметров для пробития чека по 54-ФЗ
ПараметрыОперации = Новый Структура;
ПараметрыОперации.Вставить("ТипДокумента", "Продажа");
ПараметрыОперации.Вставить("ПризнакРасчета", 1); // 1 - Приход (Продажа)
ПараметрыОперации.Вставить("СуммаЧек", ДокументОбъект.СуммаДокумента);

// Передача контактных данных покупателя (Тег 1008)
Если ЗначениеЗаполнено(АдресЭлектроннойПочты) Тогда
    ПараметрыОперации.Вставить("ПокупательEmail", СокрЛП(АдресЭлектроннойПочты));
ИначеЕсли ЗначениеЗаполнено(НомерТелефона) Тогда
    ПараметрыОперации.Вставить("ПокупательНомерТелефона", СокрЛП(НомерТелефона));
КонецЕсли;

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

Для Каждого Стр Из ДокументОбъект.Товары Цикл
    НоваяСтр = ТаблицаПозиций.Добавить();
    НоваяСтр.Наименование = Стр.Номенклатура.Наименование;
    НоваяСтр.Количество = Стр.Количество;
    НоваяСтр.Цена = Стр.Цена;
    НоваяСтр.Сумма = Стр.Сумма;
    НоваяСтр.СтавкаНДС = Стр.Номенклатура.СтавкаНДС;
КонецЦикла;

ПараметрыОперации.Вставить("ПозицииЧек", ТаблицаПозиций);

Способ 2. Использование внешних обработок обслуживания и прямого COM-соединения

Если глобальное объединение конфигураций нежелательно, проанализируем второй подход: использование внешних обработок обслуживания торгового оборудования (обработки формата .epf), подключаемых к справочнику ОбработкиОбслуживанияТО.

При таком подходе обработка обращается напрямую к драйверу производителя кассового оборудования (например, драйвер ДТО 8/10 от компании АТОЛ или драйвер ФР от компании ШТРИХ-М) через COM-интерфейс.

Рассмотрим пример непосредственного вызова методов драйвера ККТ АТОЛ для отправки электронного чека и печати фискальных позиций:


// Пример взаимодействия с COM-объектом драйвера ККТ АТОЛ
Попытка
    Драйвер = Новый COMОбъект("AddIn.FPTNDrv");
    Драйвер.DeviceEnabled = Истина;
    
    // Вход в режим регистрации чеков
    Драйвер.Mode = 1;
    Драйвер.SetMode();
    
    // Открытие чека прихода (продажи)
    Драйвер.CheckType = 1;
    Драйвер.OpenCheck();
    
    // Передача контакта покупателя (Тег 1008)
    Если ЗначениеЗаполнено(КонтактПокупателя) Тогда
        Драйвер.AttrNumber = 1008;
        Драйвер.AttrValue = КонтактПокупателя;
        Драйвер.WriteAttribute();
    КонецЕсли;
    
    // Регистрация позиций в чеке
    Для Каждого Стр Из ДокументОбъект.Товары Цикл
        Драйвер.Name = Стр.Номенклатура.Наименование;
        Драйвер.Price = Стр.Цена;
        Драйвер.Quantity = Стр.Количество;
        Драйвер.Department = 1;
        Драйвер.Registration();
    КонецЦикла;
    
    // Оплата и закрытие чека
    Драйвер.Summ = ДокументОбъект.СуммаДокумента;
    Драйвер.TypeClose = 0; // Наличный расчет
    Драйвер.CloseCheck();
    
    Драйвер.DeviceEnabled = Ложь;
Исключение
    Сообщить("Ошибка печати чека на ККТ: " + ОписаниеОшибки());
КонецПопытки;

Способ 3. Подключение через сторонние кассовые сервисы (Middleware)

Еще одно решение — использование локальных промежуточных серверов фискализации (например, kkm-server). В этом случае из «1С:Розница 1.0» отправляется простой HTTP-запрос в формате JSON на локальный адрес службы (например, http://localhost:5893/Execute). Сервер фискализации самостоятельно принимает данные, связывается с драйвером ККТ любого производителя и передает чек в ОФД.

Дальнейшие законодательные риски при работе на «1С:Розница 1.0»

Выясним, с какими ограничениями столкнется компания при длительном использовании переписанной первой редакции «1С:Розница»:

Резюме: Запустить фискализацию по 54-ФЗ в «1С:Розница 1.0» вполне реально с помощью доработки БПО по методике УТ 10.3 или использования сторонних обработок обслуживания ККТ. Однако для систем с большим ассортиментом маркируемой продукции в долгосрочной перспективе рекомендуется запланировать плановый переход на современные типовые конфигурации (1С:Розница 3.0 или 1С:УНФ 3.0).

← На главную