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

Разработка и Конфигурация · 11 мин

QR-код в 1С: как сделать и вывести в документы

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

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

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

Материал ориентирован на пользователей и разработчиков типовых конфигураций (Управление торговлей, Бухгалтерия предприятия, УНФ, ERP), а также на тех, кто дорабатывает собственные решения. Рассмотрены оба пути: без программирования и с добавлением кода.

Что именно вы хотите закодировать: выбор сценария

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

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

Маршрут решения

Как выбрать способ

Нужен платёжный QR-код на счёте для оплаты через СБПВключите типовую настройку приёма оплаты по QR-коду в разделе банковских настроек конфигурации
Нужен QR-код с произвольным текстом в печатной формеИспользуйте функцию генерации штрихкода БСП или внешнюю компоненту и выведите картинку в макет
Нужен код на этикетке товараДобавьте элемент штрихкода в шаблон этикетки в разделе печати этикеток и ценников
Конфигурация самописная без БСППодключите внешнюю компоненту генерации штрихкодов или формируйте картинку через внешний API

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

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

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

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

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

Генерация QR-кода средствами БСП

Если конфигурация построена на библиотеке стандартных подсистем, в вашем распоряжении общий модуль генерации штрихкодов. В БСП есть функция, формирующая двоичные данные картинки штрихкода по переданной строке; тип кода задаётся параметром, для QR-кода используется соответствующее значение типа штрихкода (в документации БСП это тип QRCode). Результат — картинка в формате PNG, которую можно вывести в табличный документ, макет или сохранить в присоединённые файлы.

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

ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();

ПараметрыШтрихкода.Штрихкод = "https://example.com/doc/123";

ПараметрыШтрихкода.ТипКода = 16; // QR-код

ПараметрыШтрихкода.Ширина = 200;

ПараметрыШтрихкода.Высота = 200;

Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);

Если Результат.Свойство("ДвоичныеДанные") Тогда

Картинка = Новый Картинка(Результат.ДвоичныеДанные);

ТабДок.Рисунки.QRКод.Картинка = Картинка;

КонецЕсли;

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

Внешние компоненты и сервисы как альтернатива

В самописных конфигурациях без БСП или в старых релизах, где функция генерации недоступна, применяют внешние компоненты (Native API или COM), которые устанавливаются на сервере или клиенте и вызываются из кода. Компонента получает строку и возвращает картинку. Такой вариант требует установки компоненты на каждом рабочем месте или на сервере, что усложняет сопровождение.

Ещё один путь — обращение к внешнему HTTP-сервису генерации QR-кодов: программа отправляет строку запросом и получает картинку. Это просто в реализации, но создаёт зависимость от интернета и передаёт данные третьей стороне. Для платёжных реквизитов, персональных данных и коммерчески чувствительной информации такой способ не подходит.

Сравнение способов генерации

Типовой механизм СБП

Подходит для платёжных кодов на счетах; не требует доработок, но кодирует только оплату по стандарту

Функция БСП

Универсальный вариант для любых строк; требует конфигурации на БСП и небольшого кода

Внешняя компонента

Работает в любых конфигурациях; нужна установка и сопровождение на каждом рабочем месте

Внешний HTTP-сервис

Быстрый старт без установки; зависит от интернета и не подходит для конфиденциальных данных

Вывод QR-кода в печатную форму и на этикетку

Для табличного макета добавьте в макет рисунок с понятным именем (например, «QRКод») в той области, где код должен печататься. В коде формирования печатной формы после вывода области найдите рисунок через коллекцию рисунков табличного документа и присвоите ему сгенерированную картинку. Учтите, что область с рисунком должна иметь достаточную высоту строки, иначе код обрежется.

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

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

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

Контрольные точки: код распознаётся с первого раза на расстоянии 15–30 см; содержимое после сканирования совпадает с исходной строкой; для платёжного кода банковское приложение показывает правильного получателя и сумму. Если хотя бы один пункт не выполняется, код в эксплуатацию выпускать нельзя.

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

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

Чтение камерой телефона
Норма

Код распознаётся мгновенно, строка совпадает с исходной

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

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

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

Код читается с распечатки на вашем принтере

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

Модули сливаются — увеличьте размер кода или смените печать на более качественную

Платёжный код
Норма

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

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

Ошибка формата или неверные данные — проверьте настройку и реквизиты организации

Объём данных
Норма

Строка короткая, код читается легко

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

В коде сотни символов — модули слишком мелкие, сократите данные

Типичные ошибки
01
Слишком маленький размер картинки — код не читается после печати; задавайте размер с запасом и проверяйте на реальной печати
02
Кодирование длинной строки с лишними данными — плотность модулей растёт, читаемость падает; кодируйте только необходимое
03
Платёжный код собран вручную произвольной строкой — банк его не примет; используйте типовой механизм СБП
04
Нет свободной зоны вокруг кода — сканеры не распознают; оставляйте поля
05
Использование внешнего сервиса для конфиденциальных данных — утечка реквизитов третьей стороне

Ограничения и границы самостоятельной работы

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

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

Итог

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

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

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

Можно ли сделать QR-код в 1С вообще без программирования?

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

Какой тип штрихкода выбрать для QR-кода?

В функциях генерации тип кода задаётся числовым или строковым параметром; для QR-кода в БСП это отдельное значение типа (обычно обозначается как QRCode, числовой код 16). Точное значение смотрите в описании функции в вашей версии конфигурации, так как нумерация может отличаться.

Почему QR-код виден на экране, но не сканируется с распечатки?

Чаще всего причина в малом размере кода, низком качестве печати или отсутствии свободной зоны вокруг него. Увеличьте картинку, проверьте плотность печати принтера и убедитесь, что вокруг кода есть светлые поля без текста и линий.

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

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

Безопасно ли формировать QR-коды через бесплатные онлайн-сервисы?

Для нейтральных данных (ссылка на сайт, адрес) — допустимо. Для платёжных реквизитов, персональных данных и внутренней информации компании — нет: строка передаётся стороннему серверу, и вы не контролируете её дальнейшее использование. Используйте локальную генерацию внутри 1С.

Что делать, если типовая кнопка QR-кода на счёте не появляется?

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