Автоматизация · 13 мин
Как вставить штрихкод в 1С: настройка и вывод в печатные формы
Как вставить штрихкод в 1С: подключение компоненты, вывод в печатные формы, работа в УТ, ERP и Бухгалтерии. Настройка, типовые ошибки и проверка результата.
Штрихкод в 1С нужен в двух типовых ситуациях: когда его требуется напечатать на этикетке, накладной или прайсе, и когда его нужно считать сканером при оформлении документов. В обоих случаях логика проста: штрихкод хранится в базе как строка цифр (чаще всего EAN-13), а для вывода на печать эта строка преобразуется в графическое изображение с помощью специальной компоненты.
В типовых конфигурациях — «Управление торговлей», «ERP», «Розница», «Бухгалтерия предприятия» — механизм штрихкодирования уже встроен. Пользователю достаточно заполнить штрихкод в карточке номенклатуры и убедиться, что компонента печати штрихкодов установлена. В самописных или сильно доработанных конфигурациях потребуется программная вставка картинки штрихкода в макет печатной формы.
Ниже разобраны оба сценария: типовой (без программирования) и с доработкой макета, а также типичные ошибки, из-за которых штрихкод не печатается или не читается сканером.
Как 1С хранит и формирует штрихкоды
Штрихкод в базе 1С — это обычная строка символов, привязанная к номенклатуре, характеристике, упаковке или документу. В типовых конфигурациях за хранение отвечает регистр сведений «Штрихкоды номенклатуры»: одна позиция может иметь несколько штрихкодов (например, по разным единицам измерения).
Сама строка цифр не является картинкой. Чтобы штрихкод можно было напечатать и считать сканером, 1С преобразует строку в графическое изображение. За это отвечает внешняя компонента «1С:Библиотека подключаемого оборудования» (входит в состав БПО), которая поддерживает линейные форматы (EAN-13, EAN-8, Code 39, Code 128) и двумерные (QR-код, DataMatrix).
Как добавить штрихкод в карточку номенклатуры
Откройте карточку товара в справочнике «Номенклатура». В типовых конфигурациях штрихкоды находятся либо на отдельной вкладке «Штрихкоды», либо в панели навигации по ссылке «Штрихкоды». Нажмите «Создать» и введите значение вручную или отсканируйте сканером — курсор при этом должен стоять в поле ввода.
Если у товара нет заводского штрихкода, система может сгенерировать внутренний. В «Управлении торговлей» и «Рознице» для этого есть кнопка автоматического формирования: программа создаст код в свободном диапазоне префикса внутренних штрихкодов (обычно начинается с цифры 2, зарезервированной для внутреннего использования предприятия).
Учитывайте, что один и тот же штрихкод не должен дублироваться у разных товаров — типовая конфигурация контролирует уникальность и выдаст ошибку при попытке записать повтор. Если дубль всё же возник, найдите старую запись в регистре штрихкодов и удалите или исправьте её.
- 1Откройте карточку номенклатуры и перейдите к списку штрихкодов
- 2Нажмите «Создать», введите код вручную или отсканируйте сканером
- 3При необходимости укажите упаковку и характеристику, к которым привязан код
- 4Запишите карточку и проверьте поиск товара по этому штрихкоду в документе
Установка компоненты печати штрихкодов
При первой попытке напечатать этикетку или документ со штрихкодом 1С предложит установить компоненту. Согласитесь на установку — она загружается из состава конфигурации и не требует отдельного скачивания из интернета. В файловом режиме компонента ставится на каждый рабочий компьютер, в клиент-серверном — может устанавливаться на сервер в зависимости от того, где формируется печатная форма.
Если предложение об установке не появилось, а штрихкод не печатается, проверьте: не заблокирована ли установка браузером (при работе через веб-клиент), есть ли у пользователя права на установку компонент, и не используется ли устаревшая версия библиотеки подключаемого оборудования.
Как напечатать этикетку со штрихкодом
Для печати этикеток в типовых конфигурациях предназначена обработка «Печать этикеток и ценников». В «Управлении торговлей» она открывается из раздела закупок или склада, в «Рознице» — из раздела товаров. Добавьте в таблицу нужные позиции (вручную, по документу поступления или по отбору), укажите шаблон этикетки и количество копий.
Шаблон этикетки определяет, что будет на ней напечатано: наименование, цена, штрихкод, артикул. Стандартные шаблоны уже содержат поле штрихкода. Если нужен свой вариант, откройте редактор шаблона, перетащите поле «Штрихкод» из списка доступных полей в нужное место макета и сохраните. Размер картинки штрихкода можно менять, но не сжимайте его слишком сильно — при ширине меньше примерно 25–30 мм линейный штрихкод EAN-13 часто перестаёт читаться сканером.
После формирования предварительного просмотра отправьте этикетки на принтер. Для термопринтеров этикеток проверьте, что размер этикетки в шаблоне совпадает с реальным размером носителя, иначе картинка сместится или обрежется.
Как проверить результат печати
Сканер распознаёт код с первого прохода на расстоянии 5–15 см
Сканер не реагирует или считывает через несколько попыток
Штрихи чёткие, без размытия, вокруг кода есть светлое поле
Полосы смазаны, штрихкод вплотную к тексту или краю
Считанный код совпадает со значением в карточке товара
Сканер выдаёт другие цифры или лишние символы
Как вставить штрихкод в макет печатной формы
Когда штрихкод нужен не на этикетке, а в документе — например, в ТОРГ-12, счёте или складском ордере, — его добавляют в макет печатной формы. В конфигураторе откройте макет нужного документа, добавьте в область ячейку с типом «Картинка» и задайте ей имя параметра, например «ШтрихкодКартинка».
В модуле менеджера объекта (или в модуле команды печати) при формировании табличного документа получите изображение штрихкода через функцию общего модуля работы со штрихкодами и присвойте его параметру-картинке. В типовых конфигурациях на базе БСП используется программный интерфейс формирования изображения штрихкода с параметрами: тип кода, строка значения, ширина и высота в пикселях.
Упрощённый пример вставки выглядит так:
// Формируем изображение штрихкода
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Штрихкод = "4607035930017";
ПараметрыШтрихкода.ТипКода = 1; // EAN-13
ПараметрыШтрихкода.Ширина = 300;
ПараметрыШтрихкода.Высота = 120;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Результат Тогда
ОбластьМакета.Рисунки.ШтрихкодКартинка.Картинка = Результат.Картинка;
КонецЕсли;
Точные имена общих модулей зависят от версии конфигурации: в старших релизах это может быть «ГенерацияШтрихкода», в других — функции менеджера оборудования. Ориентируйтесь на то, как формирует штрихкод типовая обработка печати этикеток в вашей конфигурации, и повторяйте тот же вызов.
Выбор формата штрихкода
Формат определяет, какие символы можно закодировать и как код будет читаться оборудованием. Неверно выбранный формат — частая причина того, что этикетка печатается, но не сканируется.
| Формат | Что кодирует | Где применяется |
|---|---|---|
| EAN-13 | 13 цифр, последняя — контрольная | Розничная торговля, маркировка товаров |
| EAN-8 | 8 цифр | Малогабаритные товары с маленькой этикеткой |
| Code 128 | Цифры и латинские буквы | Внутренний учёт, складские операции |
| Code 39 | Цифры, заглавные буквы, часть символов | Документы, архив, производство |
| QR-код | Текст, ссылки, структурированные данные | Оплата, маркировка, электронные документы |
| DataMatrix | Цифры и буквы, компактная кодировка | Маркировка «Честный ЗНАК» |
Для товаров розничной торговли стандарт де-факто — EAN-13. Для внутренних кодов предприятия удобнее Code 128, потому что он допускает буквы и не требует контрольной цифры. Формат для маркированных товаров определяется системой «Честный ЗНАК» и менять его нельзя.
Как выбрать сценарий
Типичные ошибки и их устранение
Наиболее частая ситуация — вместо штрихкода на печать выводится пустое место или надпись об ошибке. Причины: не установлена компонента, в карточке товара не заполнен штрихкод, либо в параметры генерации передана пустая строка. Проверяйте в указанном порядке: сначала значение в базе, затем компоненту, затем код формирования.
Вторая группа проблем — штрихкод печатается, но не читается. Обычно виноваты слишком мелкий масштаб, низкое качество печати (бледные штрихи на старом термопринтере), отсутствие свободных полей вокруг кода или неверная контрольная цифра EAN-13. Если код вводился вручную, перепроверьте последнюю цифру — при ошибке в ней часть сканеров отказывается распознавать код.
Отдельно стоит проблема дублирования штрихкодов при обмене данными между базами: один и тот же код привязывается к разным товарам. Решение — сверка регистра штрихкодов после обмена и очистка конфликтных записей.
Ограничения и когда нужна помощь разработчика
Без программирования в типовой конфигурации можно: заполнить штрихкоды, печатать этикетки и ценники по готовым шаблонам, настроить формат этикетки. Всё, что выходит за эти рамки — вывод штрихкода в произвольный документ, изменение логики генерации внутренних кодов, печать двумерных кодов маркировки в нестандартных формах, — требует доработки в конфигураторе.
Если конфигурация находится на поддержке и регулярно обновляется, поручайте доработку специалисту, который оформит её через расширение или механизм дополнительных печатных форм БСП. Самостоятельная правка модулей без опыта может нарушить работу обменов и обновлений, а восстановление базы из копии — это потеря данных за период после её создания.
Перед массовой печатью этикеток распечатайте одну пробную и проверьте её рабочим сканером именно в том месте, где будут сканировать: освещение, расстояние и угол влияют на читаемость. Это занимает минуту и избавляет от перепечатки всей партии.
Частые вопросы
Почему 1С пишет «Компонента печати штрихкодов не установлена»?
Компонента устанавливается при первом обращении к печати штрихкода, но установка может быть заблокирована антивирусом, политиками безопасности или недостатком прав пользователя. Запустите 1С с правами администратора и повторите печать — система снова предложит установку. При работе через веб-клиент проверьте, что браузер разрешает установку расширения для работы с компонентами.
Можно ли вставить штрихкод в 1С без сканера?
Да. Сканер нужен только для быстрого ввода: он просто «печатает» цифры в активное поле. Штрихкод можно ввести вручную с упаковки товара или сгенерировать внутренний код средствами конфигурации. Для печати этикеток сканер вообще не требуется.
Как вывести штрихкод в «1С:Бухгалтерии», если там нет печати этикеток?
В «Бухгалтерии предприятия» штатной обработки печати этикеток нет. Варианты: использовать внешнюю обработку печати этикеток, подключённую через «Дополнительные отчеты и обработки», или добавить штрихкод в макет нужной печатной формы через расширение конфигурации. Для разовых задач проще внешняя обработка.
Что делать, если штрихкод печатается, но сканер его не читает?
Проверьте четыре вещи: корректность контрольной цифры (для EAN-13), размер кода на этикетке (увеличьте в шаблоне), качество печати (насыщенность штрихов, чистая печатающая головка термопринтера) и наличие светлых полей по краям кода. Также убедитесь, что сканер поддерживает данный формат — в настройках сканера часть форматов может быть отключена.
Можно ли печатать QR-код вместо линейного штрихкода?
Да, типовая компонента поддерживает QR-коды. В шаблоне этикетки или в коде формирования изображения укажите тип «QR-код» и строку для кодирования — это может быть текст, ссылка или служебные данные. Учтите, что для считывания QR-кодов нужен двумерный сканер; простые линейные сканеры их не читают.
Пропадёт ли штрихкод в макете после обновления конфигурации?
Если макет изменён напрямую в типовой конфигурации — изменение может быть затёрто при обновлении, если обновляемый объект не был снят с поддержки корректно. Надёжные варианты: доработка через расширение конфигурации или подключение внешней печатной формы через механизм «Дополнительные отчеты и обработки» — они не затрагиваются обновлением.
Что важно запомнить
Штрихкод в 1С — это строка в карточке номенклатуры плюс компонента, превращающая её в картинку. Этикетки печатаются типовой обработкой без доработок, вставка в документы требует изменения макета через конфигуратор или расширение. Перед массовой печатью всегда проверяйте пробную этикетку сканером.