К статье
Практический материал

Документы и Печать · 11 мин

Как добавить QR-код в счет на оплату в 1С

Как добавить QR-код в счет на оплату в 1С: настройка макета, типовые механизмы СБП и оплаты по QR, изменение печатной формы, проверка результата и типичные ошибки.

QR-код в счете на оплату позволяет покупателю оплатить документ со смартфона: камера или банковское приложение считывает код, и платежное поручение заполняется автоматически. В типовых конфигурациях 1С (Бухгалтерия предприятия, Управление торговлей, Комплексная автоматизация, ERP) такая возможность уже встроена — чаще всего достаточно включить соответствующую настройку, а не дорабатывать конфигурацию.

Существует два принципиально разных сценария. Первый — QR-код по стандарту ГОСТ Р 56042-2014 для оплаты через банк: в код зашиваются реквизиты получателя, сумма и назначение платежа. Второй — QR-код Системы быстрых платежей (СБП), когда оплата проходит мгновенно по подключенному договору с банком или платежным агрегатором. Подход к настройке в этих случаях отличается.

Ниже разобраны оба варианта: где включается вывод кода, как отредактировать макет печатной формы, если типового расположения недостаточно, как проверить корректность сформированного кода и какие ошибки встречаются чаще всего.

Что нужно проверить перед настройкой

Прежде чем менять печатную форму, убедитесь, что в базе заполнены данные, из которых формируется QR-код. Код строится из реквизитов организации: наименование получателя, ИНН, КПП, номер счета, БИК банка, корреспондентский счет, а также суммы и назначения платежа. Если какой-то реквизит пуст или устарел, код либо не сформируется, либо приведет покупателя к ошибочному платежу.

Откройте карточку организации (раздел «Главное» — «Реквизиты организации» в БП или «НСИ и администрирование» — «Организации» в УТ/ERP) и проверьте банковский счет по умолчанию. Именно счет по умолчанию подставляется в счет на оплату и в QR-код.

Также уточните версию конфигурации: механизмы оплаты по QR-коду активно развиваются, и в старых релизах нужной настройки может не быть. При необходимости обновите конфигурацию на копии базы, проверьте работу и только потом переносите изменения в рабочую базу.

Вариант 1: QR-код оплаты через СБП в 1С:Бухгалтерии

В 1С:Бухгалтерии предприятия 8 типовой механизм называется «Оплата по QR-коду» и работает через Систему быстрых платежей. Для него требуется договор с банком или платежным агрегатором, поддерживающим СБП, — без подключения сервиса код в счете не появится.

Порядок включения: перейдите в раздел «Главное» — «Настройки» — «Обмен электронными документами» либо «Продажи» — «Оплата по QR-коду» (точный путь зависит от релиза). Включите функциональную опцию, укажите договор с сервисом СБП и проверьте, что в настройках обмена прошла авторизация. После этого в счете на оплату появится команда формирования QR-кода, а в печатной форме — блок с кодом и суммой.

При таком варианте QR-код формируется динамически для каждого счета: в него зашивается конкретная сумма и назначение. Покупатель сканирует код в приложении своего банка и подтверждает платеж — заполнять реквизиты вручную не нужно.

Вариант 2: QR-код с банковскими реквизитами по ГОСТ

Если подключать СБП не планируется, в счет можно вывести статический QR-код по стандарту двумерного штрихкодирования банковских платежей. Такой код считывается приложением любого банка, и клиенту остается только подтвердить платеж. Этот вариант не требует договоров и комиссий — код формируется локально из реквизитов документа.

В части типовых конфигураций вывод такого кода уже предусмотрен в макете счета. Если в вашей печатной форме его нет, потребуется доработка макета: платформа 1С:Предприятие 8 умеет формировать QR-коды штатно, без внешних компонентов, через объект работы с двумерными штрихкодами.

Строка данных для кода собирается по формату: служебный заголовок, наименование получателя, его счет, БИК банка, корсчет, ИНН, сумма в копейках и назначение платежа. Поля разделяются символом вертикальной черты. Ошибка в любом поле делает код нечитаемым для банковского приложения, поэтому строку формируют программно, а не вручную.

Сравнение вариантов

QR-код СБП

Мгновенная оплата и автоматическое зачисление с отслеживанием статуса, но нужен договор с банком/агрегатором и возможна комиссия.

QR-код по ГОСТ с реквизитами

Работает без договоров и комиссий, но это обычный банковский перевод: оплата идет стандартные сроки, статус в 1С автоматически не отслеживается.

Внешняя печатная форма

Подходит, когда менять конфигурацию нельзя (например, она на поддержке): макет подключается как внешняя обработка без снятия с поддержки.

Как изменить макет печатной формы счета

Если типовое расположение QR-кода не устраивает — например, нужно вывести его в другом месте листа или добавить в самописную форму, — редактируется макет. Безопасный путь: в разделе «Администрирование» — «Печатные формы, отчеты и обработки» включить «Дополнительные отчеты и обработки» и подключить внешнюю печатную форму счета. Тогда конфигурация остается на поддержке, а при обновлении макет не затрется.

Альтернатива — редактирование макета в конфигураторе. Найдите общий макет или макет документа «Счет на оплату покупателю», добавьте область под картинку QR-кода и в модуле менеджера документа допишите код формирования изображения и вывода его в табличный документ. Такой способ требует аккуратности: изменения типовых модулей усложняют обновление.

Порядок доработки макета
  1. 1
    Сделайте резервную копию базы или работайте на копии.
  2. 2
    Определите, какой макет использует счет: откройте печатную форму и через «Еще» — «Изменить макет» или поиском в конфигураторе.
  3. 3
    Добавьте в макет область с рисунком для QR-кода.
  4. 4
    В модуле формирования печатной формы соберите строку данных платежа и сформируйте картинку QR-кода штатным механизмом платформы.
  5. 5
    Выведите картинку в табличный документ, сформируйте тестовый счет и отсканируйте код приложением банка.
  6. 6
    Перенесите доработку в рабочую базу и повторите проверку на реальном документе.

Пример формирования строки платежа и кода на встроенном языке (упрощенно):

СтрокаQR = "ST00012|Name=" + НаименованиеПолучателя

+ "|PersonalAcc=" + НомерСчета

+ "|BankName=" + НаименованиеБанка

+ "|BIC=" + БИК

+ "|CorrespAcc=" + КоррСчет

+ "|PayeeINN=" + ИНН

+ "|Sum=" + Формат(Сумма * 100, "ЧГ=")

+ "|Purpose=" + НазначениеПлатежа;

ДанныеQR = ГенерацияШтрихкода.ДанныеQRКода(СтрокаQR, 1, 200);

КартинкаQR = Новый Картинка(ДанныеQR);

Рисунок.Картинка = КартинкаQR;

1c
ДанныеQR = ГенерацияШтрихкода.ДанныеQRКода(СтрокаДанных, УровеньКоррекции, Размер);

Обратите внимание: сумма в строке указывается в копейках, назначение платежа не должно содержать символа вертикальной черты, а уровень коррекции ошибок лучше не занижать — иначе код хуже читается при печати на старых принтерах.

Как проверить, что QR-код работает

Формирование картинки в печатной форме еще не означает, что платеж пройдет корректно. Обязательная проверка — сканирование кода приложением реального банка. Сформируйте тестовый счет на небольшую сумму, распечатайте его или откройте PDF на экране и отсканируйте код со смартфона.

Сверьте каждое поле, которое подставило банковское приложение: получатель, ИНН, счет, БИК, сумма и назначение платежа должны совпадать с данными счета. Проверьте читаемость кода в обоих форматах — на бумаге после печати и в PDF, отправленном по электронной почте, так как сжатие при печати иногда портит мелкие модули кода.

Контрольные точки

Как проверить результат

Сканирование приложением банка
Норма

Приложение распознает код и подставляет реквизиты и сумму

Тревожный признак

Код не читается или поля подставляются не все

Сумма платежа
Норма

Совпадает с суммой счета до копейки

Тревожный признак

Сумма отличается или равна нулю

Получатель и счет
Норма

ИНН, наименование и номер счета совпадают с карточкой организации

Тревожный признак

Подставляются устаревшие реквизиты другого счета

Печатная форма на бумаге
Норма

Код читается с распечатки с первой попытки

Тревожный признак

Код читается только с экрана — увеличьте размер картинки в макете

Частые ошибки и ограничения

Самая распространенная проблема — в документе выбран не тот банковский счет организации. QR-код строится из реквизитов счета, указанного в документе, а не из «основного» в справочнике: если в счете стоит старый расчетный счет, код уведет оплату на него. Перед массовой рассылкой проверьте поле «Банковский счет» в самом документе.

Вторая типичная ситуация — код есть на экране, но не читается с распечатки. Причины: слишком маленький размер картинки в макете, низкое качество печати, обрезка кода границей области. Увеличьте область рисунка и оставьте вокруг кода свободное поле.

Третья ошибка — ручная сборка строки данных с нарушением формата: лишние пробелы, кириллица там, где банк ждет латиницу, сумма в рублях вместо копеек. В этом случае приложение банка либо не распознает код, либо распознает его частично, и клиент заполнит платеж вручную с ошибками.

Типичные ошибки
01
Рассылка счетов без тестового сканирования — клиенты получают нечитаемый или ошибочный код.
02
Доработка типового макета напрямую в конфигураторе без резервной копии — при обновлении изменения теряются или блокируют обновление.
03
Сумма в строке кода в рублях вместо копеек — банк подставляет сумму в сто раз меньше.
04
Использование в назначении платежа символа «|» — строка разваливается, и код перестает распознаваться.
05
Смена расчетного счета организации без проверки уже созданных счетов — в старых документах остаются прежние реквизиты.
Итог

Что важно запомнить

QR-код в счете либо включается типовой настройкой (СБП в Бухгалтерии), либо добавляется доработкой макета с штатной генерацией QR-кода платформой. Перед рассылкой обязательно проверьте код сканированием: реквизиты, сумма в копейках и читаемость на бумаге.

Частые вопросы

Можно ли добавить QR-код без доработки конфигурации?

Да, если используется 1С:Бухгалтерия с подключенной оплатой по QR-коду через СБП — код появится в счете штатно. Также во многих конфигурациях можно подключить внешнюю печатную форму через механизм дополнительных отчетов и обработок, не снимая конфигурацию с поддержки.

Чем QR-код СБП отличается от кода с реквизитами по ГОСТ?

Код СБП проводит мгновенный платеж через Систему быстрых платежей и требует договора с банком или агрегатором. Код по ГОСТ — это просто зашитые в картинку реквизиты обычного банковского перевода: он работает без договоров, но оплата идет в стандартные сроки и не отслеживается в 1С автоматически.

Почему приложение банка не считывает QR-код из моего счета?

Чаще всего причина в нарушении формата строки данных: лишние символы, сумма не в копейках, недопустимые символы в назначении платежа. Реже — в слишком маленьком размере картинки или плохом качестве печати. Проверьте код с экрана: если с экрана читается, а с бумаги нет, проблема в печати, а не в данных.

Нужно ли заново формировать QR-код при изменении суммы счета?

Да. Сумма зашита внутрь кода, поэтому после изменения документа печатную форму нужно сформировать заново. Если вы отправляли счет в PDF, а затем изменили документ — выгрузите и отправьте клиенту новый файл.

Работает ли QR-код в счете, отправленном по электронной почте?

Да, код читается с экрана так же, как с бумаги. Убедитесь только, что при выгрузке в PDF картинка не сжимается до нечитаемого состояния, и проверьте файл перед отправкой, отсканировав код прямо с экрана.

Что делать, если организация сменила банк?

Обновите реквизиты в карточке организации и в банковских счетах, затем проверьте, какой счет указан в действующих и будущих счетах на оплату. Старые документы с прежними реквизитами содержат в QR-коде прежний счет — их нужно перепровести и сформировать заново перед повторной отправкой клиентам.