Документы и Печать · 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):
- Откройте раздел «Администрирование» → «Обмен электронными документами» → «Обмен с банками» и убедитесь, что обмен с банком настроен.
- Проверьте в карточке банковского счёта организации корректность БИК, номера счёта и наименования получателя.
- Сформируйте документ «Счёт на оплату покупателю», заполните сумму.
- Нажмите «Печать» → «Счёт на оплату» — при активной настройке QR-код появится в печатной форме автоматически.
Если код не появился, проверьте, не выключена ли опция в настройках печатной формы, и обновите конфигурацию — поддержка СБП в типовых решениях добавлялась постепенно, и в старых релизах её может не быть.
Вывод QR-кода в макет печатной формы
Для произвольных данных QR-код вставляется в табличный документ как рисунок. Общая схема такая: программно получаем картинку с кодом (двоичные данные), добавляем в макет область с рисунком и при формировании печатной формы подставляем картинку в эту область.
Типовая последовательность доработки:
- В конфигураторе откройте макет нужной печатной формы (общий макет или макет документа, тип «Табличный документ»).
- Добавьте в нужную область рисунок: меню «Таблица» → «Рисунки» → «Вставить рисунок». Установите для рисунка имя, например «QRКод», и снимите привязку к конкретной картинке — она будет подставляться программно.
- В модуле менеджера документа или в общем модуле печати найдите процедуру формирования печатной формы.
- После вывода области присвойте рисунку картинку:
ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка(ДвоичныеДанныеQR); - Обновите конфигурацию базы данных и проверьте печать на тестовом документе.
Ключевой момент — источник двоичных данных картинки. Самых распространённых варианта два: внешняя компонента генерации штрихкодов и обращение к внешнему сервису генерации QR.
// Пример: подстановка картинки QR-кода в рисунок макета
ДвоичныеДанныеQR = ПолучитьQRКод(СтрокаДанных); // функция генерации
Если ДвоичныеДанныеQR <> Неопределено Тогда
ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка(ДвоичныеДанныеQR);
Иначе
ОбластьМакета.Рисунки.QRКод.Картинка = Новый Картинка; // пустая картинка
КонецЕсли;Способы генерации картинки QR-кода
Платформа 1С не содержит встроенной функции «нарисовать QR-код», поэтому картинку получают извне. Сравним основные подходы.
Сравнение вариантов генерации QR
Компонента устанавливается на сервере или клиенте, работает офлайн, быстро генерирует картинку. Требует установки и сопровождения, зависит от разрядности платформы.
Картинка запрашивается по HTTP через HTTPСоединение. Не требует установки компонент, но нужен стабильный интернет и доверие к сервису — данные уходят наружу.
В конфигурациях на Библиотеке стандартных подсистем есть механизмы генерации штрихкодов и QR для типовых задач. Работают из коробки, но покрывают только предусмотренные сценарии.
Для закрытого контура без интернета подходит только локальный вариант — внешняя компонента или типовая подсистема. Для разовых задач и пилотов проще всего использовать HTTP-запрос к генератору: строка с данными кодируется в URL, в ответ приходит PNG или SVG.
При использовании внешнего сервиса учитывайте конфиденциальность: не передавайте в открытые генераторы персональные данные, суммы и реквизиты, если не уверены в политике обработки данных сервиса.
Печать QR-кодов на этикетках и ценниках
В торговых конфигурациях печать этикеток выполняется через обработку «Печать этикеток и ценников» (в УТ 11 — раздел «Закупки» или «CRM и маркетинг» в зависимости от настроек). Шаблон этикетки редактируется встроенным редактором: туда можно добавить поле штрихкода, а при доработке — и QR-код с произвольными данными, например с артикулом и номером партии.
При печати на принтер этикеток (Zebra, TSC, АТОЛ) есть два пути. Первый — печать этикетки как обычного табличного документа через драйвер Windows: просто, но качество и скорость ограничены. Второй — отправка команд на языке принтера (ZPL, TSPL) напрямую: принтер сам рисует QR-код по своей команде, что даёт чёткое изображение и высокую скорость при больших тиражах.
Для маркированных товаров коды DataMatrix печатаются из подсистемы маркировки: в карточке документа маркировки или из обработки «Печать этикеток и ценников» с шаблоном для кодов маркировки. Сам код заказывается в «Честном ЗНАКе» через встроенный обмен — рисовать его самостоятельно нельзя.
- 1Откройте обработку «Печать этикеток и ценников» и выберите назначение — товары или произвольные данные.
- 2Откройте редактор шаблона этикетки и добавьте поле штрихкода или рисунок для QR.
- 3Задайте размер этикетки под ширину ленты вашего принтера и проверьте поля.
- 4Напечатайте одну пробную этикетку и отсканируйте код сканером или смартфоном.
- 5Только после успешной проверки запускайте печать всей партии.
Проверка результата и типичные ошибки
После настройки обязательно проверьте печатную форму до массового использования. Контрольные точки:
Как проверить результат
Сканер или смартфон мгновенно считывает строку, данные совпадают с ожидаемыми
Код не читается, считывается частично или с искажёнными символами
Модули кода чёткие, без размытия и белых полос, есть светлое поле вокруг кода
Блёклый код, полосы от принтера, код упирается в край области
Сторона кода не меньше примерно 20–25 мм на обычной бумаге
Код мелкий, читается только вблизи или не читается вовсе
Банковское приложение подставляет верного получателя и сумму
Ошибка формата, неверные реквизиты или пустые поля
Частые ошибки при самостоятельной доработке:
Если доработка ведётся в типовой конфигурации на поддержке, добавляйте изменения через расширение конфигурации, а не прямое изменение — иначе при обновлении правки будут потеряны или заблокируют обновление.
Ограничения и когда привлекать разработчика
Самостоятельно, без программирования, реально настроить: типовой QR оплаты по СБП, печать этикеток со штатными шаблонами, печать кодов маркировки. Всё это делается настройками в пользовательском режиме.
Без разработчика не обойтись, если нужно: вывести QR с произвольными данными в собственную печатную форму, подключить внешнюю компоненту генерации, организовать печать на принтере этикеток через язык команд, или если конфигурация старая и типовых механизмов в ней нет. Также помощь специалиста потребуется при работе в серверном режиме — компонента должна быть установлена и разрешена на сервере 1С, а не на клиентском компьютере.
Что важно запомнить
Типовые задачи (оплата по СБП, маркировка, этикетки) решаются настройками без доработок. Произвольный QR вставляется в макет как рисунок, картинку даёт внешняя компонента или сервис. Перед массовой печатью всегда проверяйте код сканером и следите за размером и тихой зоной.
Частые вопросы
Можно ли напечатать QR-код в 1С без доработки конфигурации?
Да, если речь о типовых сценариях: оплата по СБП в свежих релизах «Бухгалтерии» и «Управления торговлей», коды маркировки, штатные этикетки. Для произвольного QR в собственной печатной форме без доработки макета и кода не обойтись.
Почему QR-код печатается, но не сканируется?
Чаще всего причины: слишком маленький размер, размытая печать, отсутствие светлого поля вокруг кода или повреждение картинки при масштабировании в макете. Увеличьте область рисунка, проверьте качество печати принтера и оставьте отступы вокруг кода.
Чем QR-код отличается от DataMatrix в маркировке?
Это разные стандарты двумерных кодов. Для «Честного ЗНАКа» требуется именно DataMatrix, и его нельзя заменить QR-кодом — кассы и сканеры системы маркировки работают с DataMatrix. Коды DataMatrix формируются подсистемой маркировки конфигурации.
Работает ли генерация QR через веб-сервис в файловой базе без интернета?
Нет, обращение к внешнему сервису требует доступа в интернет с компьютера или сервера, где выполняется код. Для закрытого контура используйте локальную внешнюю компоненту генерации штрихкодов.
Куда вставлять код доработки, чтобы не сломать обновления?
Используйте механизм расширений конфигурации: макет и процедуры печати добавляются в расширение, типовая конфигурация остаётся на полной поддержке. Прямое изменение типовых модулей приведёт к проблемам при обновлении.
Можно ли печатать QR на обычном офисном принтере?
Да, для документов на бумаге формата A4 обычного лазерного или струйного принтера достаточно — важны только чёткость печати и достаточный размер кода. Принтер этикеток нужен для самоклеящихся этикеток и больших тиражей.