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

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

Как в 1С добавить штрихкод в счет на оплату

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

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

Путь зависит от того, какой код нужен. Одномерный штрихкод (EAN-13, Code 128) с номером счета добавляется проще всего — в типовых конфигурациях уже есть механизм вывода штрихкодов в печатные формы. Двумерный QR-код для оплаты требует формирования специальной платежной строки и либо встроенной функциональности конфигурации, либо доработки макета.

Ниже разобраны оба сценария: от простого включения штрихкода в макете до вывода QR-кода для оплаты по реквизитам. Отдельно рассмотрены проверка результата сканером, типичные ошибки и границы, за которыми лучше привлечь специалиста по 1С.

Определите, какой штрихкод нужен на счете

Прежде чем менять макет, важно понять назначение кода, потому что от этого зависят и тип кода, и способ его формирования. Одномерный штрихкод (обычно Code 128 или EAN-13) содержит номер и дату документа и используется для внутреннего документооборота: бухгалтер сканирует бумажный счет, и система находит его в базе. QR-код на счете — это платежный код: он содержит реквизиты получателя, сумму и назначение платежа, и клиент оплачивает счет, отсканировав его приложением банка.

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

Сравнение вариантов

Одномерный штрихкод (Code 128, EAN-13)

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

QR-код для оплаты

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

Штрихкод товара в табличной части

Нужен, если счет используется как подборочный лист для склада. Выводится колонкой в таблице товаров, а не в шапке.

Способ 1: включить штрихкод через изменение макета в пользовательском режиме

В конфигурациях на управляемых формах (БП 3.0, УТ 11, КА 2, ERP) макеты печатных форм можно менять без конфигуратора. Откройте сформированный счет на печать, затем перейдите в меню «Ещё» и выберите «Изменить макет» (в некоторых версиях — «Перейти к макету» или команда доступна из формы настройки печатной формы). Откроется табличный документ макета, где можно добавлять области, картинки и параметры.

Однако есть важное ограничение: пользовательское изменение макета позволяет двигать и добавлять статичные элементы, но вывод штрихкода как динамической картинки требует, чтобы в модуле формирования печатной формы был код, который эту картинку формирует. Если типовая конфигурация уже выводит штрихкод в других документах (например, в «Реализации товаров и услуг»), проще воспользоваться готовым механизмом, чем изобретать свой. Поэтому первый шаг — проверить, нет ли в вашей конфигурации типовой настройки вывода штрихкода.

Способ 2: добавить штрихкод через конфигуратор

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

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

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

Имена модулей и функций зависят от версии библиотеки стандартных подсистем в вашей конфигурации — сверяйтесь с существующим кодом, где штрихкод уже выводится (например, печать этикеток или TORG-12 с штрихкодом). Копирование работающего вызова из типового кода надежнее, чем написание с нуля.

Способ 3: вывести QR-код для оплаты счета

Для QR-кода оплаты действуйте в два этапа. Первый — сформировать платежную строку. Она включает обязательные поля: наименование получателя, ИНН, расчетный счет, банк, БИК, корсчет, а также сумму и назначение платежа. Поля объединяются в строку с разделителями по правилам стандарта. В ряде конфигураций есть типовая функциональность формирования QR-кода для платежных документов — проверьте настройки печатных форм и подключенные подсистемы обмена с банками.

Второй этап — вывести полученную строку как QR-код в макет счета тем же механизмом, что и одномерный штрихкод, но с типом кода QR. Обратите внимание на размер: QR-код с длинной платежной строкой содержит много модулей, и при слишком маленькой картинке телефон его не считает. Практический минимум — около 3–4 см по стороне на печатном листе, с белым полем вокруг кода.

Проверка результата перед отправкой счета клиентам

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

Для QR-кода оплаты проверка строже: отсканируйте код приложением банка и сверьте каждое поле на экране подтверждения — получателя, ИНН, счет, сумму, назначение. Проверьте чтение кода с распечатки при разном качестве печати: бледный тонер и мелкий масштаб — самые частые причины нечитаемого QR. Также убедитесь, что код не перекрывается печатью организации и не попадает на сгиб при стандартном способе складывания счета в конверт с окном.

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

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

Сканирование одномерного штрихкода
Норма

Считанная строка полностью совпадает с номером/данными документа

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

Обрезанные символы, лишние знаки, код не читается

QR-код в банковском приложении
Норма

Приложение распознает платеж, все реквизиты и сумма верны

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

Код читается как обычный текст или реквизиты не совпадают

Печатный экземпляр
Норма

Код читается с бумаги при обычном качестве печати

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

Читается только с экрана, с бумаги — нет

Типичные ошибки и ограничения

Самая частая ошибка — добавить в макет картинку, но не добавить код, который её заполняет: печатная форма выходит с пустым местом или рамкой. Вторая — несоответствие типа штрихкода данным: например, EAN-13 принимает только цифры строго определенной длины, и попытка зашить туда номер документа с буквами и слэшами даст ошибку или пустую картинку. Для произвольных строк используйте Code 128 или QR.

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

Типичные ошибки
01
Картинка в макете без кода заполнения — на печати пустое место вместо штрихкода
02
EAN-13 для строки с буквами — код не формируется, подходит только Code 128 или QR
03
Слишком маленький QR-код — телефон не считывает его с распечатки
04
Правка типового модуля печати без переноса во внешнюю печатную форму — доработка теряется при обновлении
05
Отсутствие проверки в банковском приложении — клиенты не могут оплатить по QR

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

Итог

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

Штрихкод добавляется в макет печатной формы счета и заполняется кодом через компоненту печати штрихкодов. Для внутреннего учета достаточно Code 128 с номером документа, для оплаты нужен QR с платежной строкой по стандарту. Обязательно проверяйте чтение кода с распечатки, а QR — еще и в реальном банковском приложении. Изменения безопаснее делать через внешнюю печатную форму.

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

Можно ли добавить штрихкод в счет без программирования?

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

Почему штрихкод виден на экране, но не печатается?

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

Какой тип штрихкода выбрать для номера счета?

Code 128 — он принимает цифры и буквы, компактен и хорошо читается любым сканером. EAN-13 подходит только для цифровых кодов фиксированной длины и для номеров документов обычно неудобен.

Обязателен ли QR-код для оплаты на счете?

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

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

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

Штрихкод не формируется у части пользователей. В чем причина?

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