Почему в чеке ККТ Атол 11Ф из 1С 7.7 печатается только общая сумма без списка товаров?

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

Переход на требования 54-ФЗ для многих владельцев старых версий 1С стал серьезным испытанием. Часто при попытке пробить чек через кассу Атол из 1С 7.7 «ТиС» мы сталкиваемся с тем, что вместо детального перечня позиций касса печатает только одну строку с итоговой суммой. Рассмотрим по шагам, как выявить причину и исправить настройки обработки обслуживания.

Анализ кода формирования чека в 1С 7.7

Первым делом проанализируем цикл, в котором происходит регистрация товаров. В старых обработках, таких как fr_comm.ert, часто встречаются ошибки при передаче строковых параметров в объект компоненты. Разберем типичный участок кода и исправим его.

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


// Регистрация товаров
СписокТоваров.ВыбратьСтроки();
Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
    // Проверка наличия колонки НДС
    Если НДСесть = 1 Тогда
        Объект.Name = ""; // ОШИБКА: Наименование товара не передается в ФР
    Иначе
        Объект.Name = Eaa(СписокТоваров.ТовНаим, ДлинаНаименования);
    КонецЕсли;

    Объект.Price = Окр(СписокТоваров.Цена, 2, 1);
    Объект.Quantity = СписокТоваров.Количество;
КонецЦикла;

В приведенном коде, если условие НДСесть = 1 истинно, свойство Объект.Name остается пустым. Фискальный регистратор, не получая наименования, может принудительно «схлопывать» чек в одну суммовую позицию. Рекомендуем заменить этот блок на прямое присвоение, чтобы убедиться, что название товара доходит до драйвера:


// Исправленный вариант присвоения наименования
Объект.Name = СокрЛП(СписокТоваров.ТовНаим);

Проверка параметров НДС и типов оплаты

Даже если наименование передается, чек может печататься некорректно из-за неправильно заданных налоговых ставок или признаков предмета расчета. Проанализируем важные аспекты:

  1. Ставки НДС (TaxTypeNumber): Недостаточно просто назначить «6» (Без НДС). Необходимо убедиться, что значение TaxTypeNumber соответствует таблице ставок, поддерживаемой вашей версией ФФД (1.05 или 1.2).
  2. Тип оплаты «Аванс»: Если в вашей конфигурации 1С 7.7 настроена передача типа оплаты как «Аванс», многие кассы Атол блокируют печать номенклатуры внутри чека, так как для авансовых платежей правила формирования данных в ФФД иные.
  3. Признаки предмета расчета: Современные требования ФФД требуют указывать, чем является позиция — «Товар», «Услуга» или «Платеж». Если внешняя компонента FprnM1C.dll слишком стара, она может просто не иметь свойств для передачи этих данных.

Диагностика с помощью «Теста драйвера»

Чтобы понять, виновата ли 1С или сама касса, выполним следующие действия:

  1. Запустите утилиту «Тест драйвера ККТ» (входит в состав DTO).
  2. Попробуйте сформировать чек вручную, добавляя позиции через методы регистрации (обычно это Registration или PrintItem).
  3. Если в тесте драйвера чек печатается с детализацией, значит, проблема в алгоритме обработки 1С. Если же и там печатается общая сумма — проблема в настройках самой кассы или в выбранном типе операции.

Рекомендации по обновлению

Мы настоятельно советуем проанализировать следующие шаги для приведения системы в соответствие с 54-ФЗ:

Работа с 1С 7.7 в связке с современным оборудованием требует пристального внимания к деталям кода. Начните с очистки логики присвоения Объект.Name, исключите принудительное назначение налогов «заглушками» и, если проблема сохранится, рассмотрите возможность обновления внешней компоненты до версии, поддерживающей современные форматы ФФД.

← На главную