Печать этикеток в формате ZPL/EPL

0. 134 12.12.13 13:19 Сейчас в теме
Компонента для печати на принтере этикеток, подключенном к компьютеру в сети.
Обработка для формирования этикеток в формате ZPL и EPL по шаблону (1С 8.2 / Обычная форма).

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mxm2 1194 18.12.13 08:51 Сейчас в теме
http://infostart.ru/public/196424/ для УФ. (имитация копирования файла по сетевому пути)
2. Johny_v 134 18.12.13 11:08 Сейчас в теме
Это не совсем то же самое. В вашем случае идет печать на сетевой принтер с сетевым интерфейсом Ethernet.
Моя библиотека печатает на принтеры подключенные через USB/COM/LPT к компьютеру. В том числе и по сети (Например с терминального сервера идет печать на принтеры клиентов).
С такими принтерами нет возможности просто скопировать на них файл с этикеткой или отправить его по FTP.
Там нужно отправлять данные в порт принтера, что и делает данная библиотека.
И еще один плюс библиотеки - это отправка на принтер строки. Нет необходимости создавать и записывать файл, можно сразу отправить текст этикетки на принтер.
3. mxm2 1194 18.12.13 22:14 Сейчас в теме
(2)
В вашем случае идет печать на сетевой принтер с сетевым интерфейсом Ethernet.

совсем не так: обработка http://infostart.ru/public/196424/ используется с принтером TSC TDP 225, подключенном к клиентскому компу через кабель USB, и настроенном как доступный по сети (вкладка Доступ). Печать возможна как с любого компа в сети, так и с терминального сервера по пути, указанному во вкладке Доступ принтера. Работает такая связка значительно быстрее чем через "родные" драйвера/компоненты (платные - не испытывались). Сама этикетка строится на том-же языке, что и у Вас, однако при этом не требует ни внешних компонент ни макетов.
starik-2005; +1 Ответить
4. Titov222 7 26.05.14 13:41 Сейчас в теме
Подскажите, пожалуйста, а где взять текст модуля СерверПечати?
5. Johny_v 134 26.05.14 14:05 Сейчас в теме
(4) Titov222,
СерверПечати - Это не модуль, а объект внешней библиотеки VKV8MEANS.dll
Создается следующим образом:
СерверПечати = Новый("AddIn.VKV8MEA");

6. etmarket 627 28.12.14 16:50 Сейчас в теме
Поле агрегатного объекта не обнаружено (ОтправитьСтрокуДанныхНаПринтер)
Поле агрегатного объекта не обнаружено (SendRawDataStringToPrinter)
Поле агрегатного объекта не обнаружено (ОтправитьФайлДанныхНаПринтер)
Поле агрегатного объекта не обнаружено (SendRawDataFileToPrinter)
Поле агрегатного объекта не обнаружено (ФоноваяОтправкаФайлаДанныхНаПринтер)
Поле агрегатного объекта не обнаружено (BackgroundSendRawDataFileToPrinter)

Ваша библиотека из файла "Компонента печати этикеток на принтере" не содержит методов! Она вообще ничего не содержит! Я открывал её редактором ресурсов. Что за шарлотанство?
7. Johny_v 134 12.01.15 11:51 Сейчас в теме
Спасибо за выбор моей библиотеки. Она давно и успешно работает и не только у меня одного.
Никакого шарлотанства в ней нет. Просто нужно внимательнее читать описание:

ОтправитьСтрокуДанныхНаПринтер - Это имя функции которую необходимо вызвать.

Пример работы:

СерверПечати = Новый("AddIn.VKV8MEA");
СерверПечати.ОтправитьСтрокуДанныхНаПринтер("\\Comp\Zebra", "^XA");


Если у Вас возникнут проблемы с этой библиотекой, пишите, постараюсь помочь.
8. etmarket 627 12.01.15 22:13 Сейчас в теме
(7) я всё внимательно прочитал. Создал объект "СерверПечати", аналогично приведенному примеру и вызвал его метод "ОтправитьСтрокуДанныхНаПринтер". И такого метода у объекта не существует! Как раз по причине, что я описал выше:
Ваша библиотека из файла "Компонента печати этикеток на принтере" не содержит методов! Она вообще ничего не содержит! Я открывал её редактором ресурсов. Что за шарлотанство?


Поэтому никакого недопонимания нет. Просто вы предлагаете людям за 1 СМ скачать "пустышку", которая ничего не делает!
9. Johny_v 134 13.01.15 10:06 Сейчас в теме
(8) На какой версии 1С Вы хотите работать с моей компонентой?
10. etmarket 627 13.01.15 21:51 Сейчас в теме
(9) не имеет значение, какой версией 1С пользоваться при создании объекта из библиотеки, хоть в приложении из Visual Studio, если для объекта отсутствует код методов. Не пудрите людям мозги!
11. Johny_v 134 14.01.15 08:03 Сейчас в теме
(10) Разница есть. Моя компонента построена по технологии Native API, которая поддерживается 1С, начиная с версии 1С Предприятия 8. Поэтому в 1С 7.7 она работать не будет. А вот на 8.3 я ее не тестировал, постараюсь проверить в ближайшее время.

Компоненту здесь выкладывал по просьбе людей, которые ей тоже успешно пользуются.
Вы первый человек, у которого возникла такая проблема с ней.
Если Вам очень хочется что-то доказать, то прежде чем писать что это пустышка, попробуйте для начала запустить ее на платформе версии 8.2 для которой она разрабатывалась.
12. Johny_v 134 14.01.15 08:29 Сейчас в теме
Перезалил архив с компонентой, в которой точно все работает
13. LeoAndrey 03.02.15 13:45 Сейчас в теме
Печатаю этикетки на ZPL из 1c таким незамысловатым способом:
Текст = Новый ЗаписьТекста(Путь,КодировкаТекста.OEM);
Текст.Записать(Шаблон);
Текст.Закрыть();

Где:
- Путь- куда отправляем текстовый код ZPL: порт принтера, сетевой путь или имя файла.
- КодировкаТекста.OEM - у меня работает с кодировкой текста ОЕМ.
- Шаблон - собственно текст программы на ZPL.
maxopik2; Novoross11; Basko; Johny_v; +4 Ответить
14. drat9 01.07.16 10:44 Сейчас в теме
(13) LeoAndrey, у меня сетевой принтер, никак не отправляет на него (нету доступа), приведите пример путь сетевой адрес+ порт + имя файла
15. kentavr27 93 24.10.16 19:05 Сейчас в теме
Не могу не согласиться с одним из "ораторов"... Что-то здесь не то...
{Форма.Форма.Форма(31)}: Метод объекта не обнаружен (ОтправитьСтрокуДанныхНаПринтер)
Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);


В реестре присутствует (зарегилась)
win XP, Тонкий клиент, 1С 8.3. В обычном приложении результат такой же...
Клиентский код:
	ЭтикеткаТовара = "^XA
	|^FO20,25
	|^A@N,10,9,^FDНаименование товара^FS
	|^FO20,49
	|^A@N,10,9,^FDАрт.123456789^FS
	|^FO20,73
	|^A@N,10,9,^FDПроизводитель:Фабрика^FS
	|^FO20,97
	|^FO50,187
	|^BY4^BEN,70,Y,N 
	|^FD4909500671160^FS
	|^XZ";
	
	//СерверПечати = Новый ("AddIn.VKV8MEA");
	СерверПечати = Новый COMОбъект("AddIn.VKV8MEA");
	ИмяПринтера = "\\192.168.20.253\TSC_TDP-245";
	Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);
	Если НЕ Результат Тогда
		Сообщить("Ошибка печати этикетки");
	КонецЕсли;
Показать


На любой из приведенных методов -- ругается. Так все же, где собака порылась?
16. Johny_v 134 25.10.16 08:04 Сейчас в теме
(15) kentavr27,
Добрый день. Какая конфигурация?
Какой тип переменной СервисПечати?
17. Johny_v 134 25.10.16 12:07 Сейчас в теме
(15) kentavr27,
Для управляемых форм необходимо сначала подключить внешнюю компоненту, а потом уже создавать объект.
 ЭтикеткаТовара = "^XA
    |^FO20,25
    |^A@N,10,9,^FDНаименование товара^FS
    |^FO20,49
    |^A@N,10,9,^FDАрт.123456789^FS
    |^FO20,73
    |^A@N,10,9,^FDПроизводитель:Фабрика^FS
    |^FO20,97
    |^FO50,187
    |^BY4^BEN,70,Y,N 
    |^FD4909500671160^FS
    |^XZ";
	
	Если НЕ ПодключитьВнешнююКомпоненту("AddIn.VKV8MEA") Тогда
		Сообщить("Компонента печати этикеток не загружена");
	КонецЕсли;
	
    СерверПечати = Новый("AddIn.VKV8MEA");
    ИмяПринтера = "\\10.10.10.234\Zebra1";
    Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);
    Если НЕ Результат Тогда
        Сообщить("Ошибка печати этикетки");
    КонецЕсли;
Показать
18. modelmarat 21.02.17 07:01 Сейчас в теме
Евгений, у меня 1с предприятие 8.3 принтер godex g330, язык EZPL, отсылаю корректную строку - принтер молчит, отсылаю некорректную, принтер печатает "File not found". По всем проверкам обработка проходит успешно и в конце функция "ОтправитьСтрокуДанныхНаПринтер" выдаёт истину. Есть ли в коде компоненты какие-то модули, работоспособность которых зависит от языка принтера? Подойдёт ли она для моего принтера с языком EZPL? Я досконально не сравнивал, но есть подозрение, что это микс ZPL и EPL.
19. Johny_v 134 21.02.17 10:44 Сейчас в теме
Добрый день.
Компонента просто отправляет переданные данные в порт принтера и ее работа не должна зависеть от языка программирования. Если метод ОтправитьСтрокуДанныхНаПринтер вернул Истина, то значит данные отправлены на принтер. Если принтер ничего не делает, то скорее всего не подходит формат этикетки или он ждет команды завершения этикетки аналог XZ. Попробуйте сформировать текст этикетки в программе Qlabel и отправить его. Если не поможет, то нужно изучать документацию.
20. modelmarat 21.02.17 11:16 Сейчас в теме
Я разобрался в чём загвоздка, 1C отправляет в метод ОтправитьСтрокуДанныхНаПринтер данные в формате windows 1251, а мой принтер по умолчанию принимает данные в формате UTF-8, если воспользоваться методом ОтправитьФайлДанныхНаПринтер, а файл предварительно сохранить в кодировке UTF-8 то всё получается. Однако мне интересно отправлять данные непосредственно с программы, не сохраняя их в файл. Как можно это реализовать?
21. LeoAndrey 21.02.17 13:38 Сейчас в теме
Отправляю на печать таким способом:

Текст = Новый ЗаписьТекста(\\komp1\Zebra, КодировкаТекста.OEM);
	Текст.Записать(Шаблон);
	Текст.Закрыть();


,где принтер расшареный по сети \\komp1\Zebra
Шаблон - текст программы на ZPL.
Zhilyakovdr; +1 Ответить
62. Felix-pele 01.02.20 17:45 Сейчас в теме
(21)
Андрей, подскажите пожалуйста, такой метод подходит только для принтеров подключенных через USB или для сетевых тоже так можно отправку организовать?

через команду copy у меня не отправляется сам файл. Подскажите, возможно в коде трабла?
КомандаОтправить.ДобавитьСтроку("copy "+ ИмяФайла + " АдресПринтера" );
результат в bat файле:
copy D:\1C\PUBID_240798-VKV8\TEMP\zpl.txt 9100 \\10.84.50.41\D2J191401
64. LeoAndrey 03.02.20 15:58 Сейчас в теме
(62)
Добрый день!
У меня в системе печати этикеток более 10 принтеров Zebra. Все расшарены по сети. К компу подключены по COM, LPT и USB портам.
На печать отправляю следующими командами из 1с:

Текст = Новый ЗаписьТекста("\\komp1\Zebra", КодировкаТекста.OEM);
Текст.Записать(Шаблон);
Текст.Закрыть();

"\\komp1\Zebra" - принтер в сети, у вас "\\10.84.50.41\D2J191401"
КодировкаТекста.OEM - задаю кодировку текста, это важно! Скорее всего у вас файл в неправильной кодировке и принтер не будет его воспринимать как набор команд к печати.
Шаблон - текст программы на языке ZPL. Можно и на другом языке вашего принтера (у меня, например, есть принтер чеков на языке ESC/pos. На него отправляю этим же способом).
starik-2005; +1 Ответить
65. starik-2005 2260 03.02.20 16:04 Сейчас в теме
(64) еще со времен 7.7 (года с 2к) так делал - отлично все работает. Ну и скорость, конечно, высокая. Неясна цель использования ВК для этого...
66. Johny_v 134 05.02.20 08:55 Сейчас в теме
(65) Это всего-лишь один из способов решения. Любую задачу можно решить различными способами, я выбрал свой. С компонентой можно печатать не открывая общий доступ к принтеру. Просто указываешь системное имя и печатаешь то что надо. У нас на компьютерах пользователей полностью закрыт общий доступ ко всем сетевым ресурсам.
Еще один плюс для меня, как разработчика - собственное развитие и расширение кругозора. Иногда полезно выходить за рамки 1С, когда нет явных решений или не устраивает их производительность. Например, как с внешними источниками данными и ADO.
67. starik-2005 2260 05.02.20 10:08 Сейчас в теме
(66)
Иногда полезно выходить за рамки 1С, когда нет явных решений или не устраивает их производительность. Например, как с внешними источниками данными и ADO.
Так в 1С есть работа с внешними источниками через ODBC - даже хранимые процедуры можно использовать.

Сделать ВК - это полезно, но работа с принтером возможна и без подключенного сетевого принтера - просто "COPY /b text.txt prn"
68. Johny_v 134 05.02.20 11:24 Сейчас в теме
(67)
Так в 1С есть работа с внешними источниками через ODBC - даже хранимые процедуры можно использовать.

Только внешние источники работают не так быстро, как этого хотелось бы.
69. starik-2005 2260 08.02.20 17:05 Сейчас в теме
(68) так и прямое подключение к СУБД не всегда быстро работает. Вот, например, список паспортов недействительных. Их там сильно овер 100кк. Тащить это все в СУБД даже нативно, если таблица проиндексирована, будет не сильно быстрее, чем разложить по файлам с именем, равным номеру серии (их вполне можно держать одновременно открытыми в каком-нить соотыетствии). И сравниваться это будет не сильно долше, чем поиск запросом. Т.е. все зависит от алгоритма. А есть возможность вообще за О(1) чтение и запись каждого паспорта производить - это будет на порядок быстрее нативных компонент для помещения и последующей проверки этого, используя СУБД для хранения.

Просто иногда нам кажется, что нужно сделать что-то, используя базу данных. Но в действительности для множества проблем NoSQL куда эффективнее (и я сейчас не о девопсовском носкуле говорю, а вообще о том, что часто база данных и не нужна - достаточно простых файлов в файловой системе, а иногда и они не нужны).
70. mxm2 1194 10.02.20 08:05 Сейчас в теме
(21)Не подскажете как на ZPL указать количество этикеток, которое принтер должен напечатать? (аналог "P" в EPL2)
71. Johny_v 134 10.02.20 08:10 Сейчас в теме
(70)
к, которое принтер должен напечатать? (ана


Посмотрите команду ^PQ в документации:

https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zp­l-zbi2-pm-en.pdf
22. LeoAndrey 21.02.17 13:39 Сейчас в теме
Опечатка: принтер конечно в кавычках: "\\komp1\Zebra"
23. LeoAndrey 21.02.17 13:46 Сейчас в теме
Еще как вариант можно с командной строки командой copy.
24. Johny_v 134 21.02.17 15:03 Сейчас в теме
Посмотрю вечером в исходниках. Может там что-то есть с кодировкой.
25. userAstra 09.01.18 13:36 Сейчас в теме
Здравствуйте!
Работает ли компонента с "1С:Предприятие 8.3 (8.3.10.2667)"?
И в принципе не важно какой принтер?
мы хотим принтер Brady подцепить к 1С - там то же свой язык
26. Johny_v 134 09.01.18 14:06 Сейчас в теме
На этой платформе будет работать. Принтер должен поддерживать языки программирования EPL/ZPL или другие.
По принтерам Brady я не нашел информацию о поддерживаемых языках, поэтому компонента может быть бесполезной для Вас.
Уточните какие языки программирования поддерживает Ваш принтер.
27. userAstra 09.01.18 14:57 Сейчас в теме
Язык называется - TSPL.
Да мы макеты делаем посылаем на порт вручную - все нормально - печатает.
Вопрос встал по автоматизации - подключение BRADY к 1С.

Принципиально нет ведь разницы, что на порт принтера посылать через вашу компоненту, лишь бы принтер сам понимал?
30. Johny_v 134 09.01.18 17:02 Сейчас в теме
(27)
Компоненте без разницы какой текст отправлять в порт принтера. Будет работать с любым языком.
Просто если язык не поддерживается, то принтер не будет реагировать на команды или реагировать не должным образом.
А вообще есть уже новая версия обработки, нормальная. Только все руки не доходят выложить ее.
28. userAstra 09.01.18 15:18 Сейчас в теме
И еще вопрос по правам использования вашей компоненты.

Если мы заплатим абонентскую плату и скачаем ваши компоненты - можем свободно использовать их в своих проектах?
29. Johny_v 134 09.01.18 16:59 Сейчас в теме
Да, используйте где хотите. Буду рад если она Вам поможет.
31. userAstra 11.01.18 15:45 Сейчас в теме
Работаю с "1С:Предприятие 8.3 (8.3.10.2667)"
Вызов метода "ОтправитьСтрокуДанныхНаПринтер" вызывает ошибку, см. ниже

{Отчет.ТестПечатиЭтикеток.Форма.Форма.Форма(81)}: Ошибка при вызове метода контекста
Результат = ОбъектПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);
по причине: Использование синхронных методов на клиенте запрещено!
32. userAstra 12.01.18 15:35 Сейчас в теме
Разобрался
в свойствах конфигурации в категории "Совместимость" все настраивается
33. Johny_v 134 12.01.18 21:07 Сейчас в теме
Да, нужно поменять "Свойства конфигурации -> Совместимость -> Режим использования синхронных вызовов"
34. userAstra 15.01.18 08:28 Сейчас в теме
Здравствуйте!

Работаю с "1С:Предприятие 8.3 (8.3.10.2667)" . Используется термотрансферный принтер Brady. Язык принтера -TSPL.

Метод ОтправитьСтрокуДанныхНаПринтер возвращает false.
Это означает что компонента не видит принтер?

Код для посылки на печать:

Попытка
		ОбъектПечати = Новый("AddIn.VKV8MEA");
	Исключение
		Сообщить("Ошибка создания объекта печати: " + ОписаниеОшибки());
		Возврат;
	КонецПопытки;

	 ИмяПринтера="\\192.168.0.40\Brady";	
        ЭтикеткаТовара="SIZE 50 mm, 40 mm
        |GAP 3 mm,0 mm
        |DIRECTION 0
        |CLS
        |TEXT 25,125, ""3"",0,1,1, ""Проверка""
        |BARCODE 25,205,""EAN13"",100,1,0,4,2, ""1234567890123""
        |PRINT 1,1";

	Результат = ОбъектПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);	
	Если НЕ Результат Тогда //Этикетка не отправлена на печать
		Сообщить("Ошибка печати этикетки";
	КонецЕсли;
Показать
35. userAstra 15.01.18 08:40 Сейчас в теме
Метод ОтправитьФайлДанныхНаПринтер то же самое выдает.

Но команда через CMD работает
copy C:\1CVKV8\bred.txt \\192.168.0.40\Brady
38. Johny_v 134 15.01.18 11:40 Сейчас в теме
(34)
Метод ОтправитьСтрокуДанныхНаПринтер возвращает false.
Это означает что компонента не видит принтер?

Означает что компонента не может отправить данные в порт принтера. Причин много может быть. Неправильно указан адрес принтера, Нет доступа - Попробуйте открыть общий доступ к принтеру. Если отправка идет на сетевой принтер, попробуйте добавить его в системе в Принтеры с родным драйвером и отправлять на него как //Имя локального компьютера/Имя принтера, хотя должно и по сетевому адресу все работать.
36. userAstra 15.01.18 08:41 Сейчас в теме
Работаю правда под XP
Может в этом дело?
37. userAstra 15.01.18 08:56 Сейчас в теме
Вы все таки под 1C 8.3 тестировали?
39. Johny_v 134 15.01.18 11:41 Сейчас в теме
(37) Сейчас сами работаем на 1С:Предприятие 8.3 (8.3.10.2561). Правда на обычных формах. Все работает отлично.
40. Johny_v 134 15.01.18 11:42 Сейчас в теме
41. user1005513 10.10.18 13:15 Сейчас в теме
Добрый день. Не удается подключить внешнюю компоненту: Результат = ПодключитьВнешнююКомпоненту("AddIn.VKV8MEA").
В случае отрицательного результата выходит оповещение, что "Ошибка подключения внешней компоненты печати Zebra. Возможна печать только стандартных этикеток.". Это исправимая ошибка?
Управление торговлей, редакция 11 (11.4.3.144), 1С:Предприятие 8.3 (8.3.11.3133).
43. Johny_v 134 19.10.18 22:47 Сейчас в теме
(41) Сейчас проверил код из сообщения (17), который отрабатывает нормально.
Тестировал на 1С:Предприятие 8.3 (8.3.12.1595) и Управление торговлей, редакция 11 (11.3.3.190).

"Ошибка подключения внешней компоненты печати Zebra" означает что 1С не может подключить компоненту.
Может две причины:
1. Не установлен Microsoft .NET Framework 4
2. Не зарегистрирована компонента с помощью команды regasm (Пункт 1)

На какой системе работаете?
42. Johny_v 134 10.10.18 18:42 Сейчас в теме
Добрый день. Завтра проверю, отпишусь.
44. mar_a 25 11.02.19 16:24 Сейчас в теме
Этикетка формируется в виде команд принтера для печати нужного текста и изображений.
Пример этикетки в формате ZPL:

^XA
^FO20,25
^A@N,10,9,E:ARI000.FNT^FDBosch1234 Sup^FS
^FO20,49
^A@N,10,9,E:ARI001.FNT^FDАрт.1234^FS
^FO370,49
^IME:RCT.GRF^FS
^FO385,49
^A@N,8,7,E:ARI002.FNT^FDМТ14^FS
^FO50,64
^BY4^BEN,70,Y,N
^FD4909500320181^FS
^XZ
Показать


Вы реально это прописывали в ручную ???
Покоординатно???
Ого...

Я пользуюсь фирменной программой BarCode Label для принтера Zebra и сохраняю этот шаблон который сам спроектирую в формат ZPL , EPL, ZPL2. Этикетки получаются крутыми и информация там видна , шрифт , наклон, стили, линии идеально как надо ЗАКАЗЧИКУ
Но координатно , я снимаю шляпу перед ВАШЕЙ настойчивостью, и пути к цели.
45. Johny_v 134 11.02.19 18:26 Сейчас в теме
(44)
программой BarCode Label для принтера Zebra и сохраняю этот шаблон который сам спроектирую в формат ZPL , EPL, ZPL2. Этикетки получаются крутыми и информация там видна , шрифт , наклон, стили, линии идеально как надо ЗАКАЗЧИКУ
Но координатно , я снимаю шляпу перед ВАШЕЙ


Конечно в визуальном редакторе будет удобнее. У меня шаблон настраивается в 1С. Да, для каждого элемента задаются координаты, но с предварительным просмотром это проще сделать. Вот-так выглядит настройка шаблона:
Прикрепленные файлы:
46. mar_a 25 12.02.19 00:30 Сейчас в теме
(45)
Это совершенно другое дело...
Хотя в визуальном редакторе все-таки удобнее и перетаскивание работает...

ВЫ изобрели небольшого слона, или маленький велосипед.
Но похвально - все аккуратно и практично...
Много времени на визуализатор ушло?

Идея то заключалась не в создании самой этикетки в 1С, а скорее в интересном методе печати по сети не используя СЕТЕВЫЕ интерфейсы самого принтера?
Очень смелое решение...
47. Johny_v 134 12.02.19 07:09 Сейчас в теме
(46)

Идея то заключалась не в создании самой этикетки в 1С, а скорее в интересном методе печати по сети не используя СЕТЕВЫЕ интерфейсы самого принтера?


В принтерах которые у нас стоят, нет сетевых интерфейсов. Поэтому пришлось немного изобретать. Делалось это лет 6 назад, тогда это было самым удобным найденным решением. Сейчас может что-то и лучше найдется (я не уверен). У меня все хорошо работает в течении этого времени, поэтому ничего менять пока не планируется.
48. polukaroff 3 26.02.19 21:01 Сейчас в теме
При регистрации компоненты пишет, что "типы зарегистрированы успешно",
однако ПодключитьВнешнююКомпоненту("AddIn.VKV8MEA") - не срабатывает, возвращает "ложь"
Платформа 8.3.14.1565
Microsoft .NET Framework 4 уже является частью этой операционной системы. Установка распространяемого пакета .NET Framework 4 не требуется.
Куда копать?
49. bizdim 1 26.07.19 14:40 Сейчас в теме
Как данный метод будет работать в терминальном режиме, если принтер этикеток подключен к локальному ПК, который в свою очередь подключается через RDP к серверу с 1С?

Как в этом случае нужно указывать принтер?
Я думаю что запись вида:
    СерверПечати = Новый("AddIn.VKV8MEA");
    ИмяПринтера = "\\10.10.10.234\Zebra1";
    Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);

будет неправильной.
50. Johny_v 134 26.07.19 15:09 Сейчас в теме
(49)
Как данный метод будет работать в терминальном режиме, если принтер этикеток подключен к локальному ПК, который в свою очередь подключается через RDP к серверу с 1С?

Так же как и в локальном режиме.
1. Открываете сетевой доступ к принтеру.
2. Прописываете путь к нему по ip-адресу:
ИмяПринтера = "\\10.10.10.234\СетевоеИмяПринтера";

или по имени:
ИмяПринтера = "\\MYPC\СетевоеИмяПринтера";


Имя принтера берем из закладки "Доступ - Сетевое имя" в свойствах принтера на компьютере где он установлен.
51. kerimkul 41 19.08.19 14:52 Сейчас в теме
Добрый день!
Платформа 8.3.15.1534
Ошибка подключения внешней компоненты печати Zebra
52. kerimkul 41 21.08.19 07:34 Сейчас в теме
(51)
Компонента не подключалась в Windows 7(64)
Оказалось, что в батнике регистрации каталог Framework надо было поменять на Framework64,

т.е. вместо содержания батника например такого:

set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
regasm.exe C:\Adm\COM\VKV8MEANS.dll /codebase

надо было сделать во так:

set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
regasm.exe C:\Adm\COM\VKV8MEANS.dll /codebase

Вдруг кому поможет.
53. user1083957 12.11.19 11:42 Сейчас в теме
Евгений добрый день!

Удалось запустить вашу компоненту для печати. С форматом ZPL разобрался и печать проходит.

Есть вопрос относительно двустороннего обмена, в частности интересует возврат через ключ ^HV3 TID от RFID метки, хочу ловить его в 1С или библиотека этого не предусматривает?
И Вы демонстрировали работу редактора этикетки, тоже Ваш?
54. Johny_v 134 12.11.19 13:03 Сейчас в теме
(53)

Есть вопрос относительно двустороннего обмена, в частности интересует возврат через ключ ^HV3 TID от RFID метки, хочу ловить его в 1С или библиотека этого не предусматривает?
И Вы демонстрировали работу редактора этикетки, тоже Ваш?

Функционал работы с RFID не реализован. Если честно, то у меня не было таких принтеров. С моей библиотекой будет работать только печать.
Редактор тоже мой. В планах обновить публикацию с новой обработкой (может и под управляемые формы доделать), но все никак не найду времени на это. Еще хочется компоненту на Native API переделать, чтобы без регистрации все работало.
55. Felix-pele 30.01.20 13:58 Сейчас в теме
Добрый день
конфигурация УПП платформа (8.3.10.2580). работает по RDP. \\10.84.20.61\D54221807 Zebra принтер сетевой. получаю ошибку:
{ВнешняяОбработка.ПечатьЭтикеток.МодульОбъекта(429)}: Значение не является значением объектного типа (ОтправитьСтрокуДанныхНаПринтер)
Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара);
в чем может быть проблема?
56. Johny_v 134 30.01.20 14:27 Сейчас в теме
(55)
чением объектного типа (ОтправитьСтрокуДанныхНаПринтер)
Результат = СерверПечати.ОтправитьСтрокуДанныхНаПринтер(ИмяПринтера, ЭтикеткаТовара)

Это значит что "СерверПечати = Неопределено". Не подключилась компонента или она не зарегистрирована.
57. Felix-pele 30.01.20 16:12 Сейчас в теме
(56)
Все делал по инструкции, запустил .bat файл от админа, получил сообщение:
---------------------------------------------------
Microsoft .NET Framework Assembly Registration Utility version 4.7.3062.0
for Microsoft .NET Framework version 4.7.3062.0
Copyright © Microsoft Corporation. All rights reserved.

Types registered successfully
---------------------------------------------------
Done.
Press any key to continue . . .
компоненту только через bat файл регистрировать. правильно ? или еще какие-то способ есть?
58. Johny_v 134 30.01.20 16:42 Сейчас в теме
(57)

---------------------------------------------------
Done.
Press any key to continue . . .
компоненту только через bat файл регистрировать. правильно ? или еще какие-то способ ес


Других способов регистрации нет.
Недавно была такая проблема на одном сервере, но я не стал разбираться с ней. Написал новую компоненту на c++, по технологии Native API. Давно хотел это сделать. Работает без всяких .NET-фреймворков и 1С-кой автоматом подгружается. Правда пока только под виндой скомпилировал.

Могу выложить, если сильно надо.
59. Felix-pele 30.01.20 17:17 Сейчас в теме
(58)
если для Вас не составит труда, поделиться компонентой, буду очень благодарен. а то застрял
63. Johny_v 134 01.02.20 23:35 Сейчас в теме
60. Johny_v 134 30.01.20 18:30 Сейчас в теме
Сделаю новую публикацию.
61. Felix-pele 31.01.20 19:03 Сейчас в теме
етот вариант тоже пробовал:
64-битная то надо в батнике путь исправить
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319
регистрация прошла успешно.

проверяю
Если НЕ ПодключитьВнешнююКомпоненту("AddIn.VKV8MEA";) Тогда
Сообщить("Компонента печати этикеток не загружена";);
КонецЕсли;
ПодключитьВнешнююКомпоненту("AddIn.VKV8MEA";); возвращает Истина
а вот
СерверПечати = Новый("AddIn.VKV8MEA";); возвращает Неопределено

Вопрос почему? если ВнешняяКомпонента возвращает значение Истина
Оставьте свое сообщение
Вопросы с вознаграждением