Печать QR-кодов в 1С: от генерации до готовой этикетки
Содержание
QR-код в 1С формирует встроенный генератор штрихкодов — тот же механизм, что рисует EAN-13 и Code128. Вы задаёте строку (ссылку, реквизиты платежа, код товара), выбираете тип QR, получаете картинку и выводите её в макет печатной формы или на этикетку. Печатать можно на обычном принтере через табличный документ и на термопринтере этикеток как графику.
Ниже — где в типовых конфигурациях включается вывод QR, как добавить код в свой макет и почему готовый QR иногда не считывается сканером. Отдельно разберём миф про «шрифт QR» и отличие QR от кода Data Matrix, который печатают для маркировки.
Что именно кодируем и в каком формате
Сначала определитесь, что должен содержать код — от этого зависит тип и размер.
- 💳 QR для оплаты. Реквизиты платежа по ГОСТ Р 56042-2014: получатель, ИНН, счёт, банк, БИК, сумма, назначение. Такой код банковское приложение распознаёт как платёжку.
- 🧾 QR на кассовом чеке. Формируется кассой автоматически по 54-ФЗ, содержит ссылку на проверку чека в ФНС. Вручную его рисовать не нужно.
- 🔗 Ссылка или текст. Произвольная строка — адрес сайта, код товара, серийный номер для внутренней маркировки.
Код маркировки «Честный знак» — это не QR, а Data Matrix. Визуально похожи, но это разные символики. Печать кодов маркировки идёт отдельным механизмом (из документов поступления/оборота), и подменять Data Matrix на QR нельзя — код не пройдёт в ГИС МТ.
Размер данных влияет на плотность: чем длиннее строка, тем больше «клеток» в коде и тем мельче каждая из них при фиксированном размере печати. Для длинных ссылок закладывайте физический размер побольше — иначе модуль станет меньше разрешения принтера и код не прочитается.
Второй параметр, который стоит задать осознанно, — уровень коррекции ошибок. QR умеет восстанавливать часть повреждённого изображения за счёт избыточности:
L— восстанавливает около 7% кода, минимум избыточности, код компактнее.M— около 15%, разумный баланс для печати на бумаге.Q— около 25%, под этикетки, которые трутся и мнутся.H— около 30%, максимум; код плотнее, зато читается даже с загрязнением.
Для этикеток на складе и на упаковке берите Q или H — код переживёт царапины и смазывание. Для счёта на бумаге достаточно M. Чем выше уровень, тем больше клеток при тех же данных, поэтому H на длинной ссылке потребует крупной печати.
Встроенный генератор штрихкодов в 1С 8.3
В конфигурациях на Библиотеке стандартных подсистем (БП 3.0, УТ 11, ЗУП 3.1, Розница, ERP) за штрихкоды отвечает подсистема печати штрихкодов с внешней компонентой. Она умеет линейные коды и двумерные, включая QR.
Отдельно устанавливать ничего обычно не нужно — компонента идёт в составе конфигурации. Если при первой генерации 1С попросит разрешение на подключение внешней компоненты, согласитесь: это штатный модуль, а не стороннее ПО.
На уровне кода картинку штрихкода возвращает функция модуля печати штрихкодов: ей передают строку данных, тип кода (для QR — соответствующее значение перечисления типов штрихкода) и размеры в пикселях. Результат — двоичные данные картинки, которые кладут в поле макета.
Точное имя функции и перечисления зависит от версии БСП. Не выписывайте сигнатуру по памяти — откройте в конфигураторе общий модуль подсистемы печати штрихкодов через глобальный поиск по слову «Штрихкод» и посмотрите актуальный экспортный метод. Так вы избежите ошибки «метод не найден» после обновления.
Двоичные данные картинки удобно хранить не в макете, а формировать на лету при печати: так код всегда соответствует актуальным данным объекта. Если же QR один и тот же (например, ссылка на сайт компании на бейдже), картинку можно один раз положить в макет как статичный рисунок и не вызывать генератор при каждой печати.
Если ваша задача — просто QR для оплаты в типовом счёте, писать код не придётся: всё включается настройкой. С неё и начнём.
QR-код для оплаты в счёте и квитанции
В «1С:Бухгалтерии 8» (БП 3.0) QR-код для оплаты добавляется в печатную форму счёта покупателю без доработок.
- Откройте счёт на оплату и нажмите Печать.
- В окне печатной формы найдите настройки вывода (кнопка настроек над самой формой) и включите добавление QR-кода для оплаты.
- Проверьте, что в карточке вашей организации заполнены банковские реквизиты — номер счёта, БИК, корреспондентский счёт. Из них и собирается платёжный QR.
Без корректных банковских реквизитов организации QR сформируется с ошибкой или не сформируется вовсе — приложение банка его не распознает. Это причина №1, по которой «код есть, а оплата не проходит».
Путь к настройке по конфигурациям различается, порядок действий — нет:
| Конфигурация | Где включить QR для оплаты |
|---|---|
| БП 3.0 | Печатная форма счёта → настройки формы → вывод QR-кода |
| УТ 11, ERP | Печатная форма счёта → настройки → QR-код оплаты |
| УНФ | Печать счёта → добавить QR-код |
Название пункта в разных релизах может отличаться — ориентируйтесь на слово «QR» в настройках печатной формы счёта.
Как вывести QR в свою печатную форму или макет
Если нужен QR не в типовом счёте, а в вашем документе (пропуск, бейдж, ярлык, карточка оборудования), код добавляют в макет через поле картинки.
Порядок для табличного документа (макет СКД или макет объекта):
- В конфигураторе или через расширение конфигурации откройте нужный макет.
- Добавьте в макет область с полем типа «Рисунок» (картинка).
- В модуле печати сформируйте картинку штрихкода с типом QR (см. раздел про генератор выше) и поместите двоичные данные в это поле картинки перед выводом области.
- Выведите область в результирующий табличный документ и отправьте на печать.
Правьте типовые макеты через расширение конфигурации, а не снятием с поддержки. Тогда при обновлении конфигурации ваш QR не затрётся и не придётся переносить доработку руками.
Соотношение сторон QR всегда квадратное. Задавайте полю картинки равные ширину и высоту и режим размещения без искажения пропорций — растянутый по одной оси код сканер не прочитает.
Для размера держите правило: одна «клетка» (модуль) кода должна быть не меньше 3–4 точек принтера. При печати на лазерном принтере 600 dpi это даёт комфортный физический размер даже для плотных кодов; на термопринтере 203 dpi закладывайте QR крупнее.
Печать QR на принтере этикеток
Этикетки и ценники печатают через механизм подключаемого оборудования и редактор шаблонов этикеток.
Шаг 1. Шаблон этикетки. В УТ 11 и Рознице откройте редактор этикеток и ценников (раздел с настройками этикеток), создайте или откройте шаблон. Добавьте элемент «Штрихкод» и в его свойствах выберите тип QR. Привяжите к нему поле-источник: ссылку, артикул или код товара.
Шаг 2. Принтер. Термопринтер этикеток (Zebra, Godex, TSC, «АТОЛ») подключают в разделе администрирования, в настройках подключаемого оборудования, с типом «Принтер этикеток» и штатным драйвером.
Шаг 3. Режим печати — графика. QR печатайте как картинку (графику), а не через встроенные шрифты принтера. Встроенные шрифты термопринтеров рисуют линейные коды, но для двумерного QR надёжнее отправлять готовое изображение из 1С.
Параметры термопечати под QR:
- 🔥 Плотность (нагрев) — средняя-высокая, чтобы модули были чёрными, а не серыми.
- 🐢 Скорость — пониженная; на высокой скорости термоголовка «мажет» мелкие клетки.
- 📏 Разрешение — для плотных кодов берите принтер 300 dpi; 203 dpi хватает для коротких строк.
Оставляйте вокруг кода пустое поле — «тихую зону» шириной минимум в 4 модуля. Если QR вплотную к краю этикетки или к тексту, сканер не находит границы кода.
Практический ориентир по физическому размеру: для сканирования ручным сканером с 10–15 см делайте QR не меньше 12–15 мм по стороне для коротких данных. Длинная ссылка на той же площади даст слишком мелкие клетки — либо сокращайте строку, либо увеличивайте этикетку. Перед запуском тиража напечатайте пробную этикетку и прогоните её через тот сканер, которым будут пользоваться на складе или на кассе: модель сканера и его настройки влияют на минимально читаемый размер не меньше, чем принтер.
Шрифты и внешние компоненты: что реально работает
Частый запрос — «скачать шрифт QR и печатать им, как обычным текстом». Так не выйдет.
Линейный штрихкод (Code39, EAN-13) действительно можно получить шрифтом: каждому символу соответствует набор полос. QR устроен иначе — это двумерная матрица с коррекцией ошибок по Рид-Соломону. Напечатать сканируемый QR шрифтом нельзя: его нужно вычислить генератором, а не «набрать». Поэтому для QR всегда используется компонента-генератор, а не TTF-файл.
Варианты, если встроенного генератора не хватает:
- Внешняя компонента 1С. Штатный путь — компонента из подсистемы печати штрихкодов БСП. Для большинства задач её достаточно.
- Генерация картинки своим кодом. На стороне 1С можно собрать изображение QR сторонней библиотекой и вернуть двоичные данные в поле картинки, но это оправдано только в нетиповых интеграциях.
- Сервис оператора. Для платёжных QR код иногда отдаёт банк или оператор по API — тогда 1С только выводит готовую картинку.
Для обычной печати QR в типовой конфигурации сторонние шрифты и библиотеки не нужны — хватает встроенной компоненты.
Почему QR-код не считывается и как это исправить
Если код напечатался, но сканер или телефон его не берут, причина почти всегда в физике печати, а не в данных.
Перед массовой печатью проверьте один образец на том же принтере и реальном сканере — это дешевле, чем перепечатывать тираж этикеток.
Частые вопросы
Чем QR-код отличается от кода маркировки Честный знак?
Нужна ли отдельная лицензия или модуль для печати QR?
Можно ли напечатать QR на обычном лазерном принтере, а не на термопринтере этикеток?
Почему телефон читает QR, а кассовый сканер — нет?
Как сделать QR для оплаты без доработок?
Источники
- ГОСТ Р 56042-2014 «Стандарты финансовых операций. Двумерные символы штрихкода для осуществления платежей физических лиц»
- Федеральный закон от 22.05.2003 № 54-ФЗ «О применении контрольно-кассовой техники»