В современных условиях ведения бизнеса в Казахстане, особенно при осуществлении расчетов между юридическими лицами (B2B), критически важным становится наличие ИИН или БИН покупателя в фискальном чеке. С 2022 года это является обязательным требованием для того, чтобы покупатель мог отнести расходы на вычеты. Однако при использовании виртуальных касс, таких как Webkassa, программисты 1С часто сталкиваются с проблемой: данные в конфигурации есть, но в печатную форму чека они не попадают.
В данной статье мы подробно разберем, как программно передать ИИН/БИН клиента в сервис Webkassa, какие атрибуты XML за это отвечают и где искать штатные механизмы в типовых конфигурациях для Казахстана.
Рассмотрим стандартную ситуацию: разработчик пытается внести изменения в функцию ПолучитьXMLПакетДляФискализацияЧека, добавляя различные атрибуты в надежде, что сервис их «подхватит». Проблема заключается в том, что драйвер Webkassa и сам API сервиса ожидают строго определенные имена полей, которые зависят от версии используемого протокола и версии библиотеки интеграции.
Если вы добавляете атрибуты наугад, например CustomerInfo или CustomerIIN, сервис их просто игнорирует, так как они не описаны в схеме XML-пакета. Выясним, какие параметры действительно имеют значение.
Если вы используете кастомизированную конфигурацию или старый релиз, где поддержка ИИН еще не реализована, вам придется вносить изменения в код формирования XML вручную. Проанализируем, какие атрибуты стоит использовать.
Согласно документации API Webkassa и практике интеграции 1С, наиболее вероятными рабочими именами атрибутов являются CustomerXin или CustomerINN. Посмотрим на пример кода, который необходимо внедрить в процедуру формирования пакета:
// Пример добавления ИИН/БИН покупателя в XML-пакет
// Переменная ПолучательИИН должна содержать 12 цифр без пробелов
Если ЗначениеЗаполнено(ПолучательИИН) Тогда
// Попробуем стандартный атрибут для драйверов 1С
ЗаписьXML.ЗаписатьАтрибут("CustomerINN", XMLСтрока(ПолучательИИН));
// В некоторых реализациях API Webkassa используется универсальное поле Xin
// ЗаписьXML.ЗаписатьАтрибут("CustomerXin", XMLСтрока(ПолучательИИН));
КонецЕсли;
Важный нюанс: Атрибут должен располагаться внутри соответствующего узла. Обычно это узел CheckPackage или FiscalDocument. Если вы запишете атрибут вне структуры, которую ожидает драйвер, данные будут отброшены еще до отправки на сервер.
Прежде чем приступать к «жесткому» кодингу, проанализируем текущий релиз вашей конфигурации. В программных продуктах для Казахстана (УТК, БК, ERP) фирма «1С» уже реализовала поддержку передачи ИИН/БИН покупателя.
Например, в «Управлении торговлей для Казахстана» (начиная с релиза 3.4.4.96) логика заполнения данных покупателя вынесена в специализированные модули. Разберем по шагам, где искать этот функционал:
ПодключаемоеОборудованиеWebkassaФискальныеРегистраторыКлиент.НачатьФискализациюЧека.ДанныеЧека, в которую включаются сведения о контрагенте.Если ваша конфигурация актуальна, вам достаточно убедиться, что в документе «Чек ККМ» или «Реализация товаров и услуг» (при печати чека) корректно заполнен контрагент и у него указан ИИН/БИН. Типовой механизм сам подставит эти данные в нужные поля XML-пакета.
Если код написан верно, но ИИН все равно не печатается, рассмотрим дополнительные факторы, которые могут блокировать вывод данных:
1. Версия протокола ФФД. Для корректной работы с дополнительными реквизитами чека (такими как данные покупателя) виртуальная касса должна работать по протоколу версии 2.0.2. Если в настройках кассового аппарата на портале Webkassa или в параметрах оборудования в 1С установлена устаревшая версия протокола, поле с ИИН будет игнорироваться.
2. Обновление драйвера. В 1С зайдите в раздел НСИ и администрирование — Ремонт и обслуживание — Подключаемое оборудование. Проверьте версию драйвера «Webkassa для 1С». Старые версии драйверов просто «не знают» о существовании поля CustomerINN и вырезают его перед отправкой. Обновите драйвер до последней доступной версии.
3. Настройки в Личном кабинете Webkassa. Зайдите через браузер в личный кабинет сервиса Webkassa. В настройках конкретной кассы может существовать флаг «Отображать данные покупателя в чеке». Если он выключен, то даже при корректной передаче данных из 1С сервер не будет выводить их на печать.
Подведем итог и составим план действий для решения задачи:
CustomerINN и CustomerXin в модуле фискализации.Таким образом, решение задачи кроется либо в правильном именовании атрибута (в большинстве случаев это CustomerINN), либо в использовании актуальных возможностей типовых конфигураций 1С для Казахстана, где вся работа с API Webkassa уже автоматизирована.