Печать QR-кодов в 1С: от генерации до готовой этикетки

· 9 мин

Содержание

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-код для оплаты добавляется в печатную форму счёта покупателю без доработок.

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

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

Путь к настройке по конфигурациям различается, порядок действий — нет:

КонфигурацияГде включить QR для оплаты
БП 3.0Печатная форма счёта → настройки формы → вывод QR-кода
УТ 11, ERPПечатная форма счёта → настройки → QR-код оплаты
УНФПечать счёта → добавить QR-код

Название пункта в разных релизах может отличаться — ориентируйтесь на слово «QR» в настройках печатной формы счёта.

Как вывести QR в свою печатную форму или макет

Если нужен QR не в типовом счёте, а в вашем документе (пропуск, бейдж, ярлык, карточка оборудования), код добавляют в макет через поле картинки.

Порядок для табличного документа (макет СКД или макет объекта):

  1. В конфигураторе или через расширение конфигурации откройте нужный макет.
  2. Добавьте в макет область с полем типа «Рисунок» (картинка).
  3. В модуле печати сформируйте картинку штрихкода с типом QR (см. раздел про генератор выше) и поместите двоичные данные в это поле картинки перед выводом области.
  4. Выведите область в результирующий табличный документ и отправьте на печать.

Правьте типовые макеты через расширение конфигурации, а не снятием с поддержки. Тогда при обновлении конфигурации ваш 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
Выполнено: 0 / 6

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

Чем QR-код отличается от кода маркировки Честный знак?
Код маркировки — это Data Matrix, другая символика. QR и Data Matrix визуально похожи, но не взаимозаменяемы: код маркировки печатается своим механизмом и должен пройти проверку в ГИС МТ, QR для этого не подходит.
Нужна ли отдельная лицензия или модуль для печати QR?
Нет. В типовых конфигурациях на БСП компонента штрихкодирования уже входит в поставку. Отдельно докупать ничего не нужно — при первом вызове достаточно разрешить подключение внешней компоненты.
Можно ли напечатать QR на обычном лазерном принтере, а не на термопринтере этикеток?
Да. QR в табличном документе печатается на любом принтере как картинка. Термопринтер нужен только для рулонных самоклеящихся этикеток.
Почему телефон читает QR, а кассовый сканер — нет?
Чаще всего из-за размера и контраста: камера телефона терпимее к мелким и бледным кодам. Увеличьте физический размер, поднимите плотность печати и проверьте тихую зону вокруг кода.
Как сделать QR для оплаты без доработок?
В счёте на оплату включите вывод QR-кода в настройках печатной формы и заполните банковские реквизиты организации. Код соберётся автоматически по платёжному стандарту.

Источники

  • ГОСТ Р 56042-2014 «Стандарты финансовых операций. Двумерные символы штрихкода для осуществления платежей физических лиц»
  • Федеральный закон от 22.05.2003 № 54-ФЗ «О применении контрольно-кассовой техники»