С вступлением в силу изменений в 54-ФЗ и форматах фискальных данных (ФФД) от 01.07.2019, при расчетах между юридическими лицами и индивидуальными предпринимателями с использованием наличных или предъявлением электронных средств платежа, в кассовом чеке обязательно должны присутствовать реквизиты покупателя. К ним относятся Наименование покупателя (тег 1227) и ИНН покупателя (тег 1228). Кроме того, для импортных товаров необходимо передавать Код страны происхождения (тег 1230) и Номер таможенной декларации (тег 1231). Рассмотрим, как реализовать передачу этих данных в решениях на базе 1С:Предприятие 8.3 и 7.7 при использовании оборудования компании «Штрих-М».
Перед тем как приступать к программной части, проанализируем технические требования к оборудованию. Для корректной обработки новых тегов необходимо убедиться в следующем:
В современных конфигурациях на платформе 8.3 работа с торговым оборудованием осуществляется через Библиотеку подключаемого оборудования (БПО). Рассмотрим, как происходит передача данных.
Проанализируем ситуацию: в типовых конфигурациях (УТ 11, КА 2, ERP) механизмы передачи ИНН и наименования покупателя уже заложены в логику формирования чека. При печати чека из документа «Приходный кассовый ордер» или «Эквайринговая операция», если контрагент — юридическое лицо, система автоматически заполняет структуру ДополнительныеРеквизитыЧека.
Если вы используете доработанный механизм, убедитесь, что в XML-пакет, передаваемый методу СформироватьЧек, включены следующие атрибуты:
// Пример структуры в XML для БПО
<CommonParameters CustomerInfo="ООО 'Покупатель'" CustomerINN="7701010101" />
<Items>
<Item Name="Товар импортный" Quantity="1" Price="100" Amount="100"
CountryOfOrigin="643" CustomsDeclaration="10101010/010121/0001234" />
</Items>
Выясним причину, почему данные могут не уходить: часто это связано с тем, что в карточке «Организации» или в настройках рабочего места кассира не выбрана работа по ФФД 1.05 или 1.2. Теги покупателя игнорируются в режиме ФФД 1.0.
Для платформы 7.7 ситуация сложнее, так как стандартные обработки обслуживания часто не содержат нужных методов. Разберем по шагам, как добавить передачу тегов напрямую через объект драйвера.
Рассмотрим подробнее использование методов FNSendTag и FNSendTagOperation. Важно помнить, что теги покупателя (1227, 1228) привязываются ко всему чеку, а теги ГТД и страны (1230, 1231) — к конкретной товарной позиции.
Эти данные рекомендуется передавать перед закрытием чека или сразу после его открытия. Посмотрим на пример кода:
// Передаем Наименование покупателя (тег 1227)
Объект.Пароль = ПарольАдминистратора;
Объект.НомерТега = 1227;
Объект.ТипТега = 7; // Тип "Строка"
Объект.ЗначениеТегаСтрока = "ООО 'Ромашка'";
Объект.FNSendTag();
// Передаем ИНН покупателя (тег 1228)
Объект.НомерТега = 1228;
Объект.ТипТега = 7;
Объект.ЗначениеТегаСтрока = "7712345678";
Объект.FNSendTag();
Для передачи сведений о ГТД и стране происхождения метод Sale() (Продажа) во многих версиях драйвера может быть недостаточен, так как он не «подхватывает» теги операции в режиме ФФД 1.05. В этом случае следует использовать связку FNOperation() и FNSendTagOperation().
Проанализируем алгоритм работы внутри цикла по строкам документа:
// В цикле по строкам чека
Объект.Quantity = Строка.Количество;
Объект.Price = Строка.Цена;
Объект.Department = 1;
Объект.Tax1 = 1; // НДС 20%
Объект.ItemName = Строка.Товар.Наименование;
// Выполняем фискальную операцию
Объект.FNOperation();
Если (ПустаяСтрока(Строка.ГТД) = 0) Тогда
// Передаем код страны (тег 1230)
Объект.НомерТега = 1230;
Объект.ТипТега = 7;
Объект.ЗначениеТегаСтрока = "643"; // Код страны должен быть строго 3 знака
Объект.FNSendTagOperation();
// Передаем номер ГТД (тег 1231)
Объект.НомерТега = 1231;
Объект.ТипТега = 7;
Объект.ЗначениеТегаСтрока = СокрЛП(Строка.ГТД);
Объект.FNSendTagOperation();
КонецЕсли;
При интеграции данных тегов программисты часто сталкиваются с ошибками драйвера. Проанализируем наиболее частые ситуации:
ЗначениеТегаСтрока (TagValueStr), а ТипТега должен быть равен 7.FNSendTagOperation вне открытого чека или до вызова метода регистрации позиции (FNOperation / Sale).Подведем итог: для успешной работы с реквизитами покупателя и импорта необходимо использовать актуальное программное обеспечение от «Штрих-М», настроить таблицу 17 в параметрах ККТ и использовать современные методы драйвера (FNSendTag) вместо устаревших свойств. В 1С 7.7 ключевым моментом является переход от метода Sale() к методу FNOperation(), который позволяет гибко управлять тегами каждой позиции чека.