Документы и Печать · 9 мин
Как добавить штрихкод в УПД в 1С
Пошаговая инструкция: как вывести штрихкод в печатную форму УПД в 1С через макет, внешнюю обработку и компоненту печати. Типичные ошибки и проверка результата.
Универсальный передаточный документ (УПД) по умолчанию не содержит штрихкода — ни в типовой печатной форме «1С:Бухгалтерии», ни в «Управлении торговлей». Однако на практике штрихкод на УПД нужен часто: для быстрой идентификации документа сканером при приёмке, для внутреннего документооборота или для вывода кодов маркировки товаров. Задача решается тремя способами: правкой макета печатной формы, подключением внешней печатной формы или настройкой штрихкодов номенклатуры с выводом их в табличную часть.
Выбор способа зависит от того, какой именно штрихкод нужен: уникальный код самого документа (для сканирования и поиска УПД в базе), коды товаров из карточек номенклатуры или коды данных матрицы для маркированной продукции. Каждый сценарий настраивается по-разному, и ниже разобраны все три.
Определите, какой штрихкод нужен в УПД
Прежде чем править конфигурацию, определите тип штрихкода и его источник. От этого зависит и формат кода, и место его размещения на форме. Штрихкод документа обычно формируется из номера и даты УПД в формате Code128 или EAN-13 и размещается в шапке. Штрихкоды товаров берутся из регистра «Штрихкоды номенклатуры» и выводятся в строках табличной части. Коды маркировки (DataMatrix) хранятся в подсистеме учёта маркированной продукции.
Также решите, допустимо ли изменение конфигурации. Если база на поддержке и обновляется типовым способом, безопаснее использовать внешнюю печатную форму — она не затрагивает конфигурацию и не слетает при обновлении. Если доработки уже ведутся в расширении, макет можно переопределить там же.
Как выбрать способ
Подготовьте компоненту печати штрихкодов
Для вывода графического штрихкода в макет 1С использует внешнюю компоненту печати штрихкодов. В типовых конфигурациях на базе БСП она входит в поставку и подключается автоматически при первом обращении. Если компонента отсутствует или устарела, штрихкод на печати не появится — вместо картинки область останется пустой.
Проверить наличие компоненты можно через функциональность «Печать этикеток и ценников» в разделе складского или номенклатурного учёта: если этикетка с штрихкодом формируется корректно, компонента работает, и её можно вызывать из своей печатной формы тем же механизмом.
Добавьте штрихкод документа через внешнюю печатную форму
Это самый безопасный способ. Внешняя печатная форма — это файл обработки (.epf), который подключается через «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки». После подключения она появляется в меню «Печать» документа «Реализация (акты, накладные, УПД)» наряду с типовой формой.
В обработке создаётся табличный документ: сначала выводится типовой макет УПД (его можно скопировать из конфигурации в макет обработки), затем в свободную область — например, рядом с номером и датой — вставляется картинка штрихкода. Картинка формируется программно: данные для кодирования (например, строка вида «УПД № 123 от 01.02» или GUID документа) передаются в компоненту, и результат помещается в область макета как рисунок.
- 1Скопируйте макет печатной формы УПД из конфигурации в макет внешней обработки
- 2Добавьте в макет именованную область под штрихкод с элементом типа «Рисунок»
- 3В модуле обработки сформируйте строку данных для штрихкода (номер и дата документа)
- 4Вызовите компоненту печати штрихкодов и поместите картинку в область макета
- 5Зарегистрируйте обработку в справочнике дополнительных отчётов и обработок с назначением «Реализация товаров и услуг»
- 6Откройте документ, выберите новую команду печати и проверьте результат
Выведите штрихкоды товаров в табличную часть
Если задача — печатать штрихкод каждого товара в строках УПД, сначала убедитесь, что коды заполнены. Откройте карточку номенклатуры и проверьте поле «Штрихкод» либо регистр «Штрихкоды номенклатуры» — у одной позиции может быть несколько кодов для разных упаковок. Без заполненных данных доработка макета ничего не даст: колонка останется пустой.
Затем в макете УПД добавьте в строку табличной части дополнительную колонку «Штрихкод». При выводе каждой строки программно получайте штрихкод по номенклатуре из регистра и подставляйте его как текст. Учтите, что графический штрихкод (картинкой) в каждой строке заметно увеличит высоту строк и время формирования — для длинных накладных разумнее выводить код текстом, а не картинкой.
Вариант для конфигураций с расширением
Если в базе уже применяются расширения, макет УПД и процедуру формирования печатной формы можно переопределить в расширении. Это даёт те же возможности, что и доработка конфигурации, но сохраняет типовое обновление: расширение накладывается поверх и не меняет основной код. Порядок действий аналогичен внешней форме — добавляется макет с областью штрихкода, а в переопределённой процедуре печати вызывается компонента и заполняется рисунок.
Минус подхода — расширения требуют аккуратного сопровождения: после обновления конфигурации нужно проверять, не изменился ли переопределяемый метод формирования УПД. Если типовая процедура изменилась, расширение может перестать выводить штрихкод или формировать форму старого образца.
Проверьте результат и типичные ошибки
После настройки сформируйте УПД по реальному документу и проверьте три вещи: штрихкод отображается на предпросмотре, читается сканером с распечатки и не разрывает верстку формы. Сканирование обязательно — визуально корректный штрихкод может не читаться из-за слишком маленького размера, низкого качества печати или неверного типа кода (например, кириллица в данных ломает EAN-13).
Проверьте также формирование УПД в PDF и отправку по ЭДО: печатная форма влияет только на бумажную версию, электронный XML-документ она не меняет. Если контрагент ждёт штрихкод в электронном УПД, это решается настройкой формата обмена, а не печатного макета.
Как проверить результат
Штрихкод виден в заданной области, верстка УПД не съехала
Область пустая или колонки табличной части сдвинуты
Сканер считывает код с распечатки с первого раза
Код не читается — увеличьте размер или смените тип штрихкода
Типовая печать УПД и других форм работает как раньше
После доработки сломались смежные печатные формы
После обновления штрихкод по-прежнему выводится
Штрихкод пропал — значит, правился типовой макет
Частые вопросы
Что важно запомнить
Штрихкод в УПД добавляется через внешнюю печатную форму или расширение с использованием компоненты печати штрихкодов. Типовую конфигурацию на поддержке править напрямую нельзя. Результат обязательно проверяется сканером с распечатки.
Можно ли добавить штрихкод в УПД без программирования?
Полностью без доработок — нет, типовая форма УПД штрихкод не содержит. Минимальный путь без изменения конфигурации — готовая внешняя печатная форма, которую подключают через «Дополнительные отчёты и обработки». Для вывода штрихкодов товаров текстом иногда достаточно заполнить их в номенклатуре и использовать настраиваемые формы, если конфигурация это поддерживает.
Какой тип штрихкода выбрать для номера документа?
Для номеров и дат документов чаще всего используют Code128 — он компактный и поддерживает цифры с латиницей. EAN-13 подходит только для 13-значных цифровых кодов. DataMatrix нужен для маркированной продукции и больших объёмов данных.
Почему штрихкод есть на экране, но сканер его не читает?
Основные причины: слишком маленький размер картинки в макете, низкое качество печати, недопустимые символы в данных (кириллица, пробелы) или неподходящий тип штрихкода. Увеличьте область рисунка в макете и проверьте состав кодируемой строки.
Попадёт ли штрихкод в электронный УПД при отправке по ЭДО?
Нет. Доработка печатной формы влияет только на бумажную версию и PDF. Электронный УПД формируется в формате XML по утверждённой структуре, и добавить туда произвольный штрихкод через макет нельзя — это отдельная задача настройки обмена.
Что делать, если после обновления 1С штрихкод пропал?
Это признак того, что был изменён типовой макет конфигурации. Восстановите доработку из копии базы и перенесите её во внешнюю печатную форму или расширение — тогда обновления больше не будут её затрагивать.