Разработка и Конфигурация · 8 мин
Как изменить QR-код в 1С: практическое руководство
Как изменить QR-код в 1С: где хранится шаблон, как поправить печатную форму, обработку и код генерации. Пошаговые инструкции, проверка результата, ошибки.
QR-код в 1С чаще всего встречается в трёх местах: на печатных формах документов (счета, УПД, чеки, этикетки), в отчётах и в специальных обработках маркировки. Способ изменения зависит от того, как именно код формируется: типовым макетом конфигурации, внешней печатной формой или программным кодом на встроенном языке. Прежде чем что-то менять, нужно точно определить, откуда берётся текущий QR-код — от этого зависят и инструмент, и риски.
Типичные причины изменения: поменялись реквизиты в строке оплаты, нужно вывести другую ссылку, изменился размер или расположение картинки на бланке, либо требуется новый формат данных (например, переход на другой стандарт платёжного QR). Во всех случаях логика одна: найти источник данных, изменить строку содержимого или макет, проверить читаемость кода сканером.
Определите, откуда берётся QR-код
Первый шаг — локализация. Откройте печатную форму, на которой выводится QR-код, и выясните, какой объект её формирует. В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) печатные формы документов лежат в менеджере печати объекта, а сам QR обычно формируется процедурой в общем модуле и вставляется в табличный документ как картинка.
Практический способ поиска: в конфигураторе выполните глобальный поиск (Ctrl+Shift+F) по словам «QR», «ДвумерныйКод», «Штрихкод» по всей конфигурации. Найдутся функции формирования и места вывода в макеты. Если конфигурация доработана внешними печатными формами, проверьте справочник «Дополнительные отчеты и обработки» — возможно, QR выводит именно внешняя форма, и править типовой макет бессмысленно.
Ищите макет в менеджере печати документа и функцию генерации в общем модуле
Правьте модуль внешней обработки, типовой макет не влияет
Содержимое задаётся шаблоном этикетки в настройках
Изменение QR-кода в типовой печатной форме
Если QR формируется типовым механизмом, содержимое строки обычно собирается в отдельной функции — например, для платёжных кодов это строка по стандарту, где последовательно перечислены получатель, ИНН, счёт, сумма и назначение. Найдите эту функцию через глобальный поиск и посмотрите, какие параметры в неё передаются и как склеивается итоговая строка.
Изменения в типовых объектах делайте аккуратно. Если конфигурация на поддержке, прямое редактирование общего модуля включит режим изменений и усложнит обновления. Предпочтительные варианты: использовать расширение конфигурации, где переопределяется нужная функция, либо заменить печатную форму внешней. Расширение — самый безопасный путь: типовой код не трогается, при обновлении доработка сохраняется.
Правка содержимого строки QR-кода
Содержимое QR — это обычная строка, которую функция преобразует в двумерный код. Чтобы изменить данные, найдите место сборки строки и скорректируйте её: замените реквизиты, добавьте поле, поменяйте разделители. Для платёжных QR важно строго соблюдать формат: порядок полей, разделители и кодировку — иначе банковское приложение не распознает код.
Пример типичного фрагмента формирования строки и картинки в коде 1С:
СтрокаQR = "ST00012|Name=ООО Ромашка|PersonalAcc=40702810100000000001"
+ "|BankName=ПАО Банк|BIC=044525225|CorrespAcc=30101810400000000225"
+ "|Sum=" + Формат(Сумма * 100, "ЧГ=");
ДанныеQR = ГенерацияШтрихкода.ДанныеQRКода(СтрокаQR, 0, 190);
КартинкаQR = Новый Картинка(ДанныеQR);
ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQR;
Обратите внимание на параметры генерации: уровень коррекции ошибок и размер. Увеличение уровня коррекции делает код устойчивее к повреждениям при печати, но увеличивает плотность рисунка. Слишком маленький размер картинки на макете — частая причина того, что код не читается, хотя данные верны.
ДанныеQR = ГенерацияШтрихкода.ДанныеQRКода(СтрокаДанных, УровеньКоррекции, Размер);Изменение QR-кода в макете и внешней печатной форме
Если нужно поменять не содержимое, а оформление — расположение, размер, подпись под кодом, — работайте с макетом. Откройте макет печатной формы в конфигураторе: QR обычно представлен именованным рисунком в табличном документе. Можно переместить его, изменить размер рамки, добавить рядом текстовую область с расшифровкой.
Для внешней печатной формы порядок такой: выгрузите обработку из справочника дополнительных отчётов и обработок на диск, откройте в конфигураторе, внесите правки в модуль и макет, загрузите обратно. Проверьте, что в сведениях внешней обработки корректно указаны назначение и команды печати — иначе форма перестанет появляться в меню «Печать» документа.
- 1Найдите источник QR: типовой макет, внешняя форма или обработка
- 2Сделайте резервную копию базы или выгрузите обработку
- 3Измените строку данных или макет в конфигураторе либо через расширение
- 4Сформируйте печатную форму на тестовом документе
- 5Отсканируйте QR камерой телефона или сканером и сверьте данные
QR-код на этикетках и в маркировке
В торговых конфигурациях QR на ценниках и этикетках задаётся шаблоном. Откройте настройки шаблона этикетки (обычно в разделе складского или торгового учёта, «Шаблоны этикеток и ценников») — там в редакторе можно добавить или изменить поле штрихкода, выбрать тип «QR-код» и указать, какие данные в него попадают: номенклатурный код, ссылка, произвольная строка с параметрами.
В задачах маркировки («Честный знак» и аналогичные) содержимое кодов строго регламентировано, и менять его произвольно нельзя — код формируется по данным системы маркировки. Здесь можно менять только оформление печати: размер, положение, количество на листе. Вмешательство в содержимое Data Matrix или QR маркировки сделает товар непригодным к продаже.
Проверка результата и типичные ошибки
После правки обязательно проверьте код на реальной печати, а не только на экране: принтеры с низким качеством печати «размывают» мелкие QR. Отсканируйте код минимум двумя инструментами — камерой телефона и рабочим сканером. Сверьте расшифрованную строку с ожидаемой посимвольно: лишний пробел или неверный разделитель делают код бесполезным, хотя визуально он выглядит нормально.
Как проверить результат
Строка расшифровывается полностью и совпадает с заданной
Код не читается или данные обрезаны
Код читается сканером с распечатки
На экране читается, с бумаги — нет
Приложение подставляет все реквизиты и сумму
Ошибка формата или пустые поля
FAQ
Можно ли изменить QR-код без конфигуратора?
Частично. Шаблоны этикеток и ценников редактируются в пользовательском режиме через встроенный редактор шаблонов. Содержимое платёжного QR в типовых формах и код внешних обработок без конфигуратора изменить нельзя — нужен доступ к макету и модулю.
Что делать, если QR перестал печататься после обновления?
Проверьте, не затёрло ли обновление доработку в типовом модуле — так бывает при прямом редактировании без расширения. Восстановите изменения и перенесите их в расширение конфигурации, чтобы ситуация не повторилась.
Как увеличить читаемость QR на печати?
Увеличьте размер картинки в макете, поднимите уровень коррекции ошибок при генерации и убедитесь, что принтер печатает без размытия. Также сократите длину строки данных: чем меньше символов, тем крупнее элементы кода при том же размере.
Можно ли вывести QR со ссылкой на сайт в счёте?
Да. В функцию генерации вместо платёжной строки передайте обычный URL, а в макете вставьте картинку в нужное место. Проверьте, что ссылка короткая и ведёт на доступный ресурс — длинные адреса с параметрами делают код плотным и плохо читаемым.
Где искать функцию генерации QR в типовой конфигурации?
Используйте глобальный поиск в конфигураторе по словам «QRКод», «ДанныеQRКода», «ДвумерныйКод». В типовых решениях генерация обычно вынесена в общий модуль работы со штрихкодами, а вызов — в модуле менеджера печати документа.
Что важно запомнить
Сначала определите источник QR-кода, затем правьте строку данных или макет — желательно через расширение или внешнюю форму, не трогая типовой код. Перед изменениями делайте резервную копию, после — проверяйте читаемость кода сканером на распечатке. Содержимое фискальных кодов и кодов маркировки менять нельзя.