Почему ККТ АТОЛ печатает неверный номер секции из 1С и как это исправить?

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

При интеграции онлайн-касс АТОЛ с конфигурациями 1С разработчики нередко сталкиваются с ситуацией: в XML-пакете фискализации чека явно передается нужный номер отдела (секции), однако на печатной ленте ККТ упорно выводится значение по умолчанию — СЕКЦИЯ 01. Разберем причины такого поведения кассового оборудования и рассмотрим способы корректной настройки и печати чеков с разделением по отделам.

Посмотрим на типовой вызов формирования чека через интеграционную компоненту:


Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыПодключения.ИДУстройства, Кассир, Электронно, ДанныеЧека, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки);

При этом в структуре входного XML-пакета ДанныеЧека для каждой товарной позиции указывается атрибут Department:


<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
    <Parameters PaymentType="1" TaxVariant="2" SenderEmail="" CustomerEmail="" CustomerPhone=""/>
    <Positions>
        <FiscalString Name="Шкаф шт" Quantity="1" Price="6670" Amount="6670" Department="2" Tax="18"/>
    </Positions>
    <Payments Cash="6670" CashLessType1="0" CashLessType2="0" CashLessType3="0"/>
</CheckPackage>

Несмотря на переданное значение Department="2", кассовый аппарат печатает на чеке первую секцию. Выясним причину этой проблемы.

Причины некорректной печати секций

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

  1. Ограничения интеграционной компоненты 1С: При переходе на работу по требованиям 54-ФЗ в компонентах (например, AddIn.ИнтеграционнаяКомпонента.ATOL_KKM_1C82_54FZ и ранних версиях ДТО 8/9) внутренний парсер XML игнорировал атрибут Department в теге FiscalString, передавая в низкоуровневую команду регистрации позиции значение по умолчанию (отдел 1).
  2. Особенности форматов фискальных данных (ФФД): Согласно спецификациям ФФД (1.05, 1.1, 1.2), номер отдела/секции не является обязательным фискальным реквизитом чека и не передается оператору фискальных данных (ОФД). В связи с этим функционал секций в типовых библиотеках интеграции долгое время не поддерживался.

Способ 1. Прямая работа через низкоуровневый объект драйвера

Если в конфигурации используется драйвер ДТО 8.х и требуется обязательное физическое разделение по отделам на чековой ленте, реализуем прямую печать чека через низкоуровневый объект AddIn.FPrnM8 в обход метода СформироватьЧек.

Рассмотрим пример кода регистрации позиции с явным указанием секции:


Драйвер = Новый COMОбъект("AddIn.FPrnM8");
Драйвер.DeviceEnabled = Истина;

// Открываем чек (1 - продажа)
Драйвер.CheckType = 1;
Драйвер.OpenCheck();

// Задаем параметры регистрируемой позиции
Драйвер.Name = "Шкаф шт";
Драйвер.Price = 6670;
Драйвер.Quantity = 1;
Драйвер.Department = 2; // Явно указываем номер нужного отдела
Драйвер.TaxNumber = 1;

// Регистрируем позицию
Драйвер.Registration();

// Закрываем чек с указанием суммы наличных
Драйвер.Summ = 6670;
Драйвер.TypeClose = 0; // 0 - наличные
Драйвер.Delivery();
Драйвер.CloseCheck();

Драйвер.DeviceEnabled = Ложь;

Способ 2. Переход на современный драйвер АТОЛ 10.х (ДТО 10)

В актуальных версиях драйвера «АТОЛ: ККТ с передачей данных в ОФД (54-ФЗ) 10.Х» разработчики восстановили корректный парсинг атрибута Department в интеграционном механизме 1С. Разберем необходимые действия:

  1. Обновим драйвер торгового оборудования до линейки 10.х на рабочем месте кассира.
  2. Обновим обработку обслуживания или модуль БПО (Библиотеки подключаемого оборудования) в конфигурации 1С.
  3. Убедимся, что прошивка фискального регистратора поддерживает печать секций в шаблоне чека.

Способ 3. Отключение отображения секций в шаблоне ККТ

Если номер отдела кассирам на бумажном чеке не требуется, а вывод постоянной надписи «СЕКЦИЯ 01» только сбивает с толку, отключим данную строку в настройках самого аппарата:

  1. Запустим утилиту Тест драйвера ККТ и установим связь с кассой.
  2. Перейдем в раздел Параметры ККТ — Настройки шаблона чека (или Печать в зависимости от версии прошивки).
  3. Найдем параметр вывода секции/отдела и отключим его отображение на чековой ленте.
  4. Сохраним параметры в память ККТ.

Способ 4. Перенос аналитики в отчеты 1С

Исторически разделение по отделам применялось для сверки итогов по Z-отчетам в конце смены (например, для разделения наличных и эквайринга, опта и розницы, систем налогообложения). В современных реалиях онлайн-касс Z-отчет формируется фискальным накопителем без разреза по секциям.

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

← На главную