Штрих Код из 1с в макет xls файла

1. WebInvestor 12.12.19 15:18 Сейчас в теме
Возникла задача прикрутить к документу печатную форму с шаблоном в формате XLS, с выводом штрихкода. Первая мысль была просто назначить шрифт ячейке, штрихкодный, но качество не удовлетворило.

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

Фрагмент кода для использования макета с пакетом Libre Office

	///******************************************************	
	Макет = ПолучитьМакет("ШтрихКод");
	ОбластьМакета = Макет.ПолучитьОбласть("Картинка");   
	
	ШК = РегистрыСведений.ШтрихКоды.СоздатьНаборЗаписей();
	ШК.Отбор.Объект.Установить(Ссылка);
	ШК.Прочитать();
	Если ШК.Выбран() И (ШК.Количество()>0) Тогда 
		ОбластьМакета.Рисунки.ШК.Объект.Сообщение=ШК[0].ШтрихКод;    
		ОбластьМакета.Рисунки.ШК.Объект.ТекстКода=ШК[0].ШтрихКод;     
		ОбластьМакета.Рисунки.ШК.ВыводитьНаПечать = Истина;
	Иначе 
		ОбластьМакета.Рисунки.ШК.ВыводитьНаПечать = Ложь;
		//Сообщить("У документа отсутствуют штрих-код! Заполните его.",СтатусСообщения.Внимание);
	КонецЕсли;
	
	
	Макет.Вывести(ОбластьМакета);
	ТабДокумент  = Новый ТабличныйДокумент;
	ТабДокумент.Вывести(ОбластьМакета);
	Каталог =   КаталогВременныхФайлов();
	ФайлШтирхКода =Каталог+"ШтрихКод.html";
	
	ТабДокумент.Записать(ФайлШтирхКода, "HTML");
	//***************************************************   
	
	СсылкаНаФайл=Каталог+"ШтрихКод_files\image000.png";   
	
		
	Диспатчер = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper");
	
	Свойства2 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
		
	Свойства2.Name = "ToPoint";
	Свойства2.Value = "$H$1";
	ArgsPoint = Новый COMSafeArray("VT_VARIANT", 2);
	ArgsPoint.SetValue(0, Свойства2);
	
	Диспатчер.executeDispatch(Document.CurrentController.Frame, ".uno:GoToCell", "" , 0, ArgsPoint);
	
		
	Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
	Свойства.Name = "FileName";
	
	Файл = СтрЗаменить(СсылкаНаФайл, " ", "%20");
	Файл = СтрЗаменить(СсылкаНаФайл, "\", "/");
	Файл = "file:/" + "/localhost/" + Файл;
		
	Свойства.Value = Файл;
	Args = Новый COMSafeArray("VT_VARIANT", 2);
	Args.SetValue(0, Свойства);
	Свойства1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
	Свойства1.Name = "AsLink";
	Свойства1.Value = Ложь;
	Args.SetValue(1,Свойства1);
	
	Диспатчер.executeDispatch(Document.CurrentController.Frame, ".uno:InsertGraphic", "" , 0, Args);
	
	
	Sheet.getCellByPosition(0, 1).String = "Заказ-наряд № " + СокрЛП(Номер) + "  дата:  " + Формат(Дата,"ДФ = дд.ММ.гггг");
	Sheet.getCellByPosition(0, 3).String = "Автомобиль модель: " + Модель;
	Sheet.getCellByPosition(3, 3).String = "Гос №:  " + ГосНомер;
	Sheet.getCellByPosition(0, 4).String = "VIN: " + VIN;
	Sheet.getCellByPosition(3, 4).String = "Год выпуска:  " + Автомобиль.ГодВыпуска;
	Sheet.getCellByPosition(3, 1).String = "Пробег:  " + Пробег;
	
 //перводим курсор в ячейку для начала редактирования

	Свойства2.Value = "$B$9";
	
	ArgsPoint.SetValue(0, Свойства2);
	
	Диспатчер.executeDispatch(Document.CurrentController.Frame, ".uno:GoToCell", "" , 0, ArgsPoint);
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 9 12.12.19 15:27 Сейчас в теме
3. WebInvestor 12.12.19 15:29 Сейчас в теме
Ничем не помочь, все работает. Я просто поделился, может кому пригодится
4. dandykry 9 12.12.19 15:30 Сейчас в теме
(3)ааа....увидел "общие вопросы программирования" и думаю где вопрос))) Извините
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот