Документы и Печать · 10 мин
Как в 1С настроить QR-код на документах и этикетках
Пошаговая инструкция, как в 1С настроить QR-код: подключение компоненты печати штрихкодов, вывод QR в макетах, типовые ошибки и проверка результата.
QR-код в 1С чаще всего нужен в трёх сценариях: печать платёжного QR на счетах для оплаты по СБП, вывод кода маркировки «Честный знак» на этикетках и кодирование произвольной строки (ссылки, номера заказа) на печатных формах. Во всех случаях используется встроенная компонента печати штрихкодов, которая поставляется вместе с платформой и типовыми конфигурациями.
Ключевой момент: «настройка QR-кода» в 1С — это не отдельный переключатель, а сочетание трёх вещей: установленной компоненты печати штрихкодов, макета печатной формы с областью под штрихкод и программного кода, который формирует сам код. Если не работает один из этих элементов, QR на печать не выйдет.
Ниже разобраны все три слоя: проверка компоненты, настройка макета, программный вывод QR и решение типовых проблем. Инструкция подходит для конфигураций на управляемых формах (УТ 11, ERP, БП 3.0, Розница), а также для самописных решений на платформе 8.3.
Проверьте, установлена ли компонента печати штрихкодов
Прежде чем править макеты и код, убедитесь, что на компьютере (или сервере 1С) установлена внешняя компонента «1С:Печать штрихкодов». Без неё любые попытки сформировать QR закончатся ошибкой «Компонента печати штрихкодов не установлена» или пустой картинкой на печатной форме.
Проверка выполняется просто: откройте любую типовую печатную форму, где штрихкод уже предусмотрен (например, ТОРГ-12 или этикетку в «Рознице»). Если линейный штрихкод выводится — компонента работает, и проблему стоит искать в макете или коде. Если штрихкода нет нигде — компоненту нужно установить.
Установка выполняется из дистрибутива платформы или скачиванием компоненты с портала 1С. В клиент-серверном варианте компоненту нужно установить на сервере 1С, если печатные формы формируются на сервере, а в файловом варианте — на каждом рабочем месте, где печатают документы. В тонком и веб-клиенте компонента подключается автоматически при первом обращении, если это разрешено настройками.
Разберитесь, какой тип кода вам нужен
Частая причина «неработающего QR» — путаница между типами двумерных кодов. В 1С через компоненту доступны QR-код, DataMatrix, PDF417 и другие форматы, и они не взаимозаменяемы.
QR-код подходит для оплаты по СБП, ссылок, произвольных строк. Маркировка «Честный знак» использует DataMatrix — если вы пытаетесь напечатать код маркировки как QR, сканер его не примет. Чеки и транспортные документы могут требовать другие форматы. Уточните требование до начала настройки, иначе придётся переделывать макет.
Строка формируется по стандарту НСПК: ST00012|Name=...|PersonalAcc=...|Sum=...
Код берётся из системы «Честный знак», тип штрихкода в 1С — DataMatrix
Произвольная строка до нескольких сотен символов, ограничение зависит от уровня коррекции ошибок
Уточняйте формат у контрагента или в отраслевом стандарте
Добавьте область под QR-код в макет печатной формы
Откройте конфигуратор, найдите нужный документ и его макет печатной формы (обычно называется «Макет» или «ПФ_MXL_...»). В макете выделите ячейку, где должен выводиться QR-код, и задайте ей имя, например «КартинкаQR». Размер ячейки задайте с запасом: для читаемого QR нужен квадрат не менее 2×2 см, для кодов с длинной строкой — больше.
Тип ячейки оставьте текстовым — картинка будет подставлена программно через параметр. Важно, чтобы в свойствах ячейки не было ограничений, обрезающих содержимое. Если QR выводится рядом с текстом, проверьте, что при заполнении макета строки не «расползаются» и не сжимают область кода.
В типовых конфигурациях часть макетов уже содержит место под штрихкод — например, в счетах на оплату в «Бухгалтерии» предусмотрен вывод платёжного QR при включённой настройке. Проверьте раздел настроек печатных форм: возможно, доработка макета вообще не потребуется.
Напишите код формирования QR-кода
В модуле менеджера объекта (процедура «Печать» или функция формирования печатной формы) добавьте вызов функции формирования штрихкода. В типовых конфигурациях используется общий модуль, например «МенеджерОборудованияВызовСервера» или «ГенерацияШтрихкода» — название зависит от конфигурации и версии БСП.
Логика одинаковая: подготовить строку содержимого, вызвать функцию с параметрами (тип штрихкода — QR, строка, ширина и высота в пикселях, уровень коррекции ошибок), получить двоичные данные картинки и поместить их в параметр макета. Уровень коррекции влияет на плотность кода: чем выше коррекция, тем больше площади занимает код при той же строке.
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Ширина = 200;
ПараметрыШтрихкода.Высота = 200;
ПараметрыШтрихкода.ТипКода = 16; // QR-код
ПараметрыШтрихкода.Штрихкод = СтрокаQR;
ПараметрыШтрихкода.УровеньКоррекции = 1;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Результат Тогда
ОбластьМакета.Параметры.КартинкаQR = Новый Картинка(Результат.ДвоичныеДанные);
КонецЕсли;Для платёжного QR по СБП строка формируется строго по стандарту: ST00012|Name=ООО Ромашка|PersonalAcc=40702810...|BankName=...|BIC=044525...|CorrespAcc=301018...|Sum=150000|Purpose=Оплата по счёту № 5. Сумма указывается в копейках. Ошибка в любом поле приведёт к тому, что банковское приложение не распознаёт код или подставит неверные реквизиты — проверяйте строку до вывода на печать.
Настройте вывод QR в типовых конфигурациях без доработки
Во многих типовых решениях QR на счетах включается настройкой, без конфигуратора. В «1С:Бухгалтерии 8» проверьте раздел с настройками печати счетов и подключение сервисов СБП — при оформленной настройке платёжный QR добавляется на печатную форму автоматически. В «Управлении торговлей» и «Рознице» печать этикеток с кодами маркировки доступна из обработки «Печать этикеток и ценников», где в шаблоне этикетки добавляется поле штрихкода нужного типа.
Редактор шаблонов этикеток позволяет разместить QR или DataMatrix визуально: откройте шаблон, перетащите элемент «Штрихкод» на макет, выберите тип кода и источник данных. Это самый быстрый путь, если речь идёт об этикетках, а не о печатных формах документов.
Проверьте результат и устраните типовые ошибки
После настройки сформируйте реальный документ и отсканируйте код камерой телефона. Для платёжного QR — именно банковским приложением, а не универсальным сканером: только так видно, корректно ли передаются реквизиты. Для маркировки проверку выполняйте сканером, подключённым к 1С, и сверяйте считанную строку с исходным кодом.
Если код не сканируется, причины обычно такие: слишком маленький размер картинки на печати, низкое качество печати (бледный тонер, размытие), длинная строка при высоком уровне коррекции (код получается слишком плотным), либо в строке содержатся недопустимые символы. Увеличьте область печати, понизьте уровень коррекции или сократите строку.
Как проверить результат
Чёткий квадратный код, отсканированный телефоном за 1–2 секунды
Размытая или обрезанная картинка, сканер не реагирует
Банковское приложение показывает верные реквизиты и сумму
Ошибка распознавания или неверные получатель/сумма
Сканер возвращает полную строку с разделителями GS
Считывается усечённая строка или код не читается
Ограничения и альтернативные способы
Штатная компонента формирует только растровую картинку — масштабировать её без потери качества нельзя, поэтому размер задавайте сразу в пикселях с запасом. Для высоких требований к качеству печати (типография, мелкие этикетки) иногда используют внешние генераторы QR и подставляют готовые изображения, но это усложняет процесс и редко оправдано.
В веб-клиенте и на Linux-рабочих местах проверяйте поддержку компоненты отдельно: не все варианты поставки работают одинаково. Если штатная компонента недоступна, QR можно сформировать через HTTP-запрос к внутреннему сервису генерации, но такой сервис придётся развернуть и поддерживать самостоятельно.
Что важно запомнить
QR-код в 1С — это компонента печати штрихкодов плюс макет плюс код формирования. Выберите правильный тип кода (QR или DataMatrix), задайте достаточный размер области, сформируйте строку по стандарту и обязательно проверьте результат сканированием до массовой печати.
Частые вопросы
Можно ли вывести QR-код без доработки конфигурации?
Да, если речь о типовых сценариях: платёжный QR на счетах в «Бухгалтерии» включается настройкой, а этикетки с кодами печатаются через редактор шаблонов в «Рознице» и УТ. Для произвольных документов и нестандартных строк потребуется доработка макета и модуля печати.
Почему QR-код печатается пустым или не формируется?
Чаще всего не установлена компонента печати штрихкодов на том узле, где формируется печатная форма (сервер или клиент), либо не совпадает разрядность компоненты и платформы. Также проверьте, что функция формирования возвращает картинку без ошибки — выведите текст ошибки в журнал регистрации.
Чем QR отличается от DataMatrix при печати маркировки?
Это разные стандарты двумерных кодов. Маркировка «Честный знак» использует DataMatrix с особыми разделителями GS, и сканеры настроены именно на него. QR-код с той же строкой система маркировки не примет, поэтому тип штрихкода в параметрах нужно указывать правильно.
Какого размера должен быть QR-код на печати?
Минимальный практический размер — около 2×2 см для коротких строк. Чем длиннее строка и выше уровень коррекции ошибок, тем плотнее код и тем больше должна быть область. Ориентируйтесь не на сантиметры, а на результат: код должен уверенно сканироваться камерой с расстояния 15–20 см.
Пропадёт ли настройка QR после обновления конфигурации?
Если вы изменили типовой макет или модуль напрямую — доработка может быть затёрта при обновлении. Безопасные варианты: использовать расширение конфигурации, внешнюю печатную форму или штатные настройки. Перед обновлением делайте копию изменённых объектов.
Можно ли сформировать QR-код из внешней обработки?
Да, внешняя печатная форма может использовать ту же компоненту и те же функции генерации штрихкода, что и встроенный код. Это удобный способ добавить QR на документ без изменения конфигурации: обработка подключается через механизм дополнительных отчётов и обработок БСП.