Как настроить печать «Без НДС» вместо «НДС 0%» на кассах Атол в 1С:Предприятие 7.7

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

При работе с торговым оборудованием в 1С:Предприятие 7.7 программисты часто сталкиваются с ситуацией, когда кассовый аппарат Атол вместо ожидаемой надписи «Без НДС» упорно печатает в чеке «НДС 0%». Это критическая ошибка для налогового учета, так как эти две ставки юридически не равнозначны. Рассмотрим подробнее, почему это происходит и как исправить ситуацию, используя современные методы интеграции.

Причина возникновения проблемы: разрыв между ПО и прошивкой

Проанализируем ситуацию: большинство старых конфигураций 1С 7.7 используют внешнюю компоненту ATOL_KKM_1C82_54FZ.dll. Эта библиотека работает через так называемую «XML-прокладку» — 1С формирует XML-файл с данными чека, передает его компоненте, а та, в свою очередь, транслирует команды драйверу ККТ. Выясним причину ошибки: в современных прошивках под ФФД 1.05 и выше нумерация налогов в таблицах кассы изменилась. Старая компонента может жестко сопоставлять строковое значение «none» или индекс «0» с налоговой ставкой №3 (которая является 0%), в то время как «Без НДС» теперь обычно находится под индексом №4 или №6.

Решение 1: Переход на актуальную обработку обслуживания

Самый простой и правильный путь — отказаться от устаревших компонент и использовать специализированную обработку, входящую в последние релизы «1С:Торговля и Склад 7.7» (начиная с релиза 997). Разберем по шагам, что нужно сделать:

  1. Найдем в каталоге вашей информационной базы или в дистрибутиве обновлений файл frATOL54_comm_105.ert.
  2. Подключим эту обработку в качестве основной для вашего фискального регистратора.
  3. Проанализируем код внутри обработки. В ней реализовано прямое взаимодействие с драйвером (DTO), что позволяет гибко управлять передачей налоговых индексов.

В этой обработке за трансляцию налогов отвечает функция, которая преобразует ставку из документа 1С в числовой код для кассы. Если даже с этой обработкой печатается «0%», мы можем легко поправить код вручную:


// Пример модификации функции в frATOL54_comm_105.ert
Если СтавкаНДС = "БезНДС" Тогда
    НомерНалога = 4; // Передаем индекс 4, который в ККТ соответствует "Без НДС"
ИначеЕсли СтавкаНДС = "0%" Тогда
    НомерНалога = 3;
КонецЕсли;

Решение 2: Прямая работа с объектом драйвера (AddIn.FPrnM45)

Если использование XML-компоненты ATOL_KKM_1C82_54FZ является обязательным требованием или вы не хотите менять архитектуру, рассмотрим вариант прямого обращения к драйверу Атол версии 8.х (DTO 8). Это наиболее надежный способ, так как мы минуем все посреднические слои, которые могут искажать данные.

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


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

// Установка параметров соединения и открытие чека
Драйвер.DeviceEnabled = 1;
Драйвер.Mode = 1; // Режим регистрации
Драйвер.SetMode();

// Регистрация позиции товара
Драйвер.Name = "Наименование товара";
Драйвер.Price = 100.00;
Драйвер.Quantity = 1;
// Указываем индекс налога напрямую. Обычно: 1 - 20%, 2 - 10%, 3 - 0%, 4 - Без НДС
Драйвер.TaxType = 4; 
Драйвер.Registration();

Именно использование свойства TaxType со значением 4 в большинстве случаев решает проблему отображения в чеке. Посмотрим на ситуацию глубже: если значение 4 не помогает, попробуйте индекс 6, так как в некоторых версиях драйверов Атол (особенно 10-й серии) маппинг может отличаться.

Решение 3: Проверка и настройка таблиц ККТ

Иногда программная часть настроена верно, но в самой памяти кассового аппарата (в его таблицах) сбиты наименования налоговых ставок. Проанализируем, как это проверить через «Тест драйвера ККТ»:

  1. Запустим утилиту «Тест драйвера ККТ» (версии 8 или 10).
  2. Перейдем в раздел «Настройка свойств» -> «Параметры ККТ» (или через кнопку «Таблицы» в 8-й версии).
  3. Найдем таблицу под названием «Налоги».
  4. Убедимся, что в строке №4 (или той, которую вы вызываете кодом) в поле «Наименование» прописано именно «БЕЗ НДС».
  5. Если там пусто или указано другое значение, отредактируем поле и сохраним изменения в память ККТ.

Важный момент: Если ваша касса работает по протоколу ФФД 1.05, крайне рекомендуется использовать драйвер версии не ниже 8.16.1. В более ранних версиях работа с налогами через XML-интерфейс в 1С 7.7 была крайне нестабильной.

Резюме по кодам налогов для Атол

Для корректной настройки сопоставления в коде 1С, запомним стандартную таблицу индексов:

Если вы продолжаете использовать XML-компоненту и атрибут Tax="none" или Tax="0" не дает результата, попробуйте передать числовое значение Tax="6" или Tax="4" прямо в XML-структуру. В некоторых реализациях ATOL_KKM_1C82_54FZ именно число «6» успешно конвертируется в команду драйвера для печати «Без НДС».

Рассмотрев все варианты, мы видим, что наиболее стабильным решением является переход на прямую работу с драйвером через объект AddIn.FPrnM45 или использование современной обработки frATOL54_comm_105.ert. Это позволит вам полностью контролировать процесс формирования чека и избежать ошибок в налоговой отчетности.

← На главную