1с принтер этикеток обработка

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Подключаем принтер этикеток к 1С:Предприятие в управляемом приложении

Подключаем принтер этикеток к 1С:Предприятие в управляемом приложении

Не так давно мы уже писали про принтеры этикеток и 1С:Предприятие, однако массовый перевод основных конфигураций на управляемое приложение заставляет вносить коррективы. Не сказать, что они существенны, имея некоторый опыт вы без труда разберетесь в новой системе, но есть и неочевидные детали, которые обычно не отражены в документации, хорошо известны специалистам и способны серьезно отравить жизнь новичкам. Поэтому мы решили вернуться к принтерам этикеток и подробно рассказать о подключении этого типа оборудования.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Мы не будем останавливаться на общих вопросах подключения торгового оборудования в управляемом приложении и если вы недостаточно владеете вопросом, то рекомендуем прочитать нашу статью: Подключаем торговое оборудование к 1С:Предприятие 8.

Перейдем к конкретике. Что такое принтер этикеток? Это специализированное печатающее устройство для печати текста и несложной графики, включая штрихкоды, на специальном носителе — самоклеящейся этикете.

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

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

Подход к выбору здесь довольно прост: если маркированный товар не будет длительно храниться (более полугода) или испытывать воздействие прямого солнечного света и повышенных температур — то выбирайте термопринтер, в противном случае — термотрансфертный.

Определившись с типом печати следует обратить внимание на остальные характеристики, прежде всего это максимальная ширина этикетки и скорость печати. Если с шириной этикетки все понятно, то скорость печати следует выбирать исходя из объема товара, подлежащего маркировке, например, модель со скоростью печати 102 мм/сек напечатает набор этикеток 58*40 на 1000 позиций товара за 6,5 минут, а модель со скоростью в 203 мм/сек за три с небольшим минуты. Если объем товара большой — то скорость печати может стать существенным фактором, замедляющим работу.

Разрешение большинства недорогих моделей составляет 203 dpi, для этикеток этого вполне достаточно, но накладывает некоторые ограничения на минимальный размер объектов, так для недорогих линейных сканеров минимальный уверенно считываемый размер штрихкода EAN13 составляет 1,5 — 2 см, если требуется печатать более мелкие изображения или коды, то следует посмотреть в сторону моделей с разрешением 300 dpi, однако в большинстве случаев переплачивать за разрешение смысла нет.

На что еще стоит обратить внимание? Конечно же на интерфейсы подключения принтера, обычно представлена классическая связка USB + RS-232, но не недорогих моделях может быть один только USB, также принтера могут комплектоваться сетевыми интерфейсами, но обычно данные опции следует указывать отдельно при заказе.

Вообще данный вопрос мы рекомендуем изучить отдельно, так как количество доступных опций к термопринтерам может быть достаточно велико: это внешние держатели рулонов большого объема, отрезчики и отделители этикеток, смотчики готовых этикеток и т.д.

Читайте также:  0x80d03805 windows 10 при обновлении

Для продвинутых пользователей определенный интерес может представлять поддержка принтером языков разметки этикеток, наиболее часто встречаются ZPL и EPL, это позволяет работать с принтером напрямую, исключая прослойки в виде Win-драйвера или драйверов оборудования 1С, но требует соответствующей доработки вашего ПО.

Ниже мы будем рассматривать стандартные способы подключения принтеров этикеток к 1С которые не требуют программирования и подойдут большинству пользователей.

Принтер поддерживается через БПО

Как мы уже говорили, работа с торговым оборудованием в современных конфигурациях 1С осуществляется через Библиотеку подключаемого оборудования, которая позволяет унифицировать работу с ТО в рамках платформы 1С. Все оборудование подразделяется на сертифицированное, которое поддерживается 1С, и поддерживаемое сертифицированными драйверами, т.е. с поддержкой от производителя оборудования. Большой разницы для пользователя между этими типами оборудования нет, разве что драйвера для первых включены в состав БПО, а вторые надо скачивать с сайта поставщика.

Сразу обратим внимание на еще один момент, драйвера торгового оборудования, даже сертифицированного, могут оказаться платными. Это нормальная практика, но очень часто необходимость дополнительной оплаты становится неприятным сюрпризом для незадачливых автоматизаторов и их заказчиков. Поэтому уточните этот вопрос заранее.

С полным списком поддерживаемых через БПО принтеров этикеток можно ознакомиться здесь: http://v8.1c.ru/common/printer.htm#models. Сразу обратите внимание на колонку драйвер, продукция фирмы Гексагон является платной и только она подходит для популярной линейки термопринтеров Zebra.

Будем считать, что вы определились с выбором и перед вами стоит вопрос подключения такого принтера к 1С:Предприятие. Нет ничего сложного, переходим в Подключаемое оборудование, выбираем новый тип оборудования — Принтеры этикеток и создаем новый экземпляр. Не забудьте предварительно установить драйвера для самого принтера и компоненту интеграции для 1С.

Указываем драйвер, соответствующий модели принтера, выбираем модель оборудования и указываем настройки подключения. Особых сложностей здесь возникнуть не должно.

Перед дальнейшими действиями не забудьте перейти в настройки принтера и выставить в нем используемый тип и размер этикеток. А также выполните калибровку согласно инструкции.

Затем следует создать необходимые шаблоны этикеток в самой 1С. Сделать это несложно, перейдите в АдминистрированиеПечатные формы, отчеты и обработкиШаблоны этикеток, ценников и чеков ККМ и создайте новую этикетку по шаблону Этикетка (ценник) принтера этикеток.

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

В результате у вас должно получиться что-то похожее на это:

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

Как видим, ничего сложного в подключении принтера этикеток, поддерживаемого через БПО нет, а полноценно использовать его, включая создание новых этикеток, могут и простые пользователи без привлечения технических специалистов.

Принтер не поддерживается через БПО

Если вы внимательно изучили список поддерживаемого через БПО оборудования, то могли обратить внимание, что количество поддерживаемых моделей ограничено, а поддерживаемых бесплатно — еще меньше. Что делать если вашего принтера нет в списке или вы не хотите приобретать платный драйвер? В этом случае следует использовать принтер этикеток как обычный принтер.

Установите драйвера и также, как и в предыдущем разделе не забудьте настроить в свойствах принтера параметры носителя. Кстати, данный режим имеет один существенный плюс, вы можете открыть общий доступ к принтеру и печатать этикетки сразу из нескольких мест.

Будем надеяться, что перечисленные выше шаги никакой сложности у вас не вызовут и поэтому перейдем к настройкам 1С. Нам также потребуется создать шаблон этикетки, но делать это придется уже иным образом.

Точно также переходим в АдминистрированиеПечатные формы, отчеты и обработкиШаблоны этикеток, ценников и чеков ККМ, но выбираем Этикетка (ценник) для товара. После чего откроется похожий конструктор, но готовых шаблонов под размеры этикеток в нем нет, все придется настраивать самостоятельно. Процесс не сказать, чтобы сложный, но простой пользователь с ним явно не справится, поэтому все шаблоны придется готовить техническим специалистам.

Читайте также:  Epson surecolor sc t3400n картриджи

При этом не обязательно выполнять этикетку строго по размерам носителя, главное — соблюсти пропорции, также не забудьте задать область печати по размеру этикетки. Количество этикеток по горизонтали и вертикали выставляем равными единице.

Теперь очень важный момент! Обязательно перейдите в Параметры страницы и установите там:

  • Принтер — принтер этикеток
  • Ориентация — ландшафт
  • Масштаб — по ширине страницы
  • Поля и колонтитулы — равными нулю.

Важно! Если этого не сделать, то данные параметры придется задавать вручную при каждой печати!

Для проверки нажмите Еще — Предварительный просмотр и оцените расположение элементов на этикетке. В данном режиме некоторые поля могут выходить за пределы страницы, на это можно не обращать внимание, поведение текста в ячейках в любом случае задается в ее свойствах: обрезать, забивать переносить и т.д.

Что касается практического использования такого шаблона, то оно ничем не отличается от работы с шаблонами для БПО, в обработке печати ценников и этикеток выбираем созданный шаблон, который будет помечен значком текущего принтера и осуществляем печать.

Программа автоматически, не задавая лишних вопросов, пошлет задание на принтер этикеток в соответствии с настройками, которые мы задали в параметрах страницы при создании этикеток. Именно поэтому мы заостряли ваше внимание на обязательности этого шага.

Как видим, никаких существенных затруднений при использовании неподдерживаемого через БПО принтера этикеток нет. Для пользователей вообще нет особой разницы. Единственный минус — подготовка шаблонов этикеток ложится на плечи технических специалистов.

Надеемся данный материал окажется вам полезен и поможет полноценно и без лишних проблем эффективно использовать принтеры этикеток совместно с 1С.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Источник

Печать этикеток на принтере с ножом и автоматическая резка по группам

Весь товар в нашей организации стикеруется по приходу. В одной накладной, откуда печатаются этикетки, может быть до 100 позиций, каждой по 10-100 единиц, т.е. в результате печати может получиться лента с 1000 этикетками. Естественно, работать с такой лентой кладовщикам не удобно – приходится искать, где заканчивается один товар и начинается другой, рвать ленту на куски, делить между собой, на что уходит куча времени. Куда проще, чтобы принтер сам сразу нарезал этикетки по группам товаров.

Поэтому, вместо простенького принтера этикеток был закуплен промышленный принтер Zebra ZT410 с режущим лезвием. В комплекте поставляется утилита, которая позволяет рисовать этикетки и резать их в определенном кол-ве, но у нее нет API и она не поддерживает работу через командную строку. Через драйвер принтера есть возможность настройки резки этикеток, но, опять же, только через определённое кол-во напечатанных этикеток.

В решении задачи помогла возможность Windows (наверно, как и в других ОС) отправки любого задания на печать в драйвер принтера с последующим сохранением команд для принтера в файл.

Сохранить файл команд для принтера можно либо непосредственно перед печатью через диалоговое окно, поставив соответствующий флаг:

либо установив в качестве порта принтера значение FILE:

Файл с командами для принтера Zebra ZT410 выглядит примерно так:

На помощь в расшифровке пришел мануал по программированию и командам данного принтера. Кстати, этот язык программирования называется ZPL (Zebra Programming Language).

Блок команд находится между командами ^XA и ^XZ, то есть, грубо говоря, этот блок и есть наша этикетка. Внутри идут команды с размерами этикетки и качеством, закодированная строка (возможно в base64), содержащая картинку и текст этикетки.

Находим в мануале, что смена режимов работы принтера — ручное отрывание или резка, осуществляется командами ^MMT и ^MMC соответственно. Следовательно, задача заключается в том, чтобы весь текст команд разбить на блоки (этикетки) и последовательно их сравнить. Как только блок команд будет отличаться от предыдущего, вставляем в предыдущий блок команду перевода принтера в режим резки, а в текущем опять переводим принтер в режим отрывания.

Читайте также:  Linux failed to start journal service

Процедуру распарсивания текста я приводить не буду (можно скачать в конце статьи), но покажу, как изменился текст команд после его обработки:

На приведенном примере видно, что первые 3 блока команд одинаковые, а 4-ый отличается закодированной строкой с текстом этикетки. В первом блоке переводим принтер в режим отрывания (не известно в каком режиме принтер был до этого). В 3-ем блоке вставляем команду резки ^MMC, а в 4-ом обратно переводим в режим отрывания. Во время печати принтер отрежет ленту после 3-ей этикетки.

Теперь у нас есть файл с командами, которые укажут принтеру как распечатать и нарезать этикетки. Как отправить его на принтер? Существуют различные способы – использовать зебровскую утилиту либо сторонний софт, который отправляет на принтер команды, но нам подходит другой, самый простой — команда COPY командной строки Windows. Работает это так:

copy /b

Однако, данный метод не работает с сетевыми принтерами, подключенными через TCP/IP. Применяем небольшую хитрость – создаем общий доступ на локальном ПК для сетевого принтера. Отправка файла команд на него будет выглядеть так: «copy /b \\localhost\ ».

С теорией разобрались, приступаем к практике.

Для полной автоматизации процесса нам потребуется добавить в систему один и тот же принтер этикеток два раза с разными настройками.

У первого принтера в качестве порта укажем FILE, он будет сохранять файл команд.

Второй будет настроен на нормальную печать (и иметь общий доступ, если это сетевой принтер).

На стороне 1С каждый сам для себя может решить, как ему будет удобнее это доработать. Я решил доработать команду «Печать» на общей форме ПечатьДокументов (УТ 11) таким образом, чтобы доработка не касалась остальных сотрудников и не мешала им — добавляем в справочник «Пользователи» доп. реквизит типа булево «Печать этикеток». Теперь при печати система проверяет этот реквизит, если он есть, то задается вопрос: «Резать этикетки по группам?». «Да» — запускается наш новый механизм, «Нет» — работает типовой механизм отправки на печать на принтер, установленный по умолчанию.

И так, что нам осталось. «Распечатать» табличный документ с этикетками на первом принтере, который сохранит команды в файл. А затем обработать файл добавив команды резки и отправить сформированный файл на второй принтер командой copy, который уже и распечатает этикетки согласно отправленным командам. При «печати» на первом принтере система будет каждый раз спрашивать, куда сохранить наш файл команд, что не очень удобно, т.к. кладовщик должен минимально участвовать в этом процессе.

Чтобы система ничего не спрашивала, необходимо у принтера, сохраняющего файл команд, указать в качестве порта не FILE, а путь до файла.

В 1С у табличного документа есть свойство ИмяПринтера, куда нам нужно записать имя первого принтера, формирующего команды.

Для его поиска создадим COM-объект WScript.Network. Его метод EnumPrinterConnections() возвращает коллекцию, содержащую последовательно порт, а затем имя принтера.

Через найденный принтер «Печатаем» наш табличный документ с этикетками, в результате чего он сохранится в файл с командами:

Далее откроем, распарсим и вставим нужные команды в получившемся файле (ПринтерДляПечатиВФайл.ПутьКФайлу) так, чтобы между отличающимися блоками была команда ^MMC. Сама процедура парсинга громоздкая и не представляет особого технического интереса, поэтому я приложил ее отдельным файлом к статье.

Ну и теперь осталось только отправить на второй принтер наш подготовленный файл с командами:

ИмяПринтераДляПечати – в случае, если это сетевой принтер, то это имя, которое мы указываем в свойствах доступа расшаренного принтера:

Так как пользователь в процессе ничего не выбирает, то имя принтера для печати необходимо где-то хранить. Для этого я поменял тип ранее добавленного доп. реквизита «Печать этикеток» с булево на строку и храню там имя принтера.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector