Имя: Пароль:
1C
1С v8
Zebra. Печать на этикетках разного размера из 1С.
,
0 prozex
 
15.02.18
13:28
Всем добра, друзья!
Прошу помощи, ибо своими силами за 4 дня решить вопрос не смог.
Суть проблемы такова.
Имеем торговый объект, в котором все товары облепляются бумажульками стандартного размера 58х40 со штрих-кодами. Печатаем их на аппарате Zebra LP 2824 Plus. УТ 10.3. Возникла необходимость печатать еще и на бумажульках размеров 29х20. И все хорошо работает, если эти размеры (58х40 или 29х20) указывать и непосредственно в настройках драйвера принтера, и в самой обработке печати штрих-кодов в 1С. Если же нужный размер этикетки указывать только в 1С, не меняя его при этом в настройках драйвера, то либо на маленькой бумажке печатается часть большого штрих-кода, либо на большой бумажке печатается маленьких штрих-код, не занимающий её всю (такой же по размерам, как и на маленькой). Беда в том, что печатают эти штрих-коды продавцы в магазине. И пускать их в настройки драйвера никак нельзя. Иначе там такого наворочают, что придется ехать в магазин, все исправлять.
Пытался отыскать в самой Windows файл, в котором хранились бы текущие настройки драйвера Зебры, дабы из 1С программно его менять - не нашел. В реестре искал - результат тоже отрицательный. Наладил возможность отправки файла с кодом на языке ZPL непосредственно на принтер. Какой-нибудь текстик напечатать таким способом получается. А вот изменить размеры этикетки не удается. Комманда ^PW, задающая ширину страницы не дает желаемого эффекта (отправляю код на принтер: ^XA ^PW228 ^XZ), возможно, из-за неверного её применения, примеров в сети её использования не попадалось.
Итак, я прошу помощи. Как мне добраться программно до этих настроек ширины и высоты этикетки?
1 d4rkmesa
 
15.02.18
13:52
(0) А если не выбирать образец при печати из 1С, оставить по умолчанию (А4, к примеру)? Также, можно задавать в табличном документе ИмяПараметровПечати /
КлючПараметровПечати разное, для разных образцов, чтобы запоминались настройки. Напрямую выбирать образец вроде нельзя, к сожалению. Насчет печати напрямую на ZPL - достаточно сложная тема, ничего работающего, как нужно было, в свое время не нашел.
2 prozex
 
15.02.18
14:02
(1) , если оставить А4, то принтер на первой этикетке печатает штрих-код, а потом прогоняет столько пустых этикеток, чтобы их суммарная высота была равна высоте формата А4.
3 Базис
 
naïve
15.02.18
14:09
Сделай столько принтеров в винде, сколько размеров этикеток. В каждом задай параметры, и программно выбирай, на какой принтер печатать.
4 prozex
 
15.02.18
14:12
(3), не понял. Что значит "сделать принтер в винде"? Установить виртуальный принтер и с него как-то перенапрявлять все в Зебру? Или просто физически установить в магазине две Зебры, чтобы на одной печатать 58х40, а на другой 29х20?
5 aleksonic
 
15.02.18
14:12
Второй принтер нужно ставить.
Программно как заменить барабан с этикетками?
6 prozex
 
15.02.18
14:14
(5), второй принтер совсем не хочется ставить. Еще одна Зебра стоит около 15к. Всего 3 магазина. Итого 45к отдать. Не хотелось бы...
7 prozex
 
15.02.18
14:15
(5), а барабан с этикетками поменяют. Это не сложно.
8 d4rkmesa
 
15.02.18
14:19
(2) Это особенность печати этикеток в УТ10 вроде, сделай свою обработку печати или переделай немного. Только что проверил, удалил настройки табличного документа, в поле Размер в параметрах страницы стоит User defined, нормально вышел на печать этикетки 10*12 см.
9 Базис
 
naïve
15.02.18
14:20
Ты можешь сделать в винде сколько угодно принтеров на один физический.
10 aleksonic
 
15.02.18
14:21
(7) Если не сложно, то настройками все из 1с решается.
Была проблема с этикетками от поставщика в двух видах: с горизонтальным и вертикальным расположением. Решалось настройками из обработки печати. Пользователи лишь ставили в форме обработки галку например "Горизонтальная этикетка".
11 d4rkmesa
 
15.02.18
14:27
(8) Попробовал воспользоваться стандартной обработкой "Печать этикеток": формат "Принтер этикеток", указал ширину и высоту, а далее вывел табличный документ и распечатал на Зебре без выбора образца, размер - User Defined. Нормально распечаталось.
12 prozex
 
15.02.18
14:31
(9), с обособленным экземпляром драйвера для каждого из них?
13 prozex
 
15.02.18
14:33
(11), "без выбора образца" - тут о каком образце идет речь? Нигде не вижу каких бы то ни было образцов...
14 Kigo_Kigo
 
15.02.18
14:36
попробуйте убрать галку- использовать настройку дравейра, в дровах зебры
15 prozex
 
15.02.18
14:40
(8), у меня УТ 10.3.18.3. Стандартная обработка печати этикеток 1С. В настройках драйвера стоит ширина 56, высота 40. В обработке в 1С: Формат - принтер этикеток, Размеры: 29х20. Нажимаю "Печать". Появляется таб. поле со сформированной этикеткой. Далее Файл->Параметры страницы. Там: Размер - User defined, Формат - Manual feed, Масштаб - изменение этого параметра не влияет никак, Принетр - сама Зебра. Печатаю. Итог: На этикетке 58х40 в верхнем левом углу получаю напечатанный штрих-код размером 29х20.
Что не так сделал?
16 prozex
 
15.02.18
14:42
(14), нет такой галки. Драйвер 5.1.07.5146.
17 d4rkmesa
 
15.02.18
14:44
(15) Надо попробовать почистить сохраненные настройки печати этикетки. У вас все равно подбирается из настроек.
18 d4rkmesa
 
15.02.18
14:46
(15) При выводе табличного документа видно, что штрих-код масштабируется под размер? УТ стандартная?
19 prozex
 
15.02.18
14:46
(17), с радостью. Как это сделать?
20 Базис
 
naïve
15.02.18
14:48
Напиши мне в почту (в карточке видна), если до ночи не справишься. Решу вопрос, но дорого.
21 prozex
 
15.02.18
14:48
(18), при выводе таб. документа видна, что штрих-код имеет размеры, которые заданы в обработке 1С (29х20). Но размеры бумаги берутся из настроек драйвера.
22 Kigo_Kigo
 
15.02.18
14:49
23 d4rkmesa
 
15.02.18
14:49
(21) Email засвети, или напиши мне, вышлю обработку очистки настроек пользователя.
24 d4rkmesa
 
15.02.18
14:51
(22) Кстати да, может и в этом дело.
25 prozex
 
15.02.18
14:51
(22), какая версия драйвера? У меня совсем иначе все выглядит.
26 Vladal
 
15.02.18
14:52
(9) (12) Мы создавали разные форматы и при печати просто выбирали формат этикетки. Никаких "дублей виртуальных принтеров" и т.д.
27 prozex
 
15.02.18
14:54
(20), хорошо.
28 prozex
 
15.02.18
14:54
(23), засветил.
29 prozex
 
15.02.18
15:12
(3) и (9) сделал. Для каждого принтера в системе создается свой объект драйвера, не зависящий от другого. Таким образом, нужно для каждого размера этикетки выбирать нужный принтер с соответствующими настройками драйвера. Тогда все работает так, как требуется с обязательным действием со стороны пользователя - указанием нужного принтера.
Спасибо.
30 prozex
 
15.02.18
15:14
(22) Kigo Kigo, уточните версию драйвера? Если можно сделать все без создания доп. принтера в системе и выбора нужного принтера при печати, и уж тем более без отправки на принтер ZPL-кода для изменения ширины страницы, а просто установив другой драйвер, то было бы замечательно.
31 Kigo_Kigo
 
15.02.18
15:21
5.1.07.5675
32 prozex
 
15.02.18
15:25
(31), спасибо. Попробую поставить эту версию драйвера. Может, вообще вопрос решится одним принтером тогда.
33 d4rkmesa
 
15.02.18
15:40
(32) Выслал на всякий случай, можно удалить настройки в 1С и поэксперементировать.
34 prozex
 
16.02.18
12:35
(31), установил версию драйвера, в которой есть так галочка, о которой речь шла в (22) и (14). Установка/снятие этой галки никак не влияет на результат.
35 prozex
 
16.02.18
12:35
(33), попробую. Отпишусь, чем дело закончилось.
36 Йохохо
 
16.02.18
12:47
можно еще попробовать менять ИмяПараметровПечати под размер этикетки
37 prozex
 
16.02.18
13:00
(36), обработка "Печать этикеток", процедура Печать(ТаблицаТоваров). В ней встречается ИмяПараметровПечати лишь раз:
Таб.ИмяПараметровПечати =     "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка"+СокрЛП(ИмяКомпьютера());
Более упоминаний нет. На что пытаться поменять?
38 ejikbeznojek
 
16.02.18
13:01
(0) В настройках зебры же есть образцы.
https://prnt.sc/ifi8lg

Создай нужных размеров образец под каждую этикетку да и выбирай в 1С.
https://prnt.sc/ifi8zj

Только научи людей, что иногда при смене бумаги с 1го размера на другой, может потребоваться каллибровка.
39 ejikbeznojek
 
16.02.18
13:02
(38) + соответственно имяпараметровпечати() свои нужны по каждому виду этикеток
40 Йохохо
 
16.02.18
13:05
(37) "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка_58"+СокрЛП(ИмяКомпьютера()) "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка29"+СокрЛП(ИмяКомпьютера())
41 Лодырь
 
16.02.18
13:37
(0) Из ZPL попробуй LL (Label Length) и LH (Label Height)
42 prozex
 
16.02.18
14:36
(38) - годный вариант. Калибровка при смене бумаги нужна каждый раз.
43 prozex
 
16.02.18
14:39
(41) - индикатор на Зебре мигает, но результата нет никакого.
44 prozex
 
16.02.18
14:46
(33) спасибо. Но на результат это не повлияло.
45 Kigo_Kigo
 
16.02.18
15:06
(42) По идее, после открытия и закрытия крышки- он калибруется сам, но бывает нужна и принудительная калибровка
46 Йохохо
 
16.02.18
15:10
(42) берите бумагу с одинаковой подложкой, помойму калибруется не размер, а именно просвет
47 1sanekmaloi1
 
16.02.18
15:16
(38) Дело говорит, точно так же шаблонов понаделал и польз только выбирает при печати нужный макет
48 Rema Dan
 
16.02.18
15:33
(0) Самым надёжным решением было бы переписать печать полностью на EPL протокол. Ему совершенно всё-равно на размеры бумаги в принтере и скорость печати EPL значительно опережает печать табличного документа. Из минусов у EPL стоит отметить сложность кастомизации внешнего вида этикеток и необходимость перерисовывать все макеты на EPL.
49 prozex
 
16.02.18
17:49
(45) Да, калибруется сам после пары нажатий на кнопку на аппарате, что весьма удобно.
(46) Подложка одинаковая, как и зазоры между этикетками. Видимо, калибровка учитывает не только зазоры.
(47) Да. Даже конфигурацию править не нужно в таком случае.
50 prozex
 
16.02.18
17:52
(48) Пожалуй, ультра-универсальное решение. Но и самое сложное. Хотя где-то в сети натыкался на статью, в которой ребята описывали, как они с помощью EPL на Зебре печатали чеки, как на АСПД.