Как настроить Атол 30Ф под ФФД 1.05 в 1С 7.7 и протестировать работу без фискализации

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

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

Возможность тестирования на нефискализированной кассе

Рассмотрим ситуацию, когда у нас есть новая касса Атол 30Ф, которую еще не зарегистрировали в ФНС (не фискализировали). Многие специалисты опасаются начинать отладку кода, боясь случайно отправить тестовые чеки в ОФД или испортить фискальный накопитель. Выясним, как обстоят дела на самом деле.

Фискальный регистратор, находящийся в состоянии «ККТ НЕ ФИСКАЛИЗИРОВАНА», позволяет выполнять практически все операции по печати чеков из 1С. Разберем основные моменты:

  1. Печать чеков: Касса будет печатать чеки, но в нижней части документа вместо фискального признака будет выводиться надпись «ЧЕК НЕ ДЕЙСТВИТЕЛЕН» или «ККТ НЕ ФИСКАЛИЗИРОВАНА».
  2. Передача данных: Поскольку регистрация в ОФД не проведена, данные никуда не уйдут. Вы можете смело пробивать чеки на любые суммы для проверки корректности передачи реквизитов.
  3. Формат ФФД: Касса позволяет имитировать работу в режиме ФФД 1.05 даже без фискализации, если внутреннее программное обеспечение (прошивка) поддерживает этот протокол.

Таким образом, для тестирования нет необходимости использовать МГМ (макет габаритный массовый), достаточно иметь физическое устройство.

Выбор и настройка обработки обслуживания в 1С 7.7

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

Для работы нам понадобится файл frATOL54_comm_105.ert. Если вы используете актуальные релизы «Торговля и Склад» (например, 997 и выше), этот файл должен находиться в папке Equip вашего каталога базы данных. В отличие от версии 1.0, эта обработка напрямую обращается к методам библиотеки драйвера (DTO), что позволяет более гибко управлять тегами ФФД.

Программная реализация обязательных тегов (ИНН кассира)

Одним из ключевых требований ФФД 1.05 является передача ИНН кассира (тег 1203). В типовых обработках этот функционал часто реализован не полностью или требует ручной доработки. Рассмотрим, как добавить передачу этого реквизита в код.

Для передачи атрибута в драйвер Атол (версии 8 или 9) используется метод WriteAttribute. Разберем пример реализации в процедуре печати чека:


// Пример передачи данных кассира
ИННКассира = "123456789012"; // ИНН должен быть строкой из 12 цифр
ИмяКассира = "Иванов И.И.";

// Передаем ФИО кассира (тег 1021)
Объект.AttrNumber = 1021;
Объект.AttrValue = ИмяКассира;
Объект.WriteAttribute();

// Передаем ИНН кассира (тег 1203)
Объект.AttrNumber = 1203;
Объект.AttrValue = ИННКассира;
Объект.WriteAttribute();

Обратите внимание, что ИННКассира является обязательным реквизитом. Если вы не передадите его программно, касса может использовать данные, запрограммированные в самой ККТ (в таблице кассиров), но для ФФД 1.05 правильнее передавать его из 1С вместе с каждой операцией.

Решение проблемы скидок и округлений (Total Mismatch)

Переход на ФФД 1.05 в 1С 7.7 часто сопровождается ошибками вида «Сумма всех типов оплаты меньше итога чека». Это связано с тем, что новый формат требует строгого соблюдения математического равенства: Цена * Количество = Сумма строки.

Рассмотрим, как правильно обрабатывать скидки в коде 1С:

  1. Отказ от передачи скидки отдельной строкой: В ФФД 1.05 рекомендуется передавать в кассу уже финальную цену за единицу товара с учетом всех скидок.
  2. Распределение «копеек»: Если после применения скидки цена имеет более 2 знаков после запятой, 1С должна округлить цену до 2 знаков. Возникающую разницу (погрешность округления) необходимо распределять на общую сумму чека или корректировать цену последней единицы товара.
  3. Пример расчета: Если товар стоит 100 рублей и на него действует скидка 3%, итоговая сумма должна быть 97 рублей. Мы передаем Цена = 97, Количество = 1, Сумма = 97. Передавать «Цена 100, скидка 3» в современные драйверы через frATOL54_comm_105.ert не рекомендуется, так как это часто приводит к ошибкам в логах драйвера.

Технические требования к драйверам и оборудованию

Выясним, какие версии драйверов необходимы для стабильной работы. Существует два основных пути:

Путь 1: Использование DTO 8 (Драйвер торгового оборудования 8.x). Это наиболее простой путь для 1С 7.7. Он поддерживает ФФД 1.05 и работает на старых операционных системах, таких как Windows XP или Windows Server 2003. Обработка frATOL54_comm_105.ert по умолчанию ориентирована именно на работу с компонентой FprnM1C82_54FZ.dll или FPrnM1C.dll.

Путь 2: Использование DTO 10. Это современный драйвер, однако он не поддерживает Windows XP. Для его работы в 1С 7.7 потребуются сторонние ВК (внешние компоненты) или написание собственной обертки через COM-объект. Если ваша ОС позволяет, лучше переходить на него, но для «семерки» DTO 8 остается рабочим стандартом.

Прошивка ККТ: Проверьте версию внутреннего ПО Атол 30Ф. Для ФФД 1.05 версия должна быть не ниже 4555. Если ваша касса старше 2017 года, скорее всего, потребуется обновление прошивки в сервисном центре, иначе драйвер будет выдавать ошибку при попытке записи атрибутов 1.05.

Дополнительные реквизиты: место расчета и способ расчета

В ФФД 1.05 появились дополнительные обязательные поля. Проанализируем их:

Соблюдение этих правил позволит вам корректно настроить Атол 30Ф для работы по новым правилам, избежав штрафов и проблем с налоговой отчетностью.

← На главную