Как в драйвере Штрих-М передать ИНН, наименование покупателя и данные ГТД из 1С

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

С вступлением в силу изменений в 54-ФЗ и форматах фискальных данных (ФФД) от 01.07.2019, при расчетах между юридическими лицами и индивидуальными предпринимателями с использованием наличных или предъявлением электронных средств платежа, в кассовом чеке обязательно должны присутствовать реквизиты покупателя. К ним относятся Наименование покупателя (тег 1227) и ИНН покупателя (тег 1228). Кроме того, для импортных товаров необходимо передавать Код страны происхождения (тег 1230) и Номер таможенной декларации (тег 1231). Рассмотрим, как реализовать передачу этих данных в решениях на базе 1С:Предприятие 8.3 и 7.7 при использовании оборудования компании «Штрих-М».

Подготовка оборудования и драйвера

Перед тем как приступать к программной части, проанализируем технические требования к оборудованию. Для корректной обработки новых тегов необходимо убедиться в следующем:

  1. Версия прошивки ККТ: Фискальный регистратор должен иметь прошивку не ниже конца 2018 года (рекомендуются актуальные версии 2021–2023 годов для поддержки ФФД 1.2). Теги 1227 и 1228 поддерживаются в прошивках, начиная с версии от 24.09.2018.
  2. Версия драйвера: Рекомендуется использовать драйвер «Штрих-М: Драйвер ККТ» версии 4.14.772 или выше (на текущий момент актуальны ветки 4.15 и 5.17).
  3. Настройка таблиц: По умолчанию многие кассы не печатают эти теги на бумажном чеке, даже если они переданы в ОФД. Чтобы включить печать, необходимо через «Тест драйвера» зайти в Таблицы, найти Таблицу 17 (Региональные настройки) и установить в Поле 25 значение 1.

Реализация в 1С:Управление торговлей 11 (8.3)

В современных конфигурациях на платформе 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.

Реализация в 1С 7.7 (на примере ТиС 9.2)

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

Рассмотрим подробнее использование методов FNSendTag и FNSendTagOperation. Важно помнить, что теги покупателя (1227, 1228) привязываются ко всему чеку, а теги ГТД и страны (1230, 1231) — к конкретной товарной позиции.

Передача данных покупателя (теги 1227 и 1228)

Эти данные рекомендуется передавать перед закрытием чека или сразу после его открытия. Посмотрим на пример кода:


// Передаем Наименование покупателя (тег 1227)
Объект.Пароль = ПарольАдминистратора;
Объект.НомерТега = 1227;
Объект.ТипТега = 7; // Тип "Строка"
Объект.ЗначениеТегаСтрока = "ООО 'Ромашка'";
Объект.FNSendTag(); 

// Передаем ИНН покупателя (тег 1228)
Объект.НомерТега = 1228;
Объект.ТипТега = 7; 
Объект.ЗначениеТегаСтрока = "7712345678";
Объект.FNSendTag();

Передача данных о товаре (теги 1230 и 1231)

Для передачи сведений о ГТД и стране происхождения метод 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();
КонецЕсли;

Важные технические нюансы и типичные ошибки

При интеграции данных тегов программисты часто сталкиваются с ошибками драйвера. Проанализируем наиболее частые ситуации:

  1. Ошибка 51 (Некорректный тип данных): Возникает, если вы пытаетесь передать ИНН как число. Помните, что для драйвера Штрих-М значение тега 1228 должно передаваться через свойство ЗначениеТегаСтрока (TagValueStr), а ТипТега должен быть равен 7.
  2. Ошибка 94 (Некорректное состояние): Попытка отправить FNSendTagOperation вне открытого чека или до вызова метода регистрации позиции (FNOperation / Sale).
  3. Ограничения длины: Номер ГТД (тег 1231) не может превышать 32 символа. Если в вашей базе номера ГТД записаны вместе с дополнительной информацией, их необходимо обрезать перед отправкой.
  4. Код страны: Тег 1230 требует числовой код (ОКСМ). Передача строки "Россия" или "RU" приведет к ошибке или неверной обработке данных фискальным накопителем.

Подведем итог: для успешной работы с реквизитами покупателя и импорта необходимо использовать актуальное программное обеспечение от «Штрих-М», настроить таблицу 17 в параметрах ККТ и использовать современные методы драйвера (FNSendTag) вместо устаревших свойств. В 1С 7.7 ключевым моментом является переход от метода Sale() к методу FNOperation(), который позволяет гибко управлять тегами каждой позиции чека.

← На главную