Как подключить онлайн-кассу по 54-ФЗ к нетиповой конфигурации «1С:Управление торговлей 10.3»?

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

Перевод старых нетиповых конфигураций на работу с современными контрольно-кассовыми аппаратами по требованиям 54-ФЗ — классическая задача, с которой сталкиваются разработчики при поддержке исторических систем. Ситуация часто осложняется тем, что база 1С:Управление торговлей 10.3 переписана настолько сильно, что стандартное обновление до актуальных релизов становится экономически нецелесообразным или требует сотен часов ручного объединения кода.

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

Вариант 1. Автономные внешние обработки торгового оборудования

Самый быстрый и наименее инвазивный путь — использование специализированных внешних обработок обслуживания (ТО), созданных независимыми разработчиками для интеграции с популярными драйверами (в частности, АТОЛ и ШТРИХ-М).

Разберем особенности этого подхода:

  1. Независимость от типовой БПО: Старые релизы УТ 10.3 содержали архаичный механизм торгового оборудования, где тип устройства жестко определялся как «Фискальный регистратор», а не «ККТ с передачей данных». Специализированные обработки обходят это ограничение: они регистрируются в системе как обычный фискальный регистратор, но внутри взаимодействуют с современными драйверами ККТ.
  2. Отсутствие требований к БСП: Обработка содержит в себе всю необходимую логику инициализации COM-объекта драйвера, передачи команд открытия/закрытия чека и закрытия смены, не требуя внедрения Библиотеки стандартных подсистем.
  3. Минимальное вмешательство: Конфигурация остается без изменений либо изменения сводятся к паре строк кода в процедуре печати чека из документов ЧекККМ, ПриходныйКассовыйОрдер или ОплатаОтПокупателяПлатежнойКартой.

Вариант 2. Прямое обращение к драйверу ККТ через COM-объект или JSON

Если готовые внешние обработки не подходят под архитектуру ваших доработок, реализуем прямое управление кассой из модуля документа или специального общего модуля. Современные драйверы производителей кассовой техники (например, драйвер АТОЛ версии 10) позволяют фискализировать чек целиком через передачу одной структуры в формате JSON.

Посмотрим на пример формирования и отправки чека через драйвер ККТ по COM-модели:


// Создаем экземпляр драйвера ККТ
ДрайверККТ = Новый COMОбъект("AddIn.Fptr10");

// Устанавливаем параметры соединения (канал, порт, скорость)
ДрайверККТ.setSingleSetting(ДрайверККТ.LIBFPTR_SETTING_MODEL, Строка(ДрайверККТ.LIBFPTR_MODEL_ATOL_AUTO));
ДрайверККТ.setSingleSetting(ДрайверККТ.LIBFPTR_SETTING_PORT, Строка(ДрайверККТ.LIBFPTR_PORT_COM));
ДрайверККТ.setSingleSetting(ДрайверККТ.LIBFPTR_SETTING_COM_FILE, "COM3");
ДрайверККТ.applySingleSettings();

Если ДрайверККТ.open() <> 0 Тогда
    ВызватьИсключение "Ошибка подключения к ККТ: " + ДрайверККТ.errorDescription();
КонецЕсли;

// Отправляем задание на печать через JSON-структуру
СтрокаЗаданияJSON = СформироватьJSONЧека(СсылкаНаДокумент);
ДрайверККТ.setParam(ДрайверККТ.LIBFPTR_PARAM_JSON_DATA, СтрокаЗаданияJSON);

Если ДрайверККТ.processJson() <> 0 Тогда
    ОшибкаОписания = ДрайверККТ.errorDescription();
    ДрайверККТ.close();
    ВызватьИсключение "Ошибка фискализации чека: " + ОшибкаОписания;
КонецЕсли;

ДрайверККТ.close();

Рассмотрим преимущества прямого вызова:

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

Вариант 3. Использование локального или сетевого принт-сервера (HTTP API)

В терминальных средах (RDP) или при распределенной работе проброс COM-портов часто приводит к зависаниям драйверов. В таких случаях эффективным решением становится использование автономного сервиса печати чеков (локального веб-сервера на базе драйвера ККТ).

Разберем по шагам, как работает данная схема:

  1. На компьютере, к которому физически подключен кассовый аппарат, запускается служба кассового сервера (например, локальный веб-сервер драйвера ККТ).
  2. Служба принимает HTTP-запросы методом POST с телом документа в формате JSON.
  3. В 1С:Управление торговлей 10.3 модуль печати формирует стандартный объект HTTPЗапрос и отправляет его объектом HTTPСоединение на адрес кассового сервера.
  4. Решение полностью устраняет конфликты разрядности клиента 1С (x32/x64) и обеспечивает возможность печати на один кассовый аппарат с нескольких рабочих мест по локальной сети.

Вариант 4. Обновление до релиза с поддержкой 54-ФЗ

Компания 1С выпустила штатную поддержку требований 54-ФЗ для платформы обычных форм начиная с релиза УТ 10.3.40.1. В этот релиз и последующие версии были включены обновленные подсистемы торгового оборудования, механизмы работы с ККТ с передачей данных и новые форматы фискальных документов.

Проанализируем шаги обновления нетиповой конфигурации:

  1. Аудит доработок: Выполняем сравнение/объединение конфигурации с типовым релизом поставщика аналогичной текущей версии базы, чтобы выделить все измененные объекты.
  2. Очистка от мертвого кода: Удаляем устаревшие доработки, которые дублируют функционал или более не используются в текущих бизнес-процессах компании.
  3. Перенос логики: Накатываем обновление 10.3.40.1 (или более свежий релиз линейки 10.3) с выбором режима объединения, сохраняя только критически важные доработки учетной политики и печатных форм.

Технические и законодательные ограничения, которые важно учесть

Какой бы путь интеграции мы ни выбрали, необходимо учитывать ряд обязательных требований:

  1. Обязательные реквизиты чека: В старых документах УТ 10.3 отсутствуют реквизиты 54-ФЗ: признак способа расчета (предоплата, аванс, полный расчет), признак предмета расчета (товар, услуга), ИНН покупателя-юрлица и контактные данные для отправки электронного чека. Их необходимо либо жестко прописать по умолчанию в алгоритме печати, либо добавить минимальные реквизиты на экранные формы документов.
  2. Ставки НДС: В старых конфигурациях отсутствуют ставки НДС 20% и 20/120. Для корректного формирования чека необходимо предусмотреть трансляцию ставок НДС из базы в теги фискального накопителя.
  3. Разрядность платформы: Старая конфигурация УТ 10.3 работает под 32-разрядным клиентом 1С. Все COM-библиотеки внешних драйверов ККТ должны быть обязательно зарегистрированы в 32-битной подсистеме Windows (папка SysWOW64).
  4. Маркировка товаров (ФФД 1.2): Если предприятие реализует маркированную продукцию, касса должна работать по формату фискальных данных ФФД 1.2 с онлайн-проверкой кодов маркировки. Реализовать сквозной контур маркировки только внешними обработками без доработки учета кодов в самой базе данных технически невозможно. В этом случае правильным шагом будет полноценное обновление базы либо вынос рабочего места кассира в отдельную современную конфигурацию (например, 1С:Розница), связанную с УТ через обмен данными.
← На главную