|
Добавить на Печатную форму ШтрихКод |
☑ |
0
frau
29.05.18
✎
16:58
|
Стоит задача создать механизм штрихкодирования документов (на базе Розницы).
То есть на уже существующие печатные формы документов формировать и выводить Штрихкод. Пытаюсь разбираться в ОбщийМодуль.УправлениеПечатьюПереопределяемый - ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода), т.к. туда обращаются документы при печати.
Может у кого был опыт - прошу посоветовать в каком направлении двигаться. Подойдут ли методы а-ля .ПолучитьОбласть? Заранее спасибо
|
|
1
anatoly
29.05.18
✎
17:20
|
"в каком направлении двигаться."
подключить 1cbarcod.dll и искать примеры.
а что в рознице нет разве ТОРГ-12 со штрихкодом?
или этикеток?
|
|
2
frau
29.05.18
✎
17:23
|
(1) есть некоторые формы с штрихкодами (в т.ч. этикетки), но мне надо предоставить пользователю выбор: перед ним перечень всех печатных форм, а он отмечает на каких печатать штрихкод.
|
|
3
dezss
29.05.18
✎
17:29
|
(2) посмотреть как сделано там
|
|
4
LienXo
29.05.18
✎
18:17
|
(0) если нет любви к длл-кам можно через шрифты замутить, но тогда его на нужные машины ставить надо
|
|
5
Вафель
29.05.18
✎
18:32
|
в типовых же есть компонента штрихкода
|
|
6
d4rkmesa
гуру
29.05.18
✎
19:21
|
(0) Примерно так (если это актуальная конфигурация - работает на УТ 11.3.4):
// Вставить содержимое обработчика.
ТабличныйДокумент = Новый ТабличныйДокумент;
Обработка = РеквизитФормыВЗначение("Объект");
Макет = Обработка.ПолучитьМакет("Макет");
ОбластьМакета = Макет.ПолучитьОбласть("ОбластьМакета");
Сообщение = "(01)" + "04600822901507" + "(11)" + "161109" + "(10)" + "16453I";
Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота", Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Штрихкод", Сообщение);
ПараметрыШтрихкода.Вставить("ТипКода", 2); //ean-128
ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
ПараметрыШтрихкода.Вставить("РазмерШрифта", 12);
ПараметрыШтрихкода.Вставить("УголПоворота", 270);
ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
ТабличныйДокумент.Вывести(ОбластьМакета);
Возврат ТабличныйДокумент;
|
|
7
d4rkmesa
гуру
29.05.18
✎
19:25
|
Правда, процедура МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода) довольно капризная, к примеру, у меня не получилось сделать "повернутый" на 90 градусов ШК, нужно переделать процедуру, а также ширину и высоту картинки делать фиксированной, а не от эталона.
|
|
8
tesseract
29.05.18
✎
23:36
|
(5) Там DLL c зависимостями от imagemagick (которая нативная, а не com).
(7) Так у ШК параметры фиксированные. Если его сделать совсем произвольным - то считываться не будет. Хотя иногда слишком капризная это точно.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший