Документы и Печать · 10 мин
Как сделать макет этикетки в 1С
Разбираем, как создать макет этикетки в 1С: табличный документ, области, параметры, штрихкоды и ценники. Пошаговая инструкция, примеры кода и типичные ошибки.
Этикетки и ценники в 1С печатаются на основе макетов — шаблонов, в которых задано расположение текста, цены, штрихкода и других полей. Макет можно создать в конфигураторе как табличный документ, а можно использовать встроенный редактор шаблонов этикеток, который есть в типовых конфигурациях вроде «Управление торговлей», «Розница» и «1С:Комплексная автоматизация».
Выбор способа зависит от задачи. Если нужно разово настроить ценник под новый принтер этикеток — достаточно пользовательского редактора шаблонов, доработка конфигурации не потребуется. Если этикетка должна формироваться по сложной логике, с картинками, несколькими штрихкодами или нестандартной версткой — понадобится макет в конфигураторе и процедура вывода на печать.
Ниже разобраны оба подхода: работа с редактором шаблонов этикеток в пользовательском режиме и создание макета табличного документа в конфигураторе с выводом через код.
Какие способы создания этикетки есть в 1С
В типовых конфигурациях существует два принципиально разных механизма. Первый — редактор шаблонов этикеток и ценников, доступный пользователю с правами на настройку печати. Он работает в режиме предприятия и позволяет визуально разместить поля: наименование товара, артикул, цену, штрихкод, организацию. Шаблон сохраняется в базе и доступен всем пользователям.
Второй механизм — макет табличного документа в конфигураторе. Он создается разработчиком в объекте метаданных (общий макет или макет обработки, справочника, документа) и выводится программно. Такой способ дает полный контроль над версткой, но требует доступа к конфигуратору и, при изменении типовой конфигурации, снятия объектов с полной поддержки или использования расширения.
Сравнение вариантов
Подходит для типовых ценников и этикеток с полями из карточки товара. Не требует конфигуратора, но ограничен набором доступных полей и простой версткой.
Подходит для нестандартных этикеток, сложной логики и собственных печатных форм. Требует навыков разработки и аккуратности при обновлении конфигурации.
Подходит, когда нельзя менять конфигурацию: макет и код упаковываются во внешнюю обработку и подключаются через механизм дополнительных отчетов и обработок.
Подготовка: размер этикетки и принтер
До создания макета измерьте фактическую этикетку: ширину и высоту в миллиметрах, а для рулонной ленты — еще и расстояние между этикетками. Эти значения понадобятся при настройке области печати и параметров страницы. Расхождение даже в 1–2 мм приводит к съезду печати на вторую этикетку.
Проверьте, что принтер этикеток установлен в системе и доступен из 1С. В свойствах драйвера принтера задайте размер носителя, равный размеру этикетки, — если в драйвере выбран А4, а печать идет на ленту 58×40 мм, макет будет масштабироваться или обрезаться непредсказуемо.
Уточните, какой штрихкод нужно печатать: EAN-13, Code-128, DataMatrix или QR. От этого зависит, какой компонент формирования изображения штрихкода будет использован, и какой шрифт или картинка попадут в макет.
Создание этикетки в редакторе шаблонов
В типовых конфигурациях откройте раздел закупок или продаж и найдите обработку «Печать этикеток и ценников». В форме обработки есть команда перехода к списку шаблонов, где можно создать новый. Откроется редактор: слева — поле макета с сеткой, справа — список доступных полей.
Перетащите нужные поля на макет: наименование, цена, артикул, штрихкод. Для каждого поля задайте шрифт, размер, выравнивание и положение. Поле штрихкода при выводе автоматически преобразуется в изображение, если в системе установлена компонента печати штрихкодов — 1С предложит установить ее при первом использовании.
После размещения полей сохраните шаблон, вернитесь в обработку печати, добавьте товары и выполните предварительный просмотр. Проверьте, что текст не вылезает за границы, штрихкод читается сканером, а цена берется из нужного вида цен.
- 1Откройте обработку «Печать этикеток и ценников» и перейдите к списку шаблонов
- 2Создайте новый шаблон и укажите тип: этикетка или ценник
- 3Перетащите на макет поля: наименование, цена, штрихкод, артикул
- 4Настройте шрифты и положение полей, сохраните шаблон
- 5Добавьте товары в обработку, откройте предварительный просмотр
- 6Напечатайте пробную этикетку и проверьте сканером штрихкод
Создание макета табличного документа в конфигураторе
Для нестандартной этикетки откройте конфигуратор и добавьте макет: например, в общих макетах или в макетах обработки, которая будет печатать этикетки. Тип макета выберите «Табличный документ». На поле макета нарисуйте ячейки, соответствующие элементам этикетки: строка наименования, строка цены, область под штрихкод.
Выделите строки, образующие этикетку, и создайте именованную область через меню «Таблица — Имена — Назначить имя», например «Этикетка». Именно область будет выводиться в цикле для каждого товара.
В ячейках, куда подставляются данные, в свойстве «Заполнение» укажите «Параметр», а в свойстве «Параметр» — имя, например «НаименованиеТовара» или «Цена». Для вывода картинки штрихкода оставьте отдельную ячейку или вставьте рисунок типа «Объект», в который программно поместится изображение.
Задайте точные размеры: высоту строк и ширину колонок в свойствах, а также параметры страницы макета — ориентацию, поля и масштаб. Для принтера этикеток поля обычно ставят минимальными или нулевыми.
Программный вывод этикетки
Печать выполняется процедурой, которая получает макет, заполняет параметры области и выводит ее в табличный документ. Типовой скелет кода выглядит так:
Макет = ПолучитьМакет("МакетЭтикетки");
Область = Макет.ПолучитьОбласть("Этикетка");
ТабДок = Новый ТабличныйДокумент;
Для Каждого Строка Из Товары Цикл
Область.Параметры.НаименованиеТовара = Строка.Номенклатура.Наименование;
Область.Параметры.Цена = Строка.Цена;
ТабДок.Вывести(Область);
КонецЦикла;
ТабДок.Показать("Этикетки");
Штрихкод выводится отдельно: сначала формируется картинка через компоненту формирования штрихкодов, затем изображение вставляется в подготовленный рисунок области. В типовых конфигурациях для этого есть готовые функции в общих модулях подсистемы печати этикеток — переиспользуйте их вместо написания собственного формирования.
Если этикеток много и они должны идти несколько штук в строку на листе, управляйте выводом методами объединения и присоединения областей: «Вывести» добавляет область вниз, «Присоединить» — вправо. Для рулонного принтера обычно выводят подряд вниз, для листового — сеткой.
Проверка результата перед массовой печатью
Никогда не отправляйте на печать сразу всю партию. Напечатайте одну этикетку и проверьте: совпадает ли цена с видом цен, заданным в обработке; читается ли штрихкод сканером с реального расстояния; не обрезан ли текст по краям.
Для этикеток с DataMatrix или кодами маркировки проверка обязательна сканером, а не глазами: визуально корректный код может не читаться из-за низкого разрешения печати или недостаточных тихих зон вокруг кода.
Как проверить результат
Сканер считывает код с первого раза с рабочего расстояния
Код читается через раз или не читается — увеличьте размер изображения и проверьте качество печати
Текст и штрихкод полностью внутри границ этикетки
Содержимое смещено или обрезано — сверьте размеры макета и настройки носителя в драйвере
Цена, наименование и артикул соответствуют карточке товара
Подставляются не те значения — проверьте имена параметров и источник данных обработки
Ограничения и когда нужен разработчик
Редактор шаблонов не умеет произвольную верстку: условное отображение полей, вывод нескольких цен, форматированные составные строки, картинки из базы. Как только требования выходят за рамки «поля из карточки товара», переходите к макету в конфигураторе или к внешней печатной форме.
Дорабатывать типовую конфигурацию напрямую не рекомендуется: при обновлении изменения могут быть утеряны, а само обновление усложнится. Безопасные варианты — расширение конфигурации или внешняя обработка печати, подключаемая через «Дополнительные отчеты и обработки».
Что важно запомнить
Типовую этикетку настраивайте в редакторе шаблонов без изменения конфигурации; нестандартную — макетом табличного документа с параметрами и областями. Размер макета должен совпадать с размером носителя в драйвере, а результат всегда проверяйте пробной печатью и сканером.
Частые вопросы
Почему штрихкод на этикетке печатается, но не читается сканером?
Чаще всего изображение штрихкода слишком мало или сжато по высоте. Увеличьте высоту строки с картинкой, убедитесь, что вокруг кода есть свободные поля, и проверьте качество печати — термопринтер с загрязненной головкой дает разрывы линий, которые делают код нечитаемым.
Можно ли сделать макет этикетки без конфигуратора?
Да, если конфигурация типовая и содержит обработку «Печать этикеток и ценников»: встроенный редактор шаблонов позволяет разместить поля, настроить шрифты и сохранить шаблон прямо в режиме предприятия. Конфигуратор нужен только для нестандартной верстки и собственной логики.
Как вывести на этикетку несколько цен или дополнительные реквизиты товара?
В редакторе шаблонов набор полей ограничен. Для вывода дополнительных реквизитов или нескольких видов цен создайте макет табличного документа и в процедуре печати самостоятельно заполните параметры, получив значения запросом из базы.
Этикетка печатается со смещением и наезжает на следующую. Что делать?
Сверьте три величины: высоту области этикетки в макете, размер носителя в настройках драйвера принтера и фактический размер этикетки с учетом межэтикеточного зазора. Все три должны совпадать. Также проверьте, что в драйвере отключено масштабирование «под размер страницы».
Как сохранить макет при обновлении типовой конфигурации?
Не изменяйте типовые объекты напрямую. Вынесите макет и код печати в расширение конфигурации или во внешнюю печатную форму, подключенную через механизм дополнительных отчетов и обработок — тогда обновление пройдет без потери настроек.
Можно ли вывести на этикетку логотип или картинку товара?
В макете табличного документа — да: добавьте рисунок и заполните его программно картинкой из базы или файла. Учтите, что термопринтеры этикеток печатают монохромно, поэтому цветные изображения стоит заранее преобразовать в контрастный черно-белый вид.