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

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

Как добавить QR-код в 1С

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

QR-код в 1С чаще всего требуется на печатных формах: счетах на оплату с реквизитами по ГОСТ Р 56042-2014, универсальных передаточных документах, этикетках товаров и актуальных формах с отметкой о честной подписи. Во всех этих случаях используется один и тот же механизм — специальный элемент макета «Штрихкод», который платформа заполняет автоматически на основе строки данных.

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

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

Что нужно перед началом работы

Перед настройкой убедитесь, что в базе доступна компонента генерации штрихкодов. В типовых конфигурациях она хранится в макете общего назначения (обычно называется «КомпонентаПечатиШтрихкодов» или подобно) и подключается автоматически при первом обращении. Если конфигурация самописная или сильно доработанная, компоненту нужно добавить вручную из поставки платформы или из типовой конфигурации.

Второе условие — права доступа. Изменение макетов печатных форм в пользовательском режиме доступно только если в конфигурации включён механизм редактирования макетов (раздел «Администрирование» — «Печатные формы, отчеты и обработки»). Для изменения макета в конфигураторе потребуются права разработчика и, в типовых решениях, аккуратная работа с поддержкой конфигурации.

Третий момент — определитесь с содержимым кода. QR-код — это просто закодированная строка. Для платёжных документов строка формируется по строгому стандарту (поля ST00012, Name, PersonalAcc, Sum и другие), для ссылок достаточно URL, для маркировки — код из системы «Честный ЗНАК». От содержимого зависит длина строки и требуемый размер картинки.

Как включить QR-код в типовой печатной форме без программирования

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

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

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

Включение QR-кода в типовой конфигурации
  1. 1
    Откройте настройки печати счетов на оплату в разделе «Главное» — «Настройки».
  2. 2
    Установите флаг вывода QR-кода и сохраните настройку.
  3. 3
    Проверьте заполненность расчётного счёта, БИК и ИНН организации.
  4. 4
    Сформируйте счёт из документа и отсканируйте код банковским приложением.
  5. 5
    Сверьте сумму и получателя в приложении с данными документа.

Как добавить QR-код в макет печатной формы через конфигуратор

Если типовой настройки нет или нужна своя печатная форма, добавьте код прямо в макет. Откройте конфигуратор, найдите нужный макет (обычно в ветке документа — «Макеты») и откройте его. Макет печатной формы — это табличный документ с именованными областями.

Выделите ячейку, где должен располагаться код, и вызовите команду «Таблица» — «Рисунки» — «Вставить рисунок». В свойствах рисунка установите тип «Штрихкод», а в параметрах — тип кода QRCode. Задайте имя рисунка, например «QRКод», — по этому имени вы будете обращаться к нему из программного кода. Установите размеры рисунка: для платёжного QR-кода рекомендуется сторона не менее 30–35 мм, иначе сканеры банков могут не распознать код.

Затем в модуле менеджера документа (или в процедуре печати) найдите место, где заполняются параметры макета, и добавьте присваивание строки данных рисунку. Типовой подход — сформировать строку заранее и передать её через коллекцию рисунков области.

bsl
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
Рисунок = ОбластьМакета.Рисунки.QRКод;
Рисунок.Значение = СформироватьСтрокуQR(Документ);
ТабличныйДокумент.Вывести(ОбластьМакета);

Как сформировать строку данных для QR-кода

Содержимое строки зависит от задачи. Для платёжного QR-кода на счёте используется формат по ГОСТ Р 56042-2014: служебный заголовок ST00012 (или ST00011/ST00012 в зависимости от версии), за которым через символ «|» перечисляются поля Name, PersonalAcc, BankName, BIC, CorrespAcc, Sum, Purpose и другие. Порядок и набор полей строго регламентированы — банковские приложения отклоняют строки с неизвестными или пустыми обязательными полями.

Сумма в строке указывается в копейках без разделителей: 1500 рублей — это «150000». Назначение платежа не должно содержать символа «|», иначе разбор строки сломается. Специальные символы в наименовании организации лучше очищать заранее.

Для неплатёжных сценариев ограничений меньше. Ссылка на оплату, адрес страницы проверки документа, артикул товара — всё это кодируется как обычный текст. Учитывайте только ограничение по длине: чем длиннее строка, тем плотнее код и тем хуже он читается при маленьком размере печати. Для строк длиннее 100–150 символов увеличивайте размер рисунка.

Генерация QR-кода программно без макета

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

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

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

Способы добавления QR-кода

Настройка типовой формы

Подходит для счетов в типовых конфигурациях. Не требует программирования, но ограничена предусмотренными разработчиком сценариями.

Элемент «Штрихкод» в макете

Универсальный способ для любых печатных форм. Требует доступа к конфигуратору и минимального кода для передачи строки.

Программная генерация картинки

Подходит для форм, писем и этикеток. Гибче всего, но требует написания кода и обработки ошибок подключения компоненты.

Проверка результата и типичные ошибки

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

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

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

Типичные ошибки
01
Размер рисунка меньше 30 мм — код не читается сканерами после печати.
02
Незаполненные банковские реквизиты организации — банк отклоняет платёжную строку.
03
Символ «|» в назначении платежа — разбор строки по ГОСТ ломается.
04
Сумма в рублях вместо копеек — в приложении банка подставляется сумма в сто раз меньше.
05
Перекрытие кода логотипом или печатью — часть матрицы закрыта, код не сканируется.
Контрольные точки

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

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

Приложение распознаёт получателя, счёт и сумму

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

Ошибка формата или неверные реквизиты

Размер кода на бумаге
Норма

Сторона кода не меньше 30 мм, код читается с первого раза

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

Код мелкий, сканируется нестабильно

Совпадение суммы
Норма

Сумма в приложении равна сумме документа

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

Сумма отличается в 100 раз или отсутствует

Внешний вид на печати
Норма

Код не перекрыт логотипом и печатью, края чёткие

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

Часть матрицы закрыта или размыта

Ограничения и когда лучше обратиться к специалисту

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

Если QR-код нужен в сложной схеме — например, с интеграцией с «Честным ЗНАКом», динамической ссылкой на оплату через API банка или печатью на этикеточном принтере, — задача выходит за рамки настройки макета. В таких случаях разумнее привлечь специалиста по 1С: ошибка в коде маркировки или платёжной ссылке может привести к финансовым потерям или штрафам.

Часто задаваемые вопросы

Почему QR-код не печатается, хотя в макете он есть?

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

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

Да, если конфигурация поддерживает редактирование печатных форм в пользовательском режиме. В разделе «Администрирование» — «Печатные формы, отчеты и обработки» включите редактирование макетов, откройте нужный макет из формы печати документа и добавьте элемент штрихкода. Набор возможностей зависит от конкретной конфигурации.

Какой размер QR-кода нужен на счёте для оплаты?

Практический минимум — 30–35 мм по стороне при печати на обычном офисном принтере. Меньший размер может читаться камерой телефона, но банковские сканеры и приложения распознают его нестабильно. При длинной платёжной строке размер лучше увеличить.

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

В платёжной строке сумма указывается в копейках целым числом. Если передать сумму в рублях, приложение интерпретирует её как копейки, и итог окажется в сто раз меньше. Проверьте функцию формирования строки и умножение суммы на 100.

Можно ли вывести QR-код со ссылкой на оплату вместо реквизитов?

Да, QR-код может содержать обычный URL — например, ссылку на страницу оплаты. Достаточно передать в элемент штрихкода строку с адресом вместо платёжной строки по ГОСТ. Учтите, что ссылка должна быть постоянной: если адрес страницы изменится, напечатанные коды перестанут работать.

Что делать, если после обновления конфигурации QR-код пропал?

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

Итог

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

QR-код в 1С создаётся элементом «Штрихкод» с типом QRCode и строкой данных. В типовых конфигурациях для счетов достаточно включить настройку, для своих форм — добавить рисунок в макет и передать строку кодом. Всегда проверяйте результат сканированием на тестовом документе и делайте резервную копию перед доработками.