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

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

Как напечатать QR-код в 1С: практическое руководство

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

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

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

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

Где в 1С применяются QR-коды и как это влияет на способ печати

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

  • Оплата по СБП — QR-код с реквизитами платежа на счетах и актах. В типовых конфигурациях реализовано штатно.
  • Маркировка «Честный ЗНАК» — коды DataMatrix, формируются подсистемой маркировки, печатаются на принтерах этикеток.
  • Этикетки и ценники — штрихкоды и QR-коды для внутреннего учёта, печать через «Печать этикеток и ценников».
  • Произвольные данные — ссылки, номера документов, строки для инвентаризации. Требуется доработка макета и кода.

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

Печать QR-кода оплаты в типовых конфигурациях

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

Порядок действий в «1С:Бухгалтерии 8» (ред. 3.0):

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

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

Вывод QR-кода в макет печатной формы

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

Типовая последовательность доработки:

  1. В конфигураторе откройте макет нужной печатной формы (общий макет или макет документа, тип «Табличный документ»).
  2. Добавьте в нужную область рисунок: меню «Таблица» → «Рисунки» → «Вставить рисунок». Установите для рисунка имя, например «QRКод», и снимите привязку к конкретной картинке — она будет подставляться программно.
  3. В модуле менеджера документа или в общем модуле печати найдите процедуру формирования печатной формы.
  4. После вывода области присвойте рисунку картинку: ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка(ДвоичныеДанныеQR);
  5. Обновите конфигурацию базы данных и проверьте печать на тестовом документе.

Ключевой момент — источник двоичных данных картинки. Самых распространённых варианта два: внешняя компонента генерации штрихкодов и обращение к внешнему сервису генерации QR.

bsl
// Пример: подстановка картинки QR-кода в рисунок макета
ДвоичныеДанныеQR = ПолучитьQRКод(СтрокаДанных); // функция генерации
Если ДвоичныеДанныеQR <> Неопределено Тогда
    ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка(ДвоичныеДанныеQR);
Иначе
    ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка; // пустая картинка
КонецЕсли;

Способы генерации картинки QR-кода

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

Сравнение вариантов генерации QR

Внешняя компонента (Native API)

Компонента устанавливается на сервере или клиенте, работает офлайн, быстро генерирует картинку. Требует установки и сопровождения, зависит от разрядности платформы.

Веб-сервис генерации QR

Картинка запрашивается по HTTP через HTTPСоединение. Не требует установки компонент, но нужен стабильный интернет и доверие к сервису — данные уходят наружу.

Типовые подсистемы БСП

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

Для закрытого контура без интернета подходит только локальный вариант — внешняя компонента или типовая подсистема. Для разовых задач и пилотов проще всего использовать HTTP-запрос к генератору: строка с данными кодируется в URL, в ответ приходит PNG или SVG.

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

Печать QR-кодов на этикетках и ценниках

В торговых конфигурациях печать этикеток выполняется через обработку «Печать этикеток и ценников» (в УТ 11 — раздел «Закупки» или «CRM и маркетинг» в зависимости от настроек). Шаблон этикетки редактируется встроенным редактором: туда можно добавить поле штрихкода, а при доработке — и QR-код с произвольными данными, например с артикулом и номером партии.

При печати на принтер этикеток (Zebra, TSC, АТОЛ) есть два пути. Первый — печать этикетки как обычного табличного документа через драйвер Windows: просто, но качество и скорость ограничены. Второй — отправка команд на языке принтера (ZPL, TSPL) напрямую: принтер сам рисует QR-код по своей команде, что даёт чёткое изображение и высокую скорость при больших тиражах.

Для маркированных товаров коды DataMatrix печатаются из подсистемы маркировки: в карточке документа маркировки или из обработки «Печать этикеток и ценников» с шаблоном для кодов маркировки. Сам код заказывается в «Честном ЗНАКе» через встроенный обмен — рисовать его самостоятельно нельзя.

Порядок действий для печати этикетки с QR
  1. 1
    Откройте обработку «Печать этикеток и ценников» и выберите назначение — товары или произвольные данные.
  2. 2
    Откройте редактор шаблона этикетки и добавьте поле штрихкода или рисунок для QR.
  3. 3
    Задайте размер этикетки под ширину ленты вашего принтера и проверьте поля.
  4. 4
    Напечатайте одну пробную этикетку и отсканируйте код сканером или смартфоном.
  5. 5
    Только после успешной проверки запускайте печать всей партии.

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

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

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

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

Сканирование кода
Норма

Сканер или смартфон мгновенно считывает строку, данные совпадают с ожидаемыми

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

Код не читается, считывается частично или с искажёнными символами

Качество печати
Норма

Модули кода чёткие, без размытия и белых полос, есть светлое поле вокруг кода

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

Блёклый код, полосы от принтера, код упирается в край области

Размер кода
Норма

Сторона кода не меньше примерно 20–25 мм на обычной бумаге

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

Код мелкий, читается только вблизи или не читается вовсе

Содержимое платёжного QR
Норма

Банковское приложение подставляет верного получателя и сумму

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

Ошибка формата, неверные реквизиты или пустые поля

Частые ошибки при самостоятельной доработке:

Типичные ошибки
01
Вставка кода в виде текста вместо картинки — в табличном документе QR существует только как рисунок, текстовое поле его не отобразит.
02
Слишком маленький размер рисунка в макете — код физически не считывается сканером, увеличьте область минимум до 2–3 см.
03
Отсутствие тихой зоны (светлой рамки) вокруг кода — сканеры теряют границы кода, оставьте отступы в макете.
04
Передача в QR строки в неправильной кодировке — кириллица считывается как «кракозябры», проверяйте UTF-8.
05
Печать без пробного сканирования — ошибка обнаруживается у клиента, а не у вас.

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

Ограничения и когда привлекать разработчика

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

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

Итог

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

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

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

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

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

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

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

Чем QR-код отличается от DataMatrix в маркировке?

Это разные стандарты двумерных кодов. Для «Честного ЗНАКа» требуется именно DataMatrix, и его нельзя заменить QR-кодом — кассы и сканеры системы маркировки работают с DataMatrix. Коды DataMatrix формируются подсистемой маркировки конфигурации.

Работает ли генерация QR через веб-сервис в файловой базе без интернета?

Нет, обращение к внешнему сервису требует доступа в интернет с компьютера или сервера, где выполняется код. Для закрытого контура используйте локальную внешнюю компоненту генерации штрихкодов.

Куда вставлять код доработки, чтобы не сломать обновления?

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

Можно ли печатать QR на обычном офисном принтере?

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