Как правильно передать коды систем налогообложения и признаки расчета в ККМ Атол из 1С 7.7

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

При доработке типовых конфигураций на платформе 1С 7.7 для работы с современными онлайн-кассами (ККТ) программисты часто сталкиваются с необходимостью корректной передачи атрибутов фискальных документов. Одним из наиболее важных аспектов является правильное указание Системы Налогообложения (СНО) и Признака способа расчета. В этой статье мы подробно разберем, какие коды использовать для драйверов Атол, как передавать теги согласно форматам фискальных данных (ФФД) и какие нюансы следует учитывать при написании кода в 7.7.

Настройка кодов систем налогообложения (Тег 1055)

Система налогообложения в чеке передается через атрибут с номером 1055. Важно понимать, что в драйверах ККТ Атол эти значения часто передаются в виде битовой маски. Рассмотрим актуальные коды, которые необходимо использовать при разработке. Проанализируем список:

Важное замечание: Код 8, который ранее соответствовал ЕНВД, более не актуален, так как данная система налогообложения была отменена в РФ с 1 января 2021 года. Использование этого кода в современных реалиях может привести к ошибке регистрации чека.

Посмотрим на пример кода для передачи СНО через драйвер Атол в 1С 7.7:


// Пример установки ОСН (код 1)
Драйвер.AttrNumber = 1055;
Драйвер.AttrValue = 1; // Код системы налогообложения
Драйвер.WriteAttribute();

Признак способа расчета (Тег 1214)

Признак способа расчета характеризует, каким образом производится оплата: является ли она авансом, предоплатой или полным расчетом в момент передачи товара. Разберем основные значения тега 1214, которые определены в ФФД:

  1. ПРЕДОПЛАТА 100% (код 1) — полная предварительная оплата до момента передачи предмета расчета.
  2. ПРЕДОПЛАТА (код 2) — частичная предварительная оплата.
  3. АВАНС (код 3) — передача денежных средств, когда конкретный перечень товаров или услуг еще не определен.
  4. ПОЛНЫЙ РАСЧЕТ (код 4) — полная оплата в момент передачи товара (включая зачет аванса).
  5. ЧАСТИЧНЫЙ РАСЧЕТ И КРЕДИТ (код 5) — частичная оплата в момент передачи с последующей оплатой в рассрочку.
  6. ПЕРЕДАЧА В КРЕДИТ (код 7) — передача товара без оплаты в данный момент.
  7. ОПЛАТА КРЕДИТА (код 9) — погашение задолженности за ранее переданный товар.

Выясним важную техническую деталь: Тег 1214 является реквизитом предмета расчета. Это означает, что он должен передаваться отдельно для каждой товарной позиции внутри чека, а не один раз для всего документа. Если вы видите, что в печатной форме чека надпись «ПОЛНЫЙ РАСЧЕТ» дублируется под каждым товаром — это признак корректной работы кассы.

Реализация передачи признака способа расчета в коде

Рассмотрим, как правильно организовать цикл по товарам в 1С 7.7 для передачи этого признака. Выясним, что использование прямого обращения к AttrNumber эффективно в рамках старых версий драйверов (например, Атол 8 или 9), но логика остается схожей и для современных решений.


// В цикле перебора строк документа
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
    // Регистрация позиции товара
    Драйвер.Name = СокрЛП(Товар.Наименование);
    Драйвер.Price = Цена;
    Драйвер.Quantity = Количество;
    Драйвер.Department = 1; // Секция
    Драйвер.TaxType = 3; // Код НДС (например, 20%)
    
    // Передаем признак способа расчета (Тег 1214) для каждой строки
    Драйвер.AttrNumber = 1214;
    Драйвер.AttrValue = 4; // Полный расчет
    Драйвер.WriteAttribute();
    
    // Передаем признак предмета расчета (Тег 1212) - Обязательно!
    Драйвер.AttrNumber = 1212;
    Драйвер.AttrValue = 1; // Товар
    Драйвер.WriteAttribute();

    Драйвер.Registration();
КонецЦикла;

Признак предмета расчета (Тег 1212): что важно знать

Проанализируем ситуацию: многие разработчики забывают о теге 1212, однако он является обязательным. Он определяет тип позиции в чеке. Основные коды для этого тега:

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

Различия между Признаком расчета и Признаком способа расчета

Часто возникает путаница между двумя похожими терминами. Давайте разберем их различия раз и навсегда:

Признак расчета (Тег 1054) — определяет само направление движения денег по кассе. Он передается при открытии чека и может принимать значения:

Признак способа расчета (Тег 1214) — это то, о чем мы говорили выше (Предоплата, Аванс, Полный расчет). Он уточняет структуру оплаты внутри конкретного чека.

Особенности работы с драйвером Атол 10-й версии

Если в вашей конфигурации 7.7 используется современный драйвер Атол 10 (через COM-объект AddIn.AtolDevice10), методы работы с атрибутами изменились. Теперь вместо WriteAttribute рекомендуется использовать связку методов setParam и registration. Рассмотрим пример:


// Пример для Атол 10 в стиле 1С 7.7
Драйвер.setParam(1212, 1); // Признак предмета расчета: Товар
Драйвер.setParam(1214, 4); // Признак способа расчета: Полный расчет
Драйвер.setParam(1055, 2); // СНО: УСН доход
Драйвер.registration();

Проблема расхождения сумм в 1С 7.7

Выясним причину одной из самых частых ошибок — "Ошибка программирования чека" или "Сумма всех типов оплаты меньше суммы чека". В 1С 7.7 точность вычислений иногда приводит к тому, что при расчете скидок возникают лишние знаки после запятой. ККТ Атол крайне чувствителен к итоговой сумме.

Рекомендация: Всегда самостоятельно вычисляйте итоговую сумму строки (Цена * Количество - Скидка) и передавайте её в драйвер в явном виде, чтобы ККТ не пересчитывала её и не возникло расхождения в 1 копейку.

Проанализировав все вышеперечисленное, мы видим, что успешная интеграция 1С 7.7 с ККТ требует строгого соблюдения актуальных требований ФФД. Передача правильных кодов СНО (тег 1055), признаков способа расчета (тег 1214) и типа предмета (тег 1212) гарантирует отсутствие штрафов и корректную работу кассового узла.

← На главную