Термопринтер и 1С 8.3: шаблон, драйвер и печать штрихкода на ленту

· 10 мин

Содержание

Чтобы печатать этикетки в 1С на принтере этикеток, нужно три вещи: в драйвере Windows задать размер этикетки (например, 58×40 мм) и откалибровать датчик, в 1С создать шаблон этикетки под этот же размер, а затем печатать из списка номенклатуры или документа командой Печать → Этикетки. Если типового шаблона мало, делают внешнюю печатную форму и подключают её в разделе Администрирование → Печатные формы, отчеты и обработки.

Типичная ситуация: склад купил термопринтер, подключил по USB, нажал «Печать» на этикетках — и получил кусок формы A4, размазанный на пять наклеек, или пустую ленту через одну. Почти всегда проблема не в 1С, а в том, что размер «бумаги» в драйвере и размер макета в программе не совпадают. Задача — добиться, чтобы одна этикетка из 1С ложилась ровно на одну наклейку. Всё описанное относится к платформе 8.3 с интерфейсом «Такси», Бухгалтерии 3.0 и Управлению торговлей 11.

Подготовка принтера этикеток: драйвер, лента, калибровка

Принтеры Zebra, TSC, Godex, Argox, АТОЛ, Xprinter работают с 1С двумя путями. Первый — как обычный принтер Windows: 1С строит табличный документ, драйвер переводит его в команды принтера. Второй — через подключаемое оборудование, когда 1С отправляет на принтер готовую программу на его языке (ZPL, EPL, TSPL). Для старта почти всегда хватает первого пути.

Порядок подготовки:

  1. Установите драйвер с сайта производителя принтера. Универсальный драйвер Windows «Generic / Text Only» не подойдёт: он не знает размеров этикетки.
  2. Заправьте ленту и, если принтер термотрансферный, риббон. Для термоэтикеток риббон не нужен.
  3. Откройте Панель управления → Устройства и принтеры, правой кнопкой по принтеру — Настройка печати.
  4. Создайте или выберите формат бумаги, равный этикетке: ширина и высота в миллиметрах, без учёта зазора.
  5. Укажите тип носителя: этикетки с зазором (gap), с чёрной меткой (black mark) или непрерывная лента.
  6. Выполните калибровку датчика. В драйвере это кнопка калибровки в настройках, на корпусе — обычно долгое удержание кнопки подачи (Feed). Точную комбинацию берите из инструкции модели.
  7. Напечатайте тестовую страницу из драйвера. Если тест выходит ровно на одну этикетку — принтер готов.

Сохраните формат этикетки в драйвере как значение по умолчанию. Иначе 1С при первой печати подставит A4, и лента уйдёт метром.

Принтер готов к работе с 1С
Выполнено: 0 / 5

Настройки 1С для печати этикеток и ценников

Типовой механизм печати этикеток есть и в Бухгалтерии 3.0, и в Управлении торговлей 11. Работает он одинаково: есть справочник шаблонов, а при печати открывается обработка, где вы выбираете товары, шаблон и количество копий.

КонфигурацияГде печатать этикеткиГде лежат шаблоны
Бухгалтерия 3.0Список номенклатуры или документ поступления: Печать → ЭтикеткиСправочник «Шаблоны этикеток и ценников», открывается из формы печати
УТ 11Обработка «Печать этикеток и ценников»: из документа поступления, заказа, списка номенклатуры через команду печатиТот же справочник «Шаблоны этикеток и ценников»

В УТ 11 есть отдельные виды шаблонов: для этикеток товаров, для ценников, для складских ячеек. В Бухгалтерии набор скромнее: этикетка и ценник по номенклатуре.

Подключение принтера как оборудования

Второй путь — подключить принтер в 1С как оборудование типа «Принтер этикеток». Это нужно, когда печатать надо много и быстро, без промежуточного табличного документа.

  1. Включите подключаемое оборудование: в Бухгалтерии — Администрирование → Подключаемое оборудование, в УТ 11 — НСИ и администрирование → Администрирование → РМК и оборудование.
  2. Откройте список оборудования и добавьте экземпляр с типом «Принтеры этикеток».
  3. Выберите драйвер, совместимый с вашей моделью, и установите его кнопкой в карточке.
  4. Задайте порт (USB, COM или сетевой адрес) и выполните тест устройства.

Шаблон для драйвера принтера этикеток пишется на языке принтера и не совпадает с шаблоном табличного документа. Обычный шаблон из справочника на такое устройство не уйдёт.

Шаблон этикетки в 1С: как создать и отредактировать

Шаблон — это макет на одну этикетку. В нём есть текстовые поля, подстановки (наименование, артикул, цена) и картинка штрихкода.

Создание шаблона в типовой конфигурации

  1. Откройте печать этикеток из списка номенклатуры.
  2. В поле выбора шаблона откройте справочник «Шаблоны этикеток и ценников» и нажмите Создать.
  3. Укажите назначение шаблона: этикетка товара или ценник.
  4. В редакторе задайте размер области под этикетку. Ширина и высота должны быть на 1–2 мм меньше физической наклейки — иначе принтер перенесёт край на следующую.
  5. Перетащите в ячейки нужные поля из списка доступных: наименование, артикул, штрихкод, цену, единицу измерения.
  6. Для штрихкода выберите вставку картинки и тип кода: EAN-13 для розничного товара, Code 128 для складских кодов.
  7. Запишите шаблон и проверьте его через предварительный просмотр.

💡 Текст наименования ставьте в ячейку с переносом по словам и фиксированной высотой. Длинное название «Кабель ВВГнг 3х2,5 бухта 100 м» иначе растянет строку и вытолкнет штрихкод на вторую этикетку.

Внешняя печатная форма этикетки

Если типовой шаблон не справляется — нужна своя логика, данные из другого справочника, несколько этикеток на одну позицию по количеству из документа — пишут внешнюю печатную форму (файл .epf). Её подключают без изменения конфигурации, поэтому обновления 1С она не мешает.

Подключение готовой формы:

  1. Включите флажок дополнительных отчётов и обработок в разделе Администрирование → Печатные формы, отчеты и обработки.
  2. Откройте Дополнительные отчеты и обработки, нажмите Добавить из файла и выберите .epf.
  3. На вкладке размещения проверьте, что форма привязана к справочнику «Номенклатура».
  4. Запишите. Команда появится в меню Печать списка номенклатуры.

Каркас модуля объекта для БСП: регистрация и формирование табличного документа. В макете обработки область Этикетка с параметрами Наименование, Артикул и рисунком Штрихкод.

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.Назначение.Добавить("Справочник.Номенклатура");

    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = "Этикетка 58x40";
    Команда.Идентификатор = "Этикетка5840";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Команда.Модификатор = "ПечатьMXL";
    Возврат ПараметрыРегистрации;
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    ТабДок = СформироватьЭтикетки(МассивОбъектов);
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
        "Этикетка5840", "Этикетка 58x40", ТабДок);
КонецПроцедуры

Функция СформироватьЭтикетки(МассивОбъектов)
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ПолеСверху = 0;
    ТабДок.ПолеСнизу = 0;
    ТабДок.ПолеСлева = 0;
    ТабДок.ПолеСправа = 0;
    ТабДок.АвтоМасштаб = Истина;

    Макет = ПолучитьМакет("Этикетка");
    Первая = Истина;
    Для Каждого Товар Из МассивОбъектов Цикл
        Область = Макет.ПолучитьОбласть("Этикетка");
        Область.Параметры.Наименование = Товар.Наименование;
        Область.Параметры.Артикул = Товар.Артикул;

        КодШК = ШтрихкодТовара(Товар);
        Если ЗначениеЗаполнено(КодШК) Тогда
            ПараметрыШК = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
            ПараметрыШК.Штрихкод = КодШК;
            ПараметрыШК.ТипКода = 1; // EAN-13
            ПараметрыШК.Ширина = 300;
            ПараметрыШК.Высота = 100;
            Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШК);
            Если Результат.Результат Тогда
                Область.Рисунки.Штрихкод.Картинка = Результат.Картинка;
            КонецЕсли;
        КонецЕсли;

        Если Не Первая Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ТабДок.Вывести(Область);
        Первая = Ложь;
    КонецЦикла;
    Возврат ТабДок;
КонецФункции

Функция ШтрихкодТовара(Товар)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 Штрихкоды.Штрихкод КАК Штрихкод
    |ИЗ РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ Штрихкоды.Владелец = &Товар";
    Запрос.УстановитьПараметр("Товар", Товар);
    Выборка = Запрос.Выполнить().Выбрать();
    Возврат ?(Выборка.Следующий(), Выборка.Штрихкод, "");
КонецФункции

Главный приём здесь — ВывестиГоризонтальныйРазделительСтраниц() между этикетками. Без него 1С сложит все этикетки в одну длинную страницу, и драйвер нарежет её как попало.

Регистр Штрихкоды с полем Владелец — вариант Бухгалтерии 3.0. В УТ 11 штрихкоды хранятся в регистре ШтрихкодыНоменклатуры с измерениями Номенклатура и Характеристика, запрос нужно поправить. Модуль ГенерацияШтрихкода есть в конфигурациях на БСП 3.1; в более старых релизах картинку штрихкода получают через библиотеку подключаемого оборудования.

Размеры этикеток и настройки под каждый тип

Размер наклейки выбирают под задачу, а настройки драйвера и шаблона — под размер. Ориентиры, проверенные на практике:

ЗадачаТипичный размер, ммНосительРазрешениеЧто настроить в 1С
Ценник на полку58×40, 58×30Термоэтикетка203 dpiШрифт цены 18–24 пт, штрихкод необязателен
Этикетка товара с EAN-1343×25, 58×40Термо или термотрансфер203 dpiКартинка штрихкода шириной не меньше 30 мм
Код маркировки DataMatrix30×20, 43×25Термотрансфер300 dpiТип кода GS1 DataMatrix, без масштабирования вниз
Складская ячейка, паллета100×100, 100×150Термотрансфер203 dpiCode 128, крупный текст адреса ячейки
Курьерская наклейка75×120, 100×150Термоэтикетка203 dpiАльбомная или книжная ориентация в драйвере

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

💡 Для 203 dpi один пиксель печати — около 0,125 мм. Штрихкод, который 1С масштабирует, а не печатает в исходном размере, получает «рваные» полосы. Поэтому в шаблоне задавайте размер картинки штрихкода так, чтобы масштаб был 100%.

Почему этикетка печатается неправильно: ошибки и решения

Диагностика: выберите симптом

Ещё одна частая причина — печать на «не тот» принтер. 1С запоминает последний принтер в параметрах табличного документа. Если на компьютере стоят офисный МФУ и термопринтер, перед печатью откройте Параметры страницы в форме печати и явно выберите принтер этикеток. Во внешней форме можно задать его кодом через свойство ИмяПринтера табличного документа.

Если принтер подключён через подключаемое оборудование и перестал отвечать, не удаляйте экземпляр оборудования сразу. Сначала выполните тест устройства в карточке: он покажет, что не так — порт, драйвер или сама связь.

Особенности в разных версиях и режимах 1С

Механизм печати этикеток зависит не столько от конфигурации, сколько от того, как пользователь подключён к базе.

Режим работыЧто учесть
Тонкий клиент WindowsСамый простой случай: доступны и драйвер Windows, и подключаемое оборудование
Веб-клиентПечать идёт через диалог браузера, размер этикетки и поля задают там. Драйверы подключаемого оборудования без расширения работы с 1С в браузере не устанавливаются
Удалённый рабочий стол (RDP)Принтер пробрасывается в сессию. Формат этикетки в драйвере нужно задать на сервере терминалов, иначе подставится A4
Linux-клиентДрайвер производителя должен поддерживать CUPS; подключаемое оборудование — только с драйверами, у которых есть версия под Linux

По конфигурациям разница в объёме возможностей. УТ 11 печатает этикетки и ценники из множества документов, умеет печатать по количеству из документа поступления и отдельно — этикетки складских ячеек. Бухгалтерия 3.0 печатает этикетки и ценники по номенклатуре и из документов поступления, без складской адресности.

Для товаров с маркировкой коды DataMatrix получают из Честного знака, а не генерируют в 1С. В УТ 11 для этого есть отдельный механизм печати кодов маркировки. В Бухгалтерии 3.0 работа с кодами маркировки ограничена, и для массовой печати КМ обычно используют товароучётную конфигурацию или отдельное ПО.

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

Можно ли печатать этикетки в 1С на обычном офисном принтере?
Да, на листах А4 с самоклеящимися этикетками. Шаблон тогда делают на лист: несколько этикеток в сетку, а не одна на страницу.
Какой принтер этикеток выбрать для работы с 1С?
Любой с драйвером Windows от производителя. Для ценников хватит 203 dpi и термопечати, для кодов маркировки берите 300 dpi и термотрансфер.
Как напечатать столько этикеток, сколько пришло товара?
Печатайте из документа поступления: в форме печати этикеток количество подставится из строк документа, его можно поправить вручную.
Почему после обновления 1С пропал мой шаблон этикетки?
Шаблоны хранятся в справочнике и при обновлении не удаляются. Обычно сбивается выбор шаблона по умолчанию — выберите его заново в форме печати.
Нужен ли программист, чтобы сделать свою этикетку?
Для текста, цены и штрихкода — нет, хватает редактора шаблонов. Программист нужен для внешней печатной формы с нестандартными данными или логикой.