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

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

Как вставить QR-код в 1С: способы и пошаговая инструкция

Как вставить QR-код в печатную форму 1С: типовые средства БСП, макет табличного документа, внешние компоненты и сервисы. Пошаговая инструкция и ошибки.

QR-код в 1С чаще всего требуется для счетов на оплату с реквизитами по стандарту ГОСТ Р 56042-2014, для маркировки товаров, ссылок на электронные документы и идентификации печатных форм. В зависимости от конфигурации задача решается либо штатными средствами библиотеки стандартных подсистем (БСП), либо через макет табличного документа, либо с помощью внешних компонент и онлайн-генераторов. Ниже разобраны рабочие способы с конкретными действиями для типовых конфигураций и самописных решений.

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

Определите, какой способ подходит вашей конфигурации

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

Если конфигурация старая (например, «Управление производственным предприятием 1.3») или самописная, штатного механизма может не быть. Тогда остаются варианты: подключить внешнюю компоненту генерации штрихкодов, получать картинку кода из внешнего сервиса по HTTP-запросу или формировать изображение вне 1С и подставлять его в макет.

Маршрут решения

Как выбрать действие

Конфигурация типовая на БСП (УТ 11, ERP, БП 3.0)Используйте общий модуль ГенерацияШтрихкода и доработку макета печатной формы
Конфигурация без БСП, но есть доступ к интернетуФормируйте картинку QR-кода через HTTP-запрос к внешнему генератору и вставляйте в макет
Работа полностью локальная, интернет запрещёнПодключите внешнюю компоненту генерации штрихкодов или формируйте изображение заранее

Способ 1. Штатная генерация через БСП в типовой конфигурации

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

Типовая последовательность доработки печатной формы выглядит так. Откройте конфигуратор, найдите макет нужной печатной формы (обычно в документе или в общих макетах, например «МакетСчетЗаказ»), добавьте в нужную область рисунок типа «Картинка» и задайте ему имя, например «QRКод». Затем в модуле менеджера документа, в процедуре формирования печатной формы, после вывода области присвойте этому рисунку сгенерированное изображение.

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

Обратите внимание: состав процедур и точные имена параметров могут отличаться между версиями БСП. Перед правкой откройте общий модуль в конфигураторе и посмотрите актуальный программный интерфейс в области «ПрограммныйИнтерфейс» — там же обычно есть комментарии с описанием параметров.

Формирование строки данных для платёжного QR-кода

Для счетов на оплату содержимое QR-кода должно соответствовать стандарту кодирования платёжных реквизитов (ГОСТ Р 56042-2014). Строка включает наименование получателя, его ИНН, расчётный счёт, БИК банка, корреспондентский счёт, сумму и назначение платежа — всё в строго заданном формате с разделителями «|».

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

Способ 2. Вставка готовой картинки в макет табличного документа

Если изображение QR-кода формируется вне 1С — дизайнером, сторонней программой маркировки или заранее для фиксированного набора значений — его можно вставить в макет без программной генерации. Откройте макет табличного документа в конфигураторе, выделите ячейку, через меню «Таблица — Рисунки — Вставить рисунок» добавьте объект и укажите картинку из файла или из общей картинки конфигурации.

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

Способ 3. Генерация через внешний сервис по HTTP

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

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

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

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

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

Сканирование кодом с экрана и с распечатки
Норма

Телефон и сканер считывают код с первого раза

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

Код читается через раз или не читается вовсе

Содержимое после сканирования
Норма

Данные полностью совпадают с реквизитами документа

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

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

Внешний вид в PDF и на бумаге
Норма

Квадратный код, ровные края, достаточный размер (от ~2 см)

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

Растянутый, размытый или слишком мелкий код

Типичные ошибки
01
Слишком маленький размер картинки в макете — код не сканируется с бумаги; задавайте явные ширину и высоту и не сжимайте рисунок
02
Кириллица в строке без учёта кодировки — назначение платежа превращается в нечитаемые символы; проверяйте текст после сканирования
03
Правка типового макета напрямую без расширения — изменения теряются при обновлении конфигурации; выносите доработку в расширение
04
Низкий уровень коррекции ошибок при печати на этикетках — потёртости делают код нечитаемым; для этикеток повышайте уровень коррекции

Как сохранить доработку при обновлениях

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

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

Итог

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

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

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

Можно ли вставить QR-код в 1С без программирования?

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

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

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

Как вывести QR-код на этикетку для маркировки?

Используйте макет этикетки в обработке печати этикеток и ценников, добавьте в шаблон поле штрихкода с типом QR. Для кодов маркировки «Честный знак» часто применяется DataMatrix, а не QR — уточните требования вашего товароучётного процесса.

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

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

Пропадёт ли QR-код после обновления конфигурации?

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