Как в драйвере АТОЛ 8.х настроить печать Без НДС и передать данные кассира из 1С 7.7

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

При работе с торговым оборудованием в среде 1С 7.7 часто используется стандартная обработка fr_comm.ert. Одной из распространенных задач является корректная передача ставок НДС в фискальный регистратор, особенно когда требуется разделить товары по секциям или напечатать чек с признаком «Без НДС». В этой статье мы разберем, как программно управлять секциями и налогами, а также как правильно передавать данные кассира в соответствии с требованиями ФФД 1.05.

Управление НДС через секции и программную установку

В фискальных регистраторах АТОЛ существует два основных подхода к определению ставки НДС в чеке. Рассмотрим их подробнее, чтобы понять, какой метод лучше использовать в вашем случае.

Способ 1: Настройка в таблицах ККТ (через секции)

В памяти кассового аппарата существует таблица «Секции» (или «Отделы»). Каждой секции можно заранее сопоставить определенную ставку налога. Например:

В коде 1С это выглядит как простая передача номера отдела через свойство Department:


Если СписокТоваров.НДС = 20 Тогда
    Объект.Department = 1;
ИначеЕсли СписокТоваров.НДС = 0 Тогда
    Объект.Department = 4; // Где 4-я секция в ККТ настроена как "Без НДС"
КонецЕсли;

Способ 2: Явное указание налога в драйвере

Если вы хотите, чтобы программа 1С сама определяла налог, независимо от настроек таблиц в кассе, необходимо использовать свойство TaxTypeNumber. Этот способ более гибкий и надежный. Проанализируем значения, которые может принимать этот параметр в драйвере АТОЛ 8.х:

  1. 0 — Налог берется из настроек секции в ККТ;
  2. 1 — НДС 0%;
  3. 2 — НДС 10%;
  4. 3 — НДС 18% (в новых прошивках и версиях драйвера — 20%);
  5. 4 — НДС не облагается (Без НДС);
  6. 5 — НДС с расчётной ставкой 10%;
  7. 6 — НДС с расчётной ставкой 18% (в новых прошивках — 20%).

Решение задачи: Без НДС при работе с первой секцией

Если перед нами стоит задача оставить товар в первой секции (Department = 1), но при этом принудительно напечатать «Без НДС», нам необходимо совместить установку секции и типа налога. Разберем программный код для реализации этой логики:


// Устанавливаем количество товара
Объект.Quantity = СписокТоваров.Количество;
// Указываем цену
Объект.Price = СписокТоваров.Цена;
// Привязываем к первой секции
Объект.Department = 1; 
// Принудительно устанавливаем тип налога "Без НДС"
Объект.TaxTypeNumber = 4; 
// Регистрируем позицию
Объект.Registration();

Таким образом, драйвер проигнорирует настройки налога для секции 1, хранящиеся в памяти ККТ, и применит значение 4, переданное из 1С.

Передача данных кассира и ИНН по ФФД 1.05

С введением формата фискальных данных 1.05 стало обязательным (или крайне рекомендуемым) передавать не только фамилию кассира, но и его ИНН. В драйвере АТОЛ 8-й версии это реализуется через работу с атрибутами (тегами).

Рассмотрим, как передать эти данные перед открытием чека. Выясним, какие теги нам понадобятся:

Пример кода для 1С 7.7:


// Передаем ФИО кассира
Объект.AttrNumber = 1021;
Объект.AttrValue = "Иванов И.И.";
Объект.WriteAttribute();

// Передаем ИНН кассира
Объект.AttrNumber = 1203;
Объект.AttrValue = "623450001223"; // ИНН должен быть строкой
Объект.WriteAttribute();

// Только после записи атрибутов открываем чек
Объект.OpenCheck();

Важное замечание по ИНН: Если ИНН кассира указан неверно (например, не хватает цифр или передана пустая строка), касса может выдать ошибку «Неверный формат реквизита» и чек не будет открыт. Проанализируем заполнение данных в справочнике «Сотрудники», прежде чем передавать их в драйвер.

Нюансы перехода со ставки 18% на 20%

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

Если СписокТоваров.НДС = 18 Тогда ...

Если в вашей базе 1С ставка налога была переименована в «20%», это условие перестанет работать. Рекомендуется проверять ставку либо по числовому значению, либо через обращение к идентификатору перечисления. Кроме того, помните, что в драйвере АТОЛ индекс TaxTypeNumber = 3 универсален: для старых касс это будет 18%, для обновленных под текущее законодательство — 20%.

Итоги

Для корректной работы с налогами в 1С 7.7 через АТОЛ 8.х мы рекомендуем:

  1. Всегда явно указывать TaxTypeNumber для каждой позиции чека, чтобы не зависеть от внутренних таблиц кассы.
  2. Использовать значение 4 для товаров и услуг без НДС.
  3. Передавать данные кассира (теги 1021 и 1203) до метода OpenCheck.
  4. Следить за актуальностью прошивки ККТ, так как именно она определяет, какая строка (18% или 20%) будет напечатана при получении индекса налога 3.

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

← На главную