Как подключить онлайн-кассу АТОЛ 11Ф к 1С 7.7 Торговля и Склад по 54-ФЗ?

Программист 1С v7.7 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

1. Выбор драйвера и регистрация COM-компоненты

Одной из главных проблем при внедрении онлайн-касс в 1С 7.7 является несовместимость типовых библиотек 1С, поставлявшихся со старыми релизами. Стандартные внешние компоненты из типовой поставки ТиС зачастую не поддерживают новые фискальные теги и вызывают сбои при печати. Оптимальным решением является использование официального драйвера торгового оборудования от производителя — АТОЛ ДТО 10 (или ДТО 8/9 в зависимости от используемой прошивки кассы).

Обратим внимание на разрядность библиотек. Платформа 1С 7.7 является строго 32-разрядным приложением (x86). Даже если операционная система 64-битная, в системе обязательно должна быть зарегистрирована 32-битная библиотека драйвера:

  1. Устанавливаем дистрибутив «АТОЛ: Драйвер ККТ 10.х».
  2. Находим 32-битную библиотеку addin_fptr10_x86.dll (обычно находится в каталоге установки драйвера).
  3. Регистрируем COM-компоненту в Windows с правами администратора через командную строку: regsvr32 addin_fptr10_x86.dll.

В кодовой базе 1С 7.7 инициализация объекта драйвера выполняется следующим образом:


Попытка
    ДрайверККТ = СоздатьОбъект("AddIn.Fptr10");
Исключение
    Сообщить("Не удалось инициализировать драйвер АТОЛ ДТО 10!", "!");
    Возврат;
КонецПопытки;

2. Подводные камни: распределение скидок и округление

В старых версиях фискализаторов скидка могла передаваться итоговой суммой на весь чек. В рамках формата фискальных данных (ФФД) по 54-ФЗ действует жесткое правило форматно-логического контроля: Количество × Цена − Скидка = Сумма позиции. Сумма всех позиций должна с точностью до копейки совпадать с итоговой суммой документа.

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

  1. Отключить передачу общей скидки на весь чек (закомментировать вызовы методов скидки на чек в обработке обслуживания).
  2. Пересчитывать скидки и конечную стоимость для каждой строки индивидуально перед вызовом команды регистрации позиции.
  3. Корректировать погрешность округления (копейку) на последней строке чека, проверяя равенство итоговой суммы табличной части и суммы документа.

Посмотрим на пример правильного формирования строки позиции с учетом скидки:


// Передача позиции с расчетом конечной цены
ДрайверККТ.setParam(1030, СокрЛП(ТоварНаименование)); // Наименование
ДрайверККТ.setParam(1079, ЦенаСоСкидкой);              // Цена за единицу
ДрайверККТ.setParam(1023, Количество);                 // Количество
ДрайверККТ.setParam(1043, СуммаПозиции);               // Итоговая сумма по строке
ДрайверККТ.setParam(1212, 1);                          // Признак предмета расчета (Товар)
ДрайверККТ.setParam(1214, 4);                          // Признак способа расчета (Полный расчет)
ДрайверККТ.registration();

3. Настройка каналов связи и служб передачи данных в ОФД

Касса АТОЛ 11Ф при подключении через интерфейс USB эмулирует в системе два виртуальных COM-порта. Разберем назначение каждого порта:

  1. Основной порт управления: указывается в 1С для передачи команд открытия смены, печати чеков, внесения/выемки и закрытия смены.
  2. Служебный порт передачи данных (EoU / EoT): используется фоновой службой (Ethernet over USB / Ethernet over Transport) для отправки фискализированных чеков оператору фискальных данных (ОФД).

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

4. Архитектурные варианты интеграции с 1С 7.7

В зависимости от структуры предприятия и используемой инфраструктуры (локальные ПК или терминальный сервер RDP), выделим три основных подхода к интеграции:

  1. Прямая печать через внешнюю компоненту: чек пробивается непосредственно из документа «ЧекККМ» или «РасходнаяНакладная» при нажатии кнопки. Это самый быстрый и удобный вариант для кассира.
  2. Использование Web-сервера ККТ (в составе ДТО 10): если 1С 7.7 развернута на терминальном сервере, а касса подключена к локальному клиенту, проброс COM-портов через RDP может работать нестабильно. В этом случае на локальном ПК запускается служба Web-сервера ККТ, а 1С отправляет JSON-пакет на печать по протоколу HTTP с помощью объекта WinHttp.WinHttpRequest.5.1.
  3. Файловый обмен через кассовое ПО (например, Frontol): 1С формирует текстовый файл или выгрузку в каталог обмена, а кассовая программа считывает его и фискализирует чек. Схема оправдана при наличии нескольких рабочих мест и одной общей кассы, либо при необходимости работы кассы в полностью автономном режиме.

5. Обязательные фискальные реквизиты

При адаптации обработки обслуживания ТиС 7.7 убедимся, что в драйвер передаются обязательные теги по 54-ФЗ:

  1. Кассир (тег 1021) и ИНН кассира (тег 1203): передаются перед открытием чека на основании реквизитов текущего пользователя 1С.
  2. Система налогообложения (тег 1055): передается код СНО, настроенный для текущей организации или торговой точки.
  3. Адрес электронной почты или телефон покупателя (тег 1008): передается в том случае, если покупатель запросил электронный чек.

Корректная доработка алгоритма распределения скидок и использование актуального драйвера АТОЛ обеспечивают стабильную и бесперебойную печать чеков из 1С 7.7 без сбоев и расхождений с ОФД.

← На главную