Разработка и Конфигурация · 11 мин
QR-код в 1С: как сделать и вывести в документы
Как сделать QR-код в 1С: типовые механизмы БСП, внешние компоненты, вывод в макет и на этикетку, проверка читаемости и типичные ошибки.
QR-код в 1С нужен в трёх типовых ситуациях: печать платёжного QR-кода на счёте покупателю, маркировка товаров и этикеток, а также кодирование ссылок, реквизитов или служебных строк в документах. В зависимости от задачи используются разные механизмы: встроенные средства типовых конфигураций, библиотека стандартных подсистем (БСП) или внешние компоненты и сервисы.
Ключевой момент: сама платформа 1С не содержит отдельной функции «нарисовать QR-код» в языке запросов или встроенном языке по щелчку одной команды. Код формируется программно — либо через готовый программный интерфейс конфигурации, либо через подключаемую компоненту генерации штрихкодов. Поэтому первый шаг — определить, что именно должно быть зашито в код и где он будет отображаться.
Материал ориентирован на пользователей и разработчиков типовых конфигураций (Управление торговлей, Бухгалтерия предприятия, УНФ, ERP), а также на тех, кто дорабатывает собственные решения. Рассмотрены оба пути: без программирования и с добавлением кода.
Что именно вы хотите закодировать: выбор сценария
Прежде чем искать инструмент, определите содержимое кода. От этого зависит и метод, и ограничения. Платёжный QR-код по стандарту СБП формируется по строгому формату строки с реквизитами получателя, суммой и назначением платежа — его нельзя собирать «вручную» произвольным текстом, банк такой код не примет. Код для внутренней маркировки склада, наоборот, может содержать любую строку: артикул, номер партии, ссылку на документ.
Второй вопрос — место вывода. Если код нужен только на экране (например, в форме документа), достаточно поместить картинку в реквизит формы. Если в печатную форму — потребуется область макета с рисунком и программное заполнение. Для этикеток на принтере этикеток обычно используют шаблоны из раздела печати этикеток и ценников, где штрихкод добавляется как элемент шаблона.
Как выбрать способ
Платёжный QR-код на счёте без программирования
В типовых конфигурациях (Бухгалтерия предприятия, Управление нашей фирмой, Управление торговлей актуальных редакций) есть встроенный механизм формирования QR-кода для оплаты счёта. Он работает через сервис 1С и требует, чтобы у организации был заполнен расчётный счёт, а в программе действовала подключённая настройка обмена с банком или сервисом СБП. Код формируется автоматически при печати счёта на оплату.
Порядок включения обычно такой: откройте настройки организации, проверьте корректность банковских реквизитов, затем в разделе, связанном с оплатой или обменом с банком, найдите пункт о приёме оплаты по QR-коду и включите его. После этого в печатной форме счёта появится область с QR-кодом. Точное расположение настройки зависит от конфигурации и релиза, поэтому ориентируйтесь на поиск по слову «QR» в разделе настроек или на документацию к вашей редакции.
- 1Проверьте заполнение ИНН, КПП и расчётного счёта организации
- 2Откройте настройки обмена с банком или приёма платежей и включите оплату по QR-коду
- 3Создайте тестовый счёт покупателю на небольшую сумму
- 4Выведите счёт на печать и убедитесь, что QR-код появился
- 5Отсканируйте код банковским приложением и проверьте, что подставились реквизиты и сумма
Если настройка включена, а код не появляется, чаще всего причина в незаполненных реквизитах, отсутствии активного интернет-подключения к сервису или в том, что печатная форма счёта была изменена и область с кодом удалена из макета.
Генерация QR-кода средствами БСП
Если конфигурация построена на библиотеке стандартных подсистем, в вашем распоряжении общий модуль генерации штрихкодов. В БСП есть функция, формирующая двоичные данные картинки штрихкода по переданной строке; тип кода задаётся параметром, для QR-кода используется соответствующее значение типа штрихкода (в документации БСП это тип QRCode). Результат — картинка в формате PNG, которую можно вывести в табличный документ, макет или сохранить в присоединённые файлы.
Типовой приём выглядит так: формируете структуру параметров (строка данных, тип штрихкода, ширина и высота картинки), вызываете функцию генерации, получаете двоичные данные и помещаете их в объект «Картинка». Затем в табличном документе находите рисунок по имени и присваиваете ему эту картинку. Важно задать достаточный размер картинки — слишком маленький код плохо считывается сканерами.
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Штрихкод = "https://example.com/doc/123";
ПараметрыШтрихкода.ТипКода = 16; // QR-код
ПараметрыШтрихкода.Ширина = 200;
ПараметрыШтрихкода.Высота = 200;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Свойство("ДвоичныеДанные") Тогда
Картинка = Новый Картинка(Результат.ДвоичныеДанные);
ТабДок.Рисунки.QRКод.Картинка = Картинка;
КонецЕсли;
Имена модулей и параметров могут отличаться между версиями БСП, поэтому сверяйте сигнатуру функции в коде вашей конфигурации: откройте общий модуль генерации штрихкодов в конфигураторе и посмотрите экспортные функции.
Внешние компоненты и сервисы как альтернатива
В самописных конфигурациях без БСП или в старых релизах, где функция генерации недоступна, применяют внешние компоненты (Native API или COM), которые устанавливаются на сервере или клиенте и вызываются из кода. Компонента получает строку и возвращает картинку. Такой вариант требует установки компоненты на каждом рабочем месте или на сервере, что усложняет сопровождение.
Ещё один путь — обращение к внешнему HTTP-сервису генерации QR-кодов: программа отправляет строку запросом и получает картинку. Это просто в реализации, но создаёт зависимость от интернета и передаёт данные третьей стороне. Для платёжных реквизитов, персональных данных и коммерчески чувствительной информации такой способ не подходит.
Сравнение способов генерации
Подходит для платёжных кодов на счетах; не требует доработок, но кодирует только оплату по стандарту
Универсальный вариант для любых строк; требует конфигурации на БСП и небольшого кода
Работает в любых конфигурациях; нужна установка и сопровождение на каждом рабочем месте
Быстрый старт без установки; зависит от интернета и не подходит для конфиденциальных данных
Вывод QR-кода в печатную форму и на этикетку
Для табличного макета добавьте в макет рисунок с понятным именем (например, «QRКод») в той области, где код должен печататься. В коде формирования печатной формы после вывода области найдите рисунок через коллекцию рисунков табличного документа и присвоите ему сгенерированную картинку. Учтите, что область с рисунком должна иметь достаточную высоту строки, иначе код обрежется.
Для этикеток и ценников в типовых конфигурациях есть редактор шаблонов. Откройте шаблон этикетки, добавьте поле типа «Штрихкод», выберите тип QR и укажите источник данных — поле с нужной строкой. При печати программа сама сформирует код для каждой этикетки. Это самый простой способ массовой печати кодов без единой строки программирования.
Проверка результата и типичные ошибки
После внедрения обязательно проверьте читаемость кода реальными средствами: камерой смартфона, банковским приложением (для платёжных кодов) и сканером штрихкодов, если он используется на рабочем месте. Проверяйте код после печати на бумаге, а не только на экране: на дешёвых принтерах мелкие модули кода сливаются, и код перестаёт читаться.
Контрольные точки: код распознаётся с первого раза на расстоянии 15–30 см; содержимое после сканирования совпадает с исходной строкой; для платёжного кода банковское приложение показывает правильного получателя и сумму. Если хотя бы один пункт не выполняется, код в эксплуатацию выпускать нельзя.
Как проверить QR-код
Код распознаётся мгновенно, строка совпадает с исходной
Камера долго фокусируется или не видит код — увеличьте размер и контраст
Код читается с распечатки на вашем принтере
Модули сливаются — увеличьте размер кода или смените печать на более качественную
Банковское приложение показывает верные реквизиты и сумму
Ошибка формата или неверные данные — проверьте настройку и реквизиты организации
Строка короткая, код читается легко
В коде сотни символов — модули слишком мелкие, сократите данные
Ограничения и границы самостоятельной работы
Самостоятельно без риска можно: включить типовую настройку платёжного QR-кода, добавить штрихкод в шаблон этикетки, вывести код в печатную форму через готовую функцию БСП. Эти действия обратимы и не затрагивают данные.
К специалисту стоит обратиться, если нужно изменять типовой макет с сохранением возможности обновления конфигурации, встраивать генерацию кода в сложные бизнес-процессы (например, автоматическую маркировку при производстве) или подключать внешние компоненты на сервере. Ошибка в этих местах может нарушить обновление конфигурации или остановить печать документов у всех пользователей.
Что важно запомнить
Платёжный QR-код включается типовой настройкой СБП, произвольные коды генерируются функцией БСП или компонентой и выводятся как картинка в макет. Результат всегда проверяйте сканированием с распечатки, а изменения типовых объектов делайте только на копии базы.
Частые вопросы
Можно ли сделать QR-код в 1С вообще без программирования?
Да, в двух случаях: включение типовой оплаты по QR-коду на счёте и добавление штрихкода типа QR в шаблон этикетки через встроенный редактор. Для вывода произвольного кода в собственную печатную форму без кода не обойтись — потребуется хотя бы минимальная доработка.
Какой тип штрихкода выбрать для QR-кода?
В функциях генерации тип кода задаётся числовым или строковым параметром; для QR-кода в БСП это отдельное значение типа (обычно обозначается как QRCode, числовой код 16). Точное значение смотрите в описании функции в вашей версии конфигурации, так как нумерация может отличаться.
Почему QR-код виден на экране, но не сканируется с распечатки?
Чаще всего причина в малом размере кода, низком качестве печати или отсутствии свободной зоны вокруг него. Увеличьте картинку, проверьте плотность печати принтера и убедитесь, что вокруг кода есть светлые поля без текста и линий.
Можно ли закодировать в QR-код ссылку на документ 1С?
Да, можно закодировать любую строку, включая навигационную ссылку или GUID документа. Однако открыть такую ссылку сможет только приложение, которое знает, как её обработать; обычный телефон покажет просто текст. Для обмена с внешними пользователями лучше кодировать обычный веб-адрес.
Безопасно ли формировать QR-коды через бесплатные онлайн-сервисы?
Для нейтральных данных (ссылка на сайт, адрес) — допустимо. Для платёжных реквизитов, персональных данных и внутренней информации компании — нет: строка передаётся стороннему серверу, и вы не контролируете её дальнейшее использование. Используйте локальную генерацию внутри 1С.
Что делать, если типовая кнопка QR-кода на счёте не появляется?
Проверьте три вещи: заполненность банковских реквизитов организации, включённую настройку приёма оплаты по QR-коду и актуальность релиза конфигурации — в старых редакциях механизма может не быть. Если печатная форма счёта дорабатывалась, убедитесь, что область с кодом не была удалена из макета.