Переход на формат фискальных данных (ФФД) 1.05 для пользователей устаревших систем, таких как 1С 7.7 «Торговля и Склад», сопряжен с рядом технических сложностей. В этой статье мы подробно разберем, как подготовить ККТ Атол 30Ф к работе в новом формате, какую обработку обслуживания выбрать, как правильно передавать новые обязательные реквизиты и как провести тестирование, не отправляя лишних данных в налоговую инспекцию.
Рассмотрим ситуацию, когда у нас есть новая касса Атол 30Ф, которую еще не зарегистрировали в ФНС (не фискализировали). Многие специалисты опасаются начинать отладку кода, боясь случайно отправить тестовые чеки в ОФД или испортить фискальный накопитель. Выясним, как обстоят дела на самом деле.
Фискальный регистратор, находящийся в состоянии «ККТ НЕ ФИСКАЛИЗИРОВАНА», позволяет выполнять практически все операции по печати чеков из 1С. Разберем основные моменты:
Таким образом, для тестирования нет необходимости использовать МГМ (макет габаритный массовый), достаточно иметь физическое устройство.
Проанализируем изменения в типовых решениях 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С вместе с каждой операцией.
Переход на ФФД 1.05 в 1С 7.7 часто сопровождается ошибками вида «Сумма всех типов оплаты меньше итога чека». Это связано с тем, что новый формат требует строгого соблюдения математического равенства: Цена * Количество = Сумма строки.
Рассмотрим, как правильно обрабатывать скидки в коде 1С:
Цена = 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 появились дополнительные обязательные поля. Проанализируем их:
frATOL54_comm_105.ert, добавляя выбор соответствующего признака перед методом Registration().Соблюдение этих правил позволит вам корректно настроить Атол 30Ф для работы по новым правилам, избежав штрафов и проблем с налоговой отчетностью.