Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Добавить на Печатную форму ШтрихКод

Добавить на Печатную форму ШтрихКод
Я
   frau
 
29.05.18 - 16:58
Стоит задача создать механизм штрихкодирования документов (на базе Розницы).
То есть на уже существующие печатные формы документов формировать и выводить Штрихкод. Пытаюсь разбираться в ОбщийМодуль.УправлениеПечатьюПереопределяемый - ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода), т.к. туда обращаются документы при печати.
Может у кого был опыт - прошу посоветовать в каком направлении двигаться. Подойдут ли методы а-ля .ПолучитьОбласть? Заранее спасибо
 
 
   anatoly
 
1 - 29.05.18 - 17:20
"в каком направлении двигаться."
подключить 1cbarcod.dll и искать примеры.

а что в рознице нет разве ТОРГ-12 со штрихкодом?
или этикеток?
   frau
 
2 - 29.05.18 - 17:23
(1) есть некоторые формы с штрихкодами (в т.ч. этикетки), но мне надо предоставить пользователю выбор: перед ним перечень всех печатных форм, а он отмечает на каких печатать штрихкод.
   dezss
 
3 - 29.05.18 - 17:29
(2) посмотреть как сделано там
   LienXo
 
4 - 29.05.18 - 18:17
(0) если нет любви к длл-кам можно через шрифты замутить, но тогда его на нужные машины ставить надо
   Вафель
 
5 - 29.05.18 - 18:32
в типовых же есть компонента штрихкода
   d4rkmesa
 
6 - 29.05.18 - 19:21
(0) Примерно так (если это актуальная конфигурация - работает на УТ 11.3.4):

// Вставить содержимое обработчика.

ТабличныйДокумент = Новый ТабличныйДокумент;

Обработка =  РеквизитФормыВЗначение("Объект");

Макет = Обработка.ПолучитьМакет("Макет");

ОбластьМакета = Макет.ПолучитьОбласть("ОбластьМакета");

Сообщение = "(01)" + "04600822901507" + "(11)" + "161109" + "(10)" + "16453I";    

Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;

ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота",          Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе));

ПараметрыШтрихкода.Вставить("Штрихкод",        Сообщение);
ПараметрыШтрихкода.Вставить("ТипКода",         2);//ean-128

ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
ПараметрыШтрихкода.Вставить("РазмерШрифта",    12);
ПараметрыШтрихкода.Вставить("УголПоворота",    270);    

ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);

ТабличныйДокумент.Вывести(ОбластьМакета);

Возврат ТабличныйДокумент;
   d4rkmesa
 
7 - 29.05.18 - 19:25
Правда, процедура МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода) довольно капризная, к примеру, у меня не получилось сделать "повернутый" на 90 градусов ШК, нужно переделать процедуру, а также ширину и высоту картинки делать фиксированной, а не от эталона.
   tesseract
 
8 - 29.05.18 - 23:36
(5) Там DLL c зависимостями от  imagemagick (которая нативная, а не com).

(7) Так у ШК параметры фиксированные. Если его сделать совсем произвольным - то считываться не будет. Хотя иногда слишком капризная это точно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует