С 1 июля 2019 года вступили в силу изменения в Федеральный закон № 54-ФЗ (введены законом № 192-ФЗ), которые существенно расширили перечень обязательных реквизитов кассового чека при расчетах между организациями и индивидуальными предпринимателями. Рассмотрим подробно, как реализовать эти требования в конфигурациях 1С, какие драйверы использовать и как обойти технические ограничения старых систем.
Согласно пункту 6.1 статьи 4.7 закона 54-ФЗ, при осуществлении расчетов между организациями и (или) индивидуальными предпринимателями с использованием наличных денег или электронных средств платежа (банковских карт), кассовый чек должен дополнительно содержать:
Проанализируем важный нюанс: если ваш формат фискальных документов ФФД 1.05, то в техническом приказе ФНС данные теги могут быть помечены как "рекомендуемые" или "могут не включаться". Однако федеральный закон имеет приоритет над приказом ФНС. Отсутствие данных реквизитов в чеке при расчетах с юрлицом или ИП может привести к штрафам по ст. 14.5 КоАП РФ.
Выясним причину, по которой многие типовые решения 1С (особенно на обычных формах, такие как УТ 10.3 или УПП 1.3) не сразу начали корректно выводить новые теги. Основная проблема заключается в "интеграционной компоненте" драйвера. Разберем по шагам, как настроить систему:
10.5.0.0 или выше.7942 и выше). На старых прошивках (например, 7733) ГТД может уходить в ОФД, но не отображаться на бумаге.ДрайверАТОЛККТ54ФЗ10X. Стандартная компонента версии 10.4.4 не поддерживает интерфейс 3.0, необходимый для новых тегов. Рекомендуется заменить компоненту в макете на версию из последних релизов БПО (Библиотеки подключаемого оборудования) или скачать специальную сборку с форума Атола.Если ваша конфигурация не выводит реквизиты автоматически, необходимо внести изменения в процедуру формирования XML. Проанализируем пример кода для добавления атрибутов покупателя в ПараметрыОперацииФискализацииЧека:
// Добавление данных покупателя (B2B)
Если РевизияИнтерфейса >= 2005 Тогда // Проверка версии интерфейса
ПараметрыФискализацииЧека.Вставить("Получатель", СокрЛП(Контрагент.Наименование));
ПараметрыФискализацииЧека.Вставить("ПолучательИНН", СокрЛП(Контрагент.ИНН));
КонецЕсли;
// Пример записи атрибутов в XML пакет
Если Не ПустаяСтрока(ОбщиеПараметры.Получатель) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerInfo", XMLСтрока(ОбщиеПараметры.Получатель));
КонецЕсли;
Если Не ПустаяСтрока(ОбщиеПараметры.ПолучательИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomerINN", XMLСтрока(ОбщиеПараметры.ПолучательИНН));
КонецЕсли;
Для вывода данных о стране происхождения и ГТД в табличную часть чека, используйте следующие атрибуты в цикле перебора позиций номенклатуры:
Если ТекущаяПозиция.Свойство("КодСтраныПроисхожденияТовара") Тогда
ЗаписьXML.ЗаписатьАтрибут("CountryOfOrigin", XMLСтрока(ТекущаяПозиция.КодСтраныПроисхожденияТовара));
КонецЕсли;
Если ТекущаяПозиция.Свойство("НомерТаможеннойДекларации") Тогда
ЗаписьXML.ЗаписатьАтрибут("CustomsDeclaration", XMLСтрока(ТекущаяПозиция.НомерТаможеннойДекларации));
КонецЕсли;
Для ККТ производства Штрих-М алгоритм действий отличается. Рассмотрим подробнее настройку через "Тест драйвера":
1.31 или 32 (в зависимости от модели) для корректной печати реквизитов пользователя.4.14.772.При добавлении ГТД и страны происхождения объем данных в чеке значительно возрастает. Мы можем столкнуться с ошибкой "Недопустимое количество позиций" или "Ошибка программирования реквизита". Это связано с тем, что размер фискального документа ограничен памятью ФН (обычно около 32 Кб). Если в реализации более 100-150 импортных позиций с длинными номерами ГТД, рекомендуется разбивать одну реализацию на несколько чеков ККТ, чтобы избежать аннулирования документа кассой.
В устаревших системах 1С 7.7 работа ведется напрямую через объект драйвера. Разберем по шагам принцип передачи тегов перед закрытием чека:
// Передача ИНН покупателя (тег 1228)
Объект.НомерТега = 1228;
Объект.ТипТега = 7; // Строка
Объект.ЗначениеТегаСтрока = "7701010101";
Объект.FNSendTag();
// Передача наименования (тег 1227)
Объект.НомерТега = 1227;
Объект.ТипТега = 7;
Объект.ЗначениеТегаСтрока = "ООО 'Ромашка'";
Объект.FNSendTag();
Важно помнить, что метод FNSendTag() должен вызываться после OpenCheck(), но до формирования итогов и закрытия чека командой CloseCheck().
Таким образом, мы видим, что внедрение новых реквизитов требует комплексного подхода: обновления программного кода 1С, прошивки кассового аппарата и использования актуальных версий драйверов. Выполнение этих условий гарантирует соответствие чеков требованиям 54-ФЗ и исключает претензии со стороны налоговых органов.