Документы и Печать · 11 мин
Как в 1С добавить штрихкод в счет на оплату
Пошаговая инструкция: как добавить штрихкод в счет в 1С — настройка макета, подключение компоненты печати, типовые и альтернативные способы, проверка результата.
Штрихкод на счете на оплату чаще всего нужен для двух задач: ускорения оплаты через банковское приложение (QR-код по ГОСТ Р 56042-2014) и автоматической идентификации документа при сканировании бумажного экземпляра. В типовых конфигурациях 1С («Бухгалтерия предприятия», «Управление торговлей», «Комплексная автоматизация») нет отдельной кнопки «добавить штрихкод», но задача решается штатными средствами — через макет печатной формы и компоненту печати штрихкодов.
Путь зависит от того, какой код нужен. Одномерный штрихкод (EAN-13, Code 128) с номером счета добавляется проще всего — в типовых конфигурациях уже есть механизм вывода штрихкодов в печатные формы. Двумерный QR-код для оплаты требует формирования специальной платежной строки и либо встроенной функциональности конфигурации, либо доработки макета.
Ниже разобраны оба сценария: от простого включения штрихкода в макете до вывода QR-кода для оплаты по реквизитам. Отдельно рассмотрены проверка результата сканером, типичные ошибки и границы, за которыми лучше привлечь специалиста по 1С.
Определите, какой штрихкод нужен на счете
Прежде чем менять макет, важно понять назначение кода, потому что от этого зависят и тип кода, и способ его формирования. Одномерный штрихкод (обычно Code 128 или EAN-13) содержит номер и дату документа и используется для внутреннего документооборота: бухгалтер сканирует бумажный счет, и система находит его в базе. QR-код на счете — это платежный код: он содержит реквизиты получателя, сумму и назначение платежа, и клиент оплачивает счет, отсканировав его приложением банка.
Если цель — оплата по QR, учтите, что строка внутри кода должна соответствовать стандарту, который принимают банковские приложения (формат на базе ГОСТ Р 56042-2014). Просто «зашить» в QR произвольный текст недостаточно — банк его не распознает как платеж. Для внутреннего штрихкода таких ограничений нет: достаточно, чтобы сканер читал номер документа.
Сравнение вариантов
Подходит для внутренней идентификации документа сканером. Ограничение: не подходит для оплаты через банковское приложение.
Позволяет клиенту оплатить счет из банковского приложения. Требует формирования платежной строки по стандарту и проверки в реальном банковском приложении.
Нужен, если счет используется как подборочный лист для склада. Выводится колонкой в таблице товаров, а не в шапке.
Способ 1: включить штрихкод через изменение макета в пользовательском режиме
В конфигурациях на управляемых формах (БП 3.0, УТ 11, КА 2, ERP) макеты печатных форм можно менять без конфигуратора. Откройте сформированный счет на печать, затем перейдите в меню «Ещё» и выберите «Изменить макет» (в некоторых версиях — «Перейти к макету» или команда доступна из формы настройки печатной формы). Откроется табличный документ макета, где можно добавлять области, картинки и параметры.
Однако есть важное ограничение: пользовательское изменение макета позволяет двигать и добавлять статичные элементы, но вывод штрихкода как динамической картинки требует, чтобы в модуле формирования печатной формы был код, который эту картинку формирует. Если типовая конфигурация уже выводит штрихкод в других документах (например, в «Реализации товаров и услуг»), проще воспользоваться готовым механизмом, чем изобретать свой. Поэтому первый шаг — проверить, нет ли в вашей конфигурации типовой настройки вывода штрихкода.
Способ 2: добавить штрихкод через конфигуратор
Полный контроль дает доработка в конфигураторе. Порядок действий для типовой конфигурации на управляемых формах выглядит так. Сначала убедитесь, что в базе подключена компонента формирования штрихкодов: в «1С:Библиотеке стандартных подсистем» за это отвечает подсистема «Печать» и функция формирования изображения штрихкода (в БСП — общий модуль, работающий с компонентой «1С:Печать штрихкодов»). Компонента обычно поставляется в составе конфигурации и устанавливается на клиентский компьютер автоматически при первом вызове.
Далее откройте макет печатной формы счета (для БП 3.0 это макет в общих макетах или в обработке печати документа «Счет на оплату покупателю»). Добавьте в нужное место макета область с картинкой, у которой тип — «Штрихкод», либо оставьте пустую картинку-параметр, которую заполнит код. Затем в модуле менеджера печати документа добавьте формирование штрихкода: данные для кода (например, строку с номером и датой документа), тип штрихкода и вывод результата в параметр макета. После обновления конфигурации базы данных сформируйте счет и проверьте печатную форму.
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Штрихкод = СтрокаДляКода;
ПараметрыШтрихкода.ТипКода = 1; // Code 128
ПараметрыШтрихкода.Ширина = 50;
ПараметрыШтрихкода.Высота = 20;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Картинка <> Неопределено Тогда
ОбластьМакета.Рисунки.Штрихкод.Картинка = Результат.Картинка;
КонецЕсли;Имена модулей и функций зависят от версии библиотеки стандартных подсистем в вашей конфигурации — сверяйтесь с существующим кодом, где штрихкод уже выводится (например, печать этикеток или TORG-12 с штрихкодом). Копирование работающего вызова из типового кода надежнее, чем написание с нуля.
Способ 3: вывести QR-код для оплаты счета
Для QR-кода оплаты действуйте в два этапа. Первый — сформировать платежную строку. Она включает обязательные поля: наименование получателя, ИНН, расчетный счет, банк, БИК, корсчет, а также сумму и назначение платежа. Поля объединяются в строку с разделителями по правилам стандарта. В ряде конфигураций есть типовая функциональность формирования QR-кода для платежных документов — проверьте настройки печатных форм и подключенные подсистемы обмена с банками.
Второй этап — вывести полученную строку как QR-код в макет счета тем же механизмом, что и одномерный штрихкод, но с типом кода QR. Обратите внимание на размер: QR-код с длинной платежной строкой содержит много модулей, и при слишком маленькой картинке телефон его не считает. Практический минимум — около 3–4 см по стороне на печатном листе, с белым полем вокруг кода.
Проверка результата перед отправкой счета клиентам
После доработки макета обязательно пройдите контрольные точки. Сформируйте счет с реальными данными, распечатайте его на обычной офисной бумаге (не только посмотрите на экране — печать часто «съедает» мелкие элементы) и отсканируйте код. Для одномерного штрихкода используйте сканер или приложение на телефоне: результат должен точно совпасть с зашитой строкой, без обрезанных или добавленных символов.
Для QR-кода оплаты проверка строже: отсканируйте код приложением банка и сверьте каждое поле на экране подтверждения — получателя, ИНН, счет, сумму, назначение. Проверьте чтение кода с распечатки при разном качестве печати: бледный тонер и мелкий масштаб — самые частые причины нечитаемого QR. Также убедитесь, что код не перекрывается печатью организации и не попадает на сгиб при стандартном способе складывания счета в конверт с окном.
Как проверить результат
Считанная строка полностью совпадает с номером/данными документа
Обрезанные символы, лишние знаки, код не читается
Приложение распознает платеж, все реквизиты и сумма верны
Код читается как обычный текст или реквизиты не совпадают
Код читается с бумаги при обычном качестве печати
Читается только с экрана, с бумаги — нет
Типичные ошибки и ограничения
Самая частая ошибка — добавить в макет картинку, но не добавить код, который её заполняет: печатная форма выходит с пустым местом или рамкой. Вторая — несоответствие типа штрихкода данным: например, EAN-13 принимает только цифры строго определенной длины, и попытка зашить туда номер документа с буквами и слэшами даст ошибку или пустую картинку. Для произвольных строк используйте Code 128 или QR.
Отдельный класс проблем — внешняя компонента. Если на компьютере пользователя не установлена компонента печати штрихкодов, картинка не сформируется, при этом ошибка может быть неочевидной. В веб-клиенте и при работе через тонкий клиент с серверной генерацией поведение отличается: проверяйте печать именно в том режиме, в котором работают пользователи. Наконец, помните про обновления: доработанный типовой макет или модуль печати может конфликтовать с обновлением конфигурации, поэтому все изменения документируйте и по возможности выносите во внешнюю печатную форму.
Если конфигурация снята с поддержки или доработка затрагивает общие модули БСП, безопаснее поручить работу специалисту по 1С. Альтернатива без изменения конфигурации — внешняя печатная форма счета: она подключается через «Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки» и не затрагивает типовой код, что снимает риски при обновлении.
Что важно запомнить
Штрихкод добавляется в макет печатной формы счета и заполняется кодом через компоненту печати штрихкодов. Для внутреннего учета достаточно Code 128 с номером документа, для оплаты нужен QR с платежной строкой по стандарту. Обязательно проверяйте чтение кода с распечатки, а QR — еще и в реальном банковском приложении. Изменения безопаснее делать через внешнюю печатную форму.
Частые вопросы
Можно ли добавить штрихкод в счет без программирования?
Частично. Пользовательское изменение макета позволяет добавить статичные элементы и переместить существующие, но динамический штрихкод, который формируется из данных документа, требует кода. Компромисс — внешняя печатная форма, которую можно заказать или найти готовую и подключить без изменения конфигурации.
Почему штрихкод виден на экране, но не печатается?
Чаще всего дело в масштабе печати или в том, что картинка выходит за границы печатной области листа. Проверьте настройки масштаба в диалоге печати, поля страницы в макете и попробуйте вывести в PDF: если в PDF код есть, проблема в настройках принтера.
Какой тип штрихкода выбрать для номера счета?
Code 128 — он принимает цифры и буквы, компактен и хорошо читается любым сканером. EAN-13 подходит только для цифровых кодов фиксированной длины и для номеров документов обычно неудобен.
Обязателен ли QR-код для оплаты на счете?
Нет, это удобство для клиента, а не требование. Обязательными остаются реквизиты счета по общим правилам. QR-код лишь дублирует эти данные в машиночитаемом виде для банковских приложений.
Пропадет ли доработка после обновления конфигурации?
Если вы меняли типовой макет или модуль — изменения могут быть затерты или вызвать конфликт при обновлении. Пользовательский макет, измененный в режиме предприятия, сохранится, но перестанет получать типовые правки. Внешняя печатная форма обновлениям не подвержена.
Штрихкод не формируется у части пользователей. В чем причина?
Наиболее вероятно, что на их компьютерах не установлена компонента печати штрихкодов. Проверьте, предлагает ли система установить компоненту при первом обращении, и нет ли блокировки со стороны прав пользователя или антивируса.