Пример печатной формы в Word для УТ 11.4, ERP. КА 2.4, подложка и колонтитулы

Публикация № 1069687

Печать - Печатные формы документов

Печать Word УТ 11.4 ERP колонтитулы подложка

4
Пример внешней печатной формы с выводом в MS Word для УТ 11.4, КА 2, ERP 2.4, печатная форма печатается из документа "Заказ клиента". Для примера разобрано програмнное заполнение верхнего и нижнего колонтитулов, а также печать в качестве подложки - логотипа организации (печать картинки на заднем фоне, при этом у логотипа уменьшена яркость и он повернут на 45 градусов).

В качестве примера рассматривается печать в Word из заказа клиента.

Шаблон в формате *.doc хранится как двоичные данные в макете, при этом внутри шаблона необходимые для заполнения поля указывается в знак решетки: #Организация#, #Контрагент# и т.п. Это сделано и в основном теле документа, и в колонтитулах.

В сведениях о внешней обработке указывается, что это "ВызовКлиентскогоМетода":

строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = Идентификатор;
строкаКоманды.Представление = Наименование;
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовКлиентскогоМетода";
строкаКоманды.ПоказыватьОповещение = "Истина";

 

Далее, непосредственно в модуле формы в процедуре Печать получаем макет (на клиенте), и обращаемся к нему:

Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
	
	Для Каждого ОбъектНазначения Из ОбъектыНазначения Цикл 
		MSWord 	= ПолучитьИзВременногоХранилища(МакетСервер("ЗаказКлиентаМакет"));
		ИмяВрем = ПолучитьИмяВременногоФайла(".doc");
		MSWord.Записать(ИмяВрем);

		// выводим данные 
		Попытка
			//получаем объект - документ. Это OLE объект, с ним можно работать используя все методы, которые существуют в VBA
			//Документ = ПолучитьCOMОбъект(ИмяВрем);
			COMОбъект = Новый COMОбъект("Word.Application");
			//COMОбъект.Documents.Add();
			COMОбъект.WordBasic.DisableAutoMacros(1);
			COMОбъект.Documents.Open(ИмяВрем);
			
			
			Документ = COMОбъект.ActiveDocument;


......

 

Все заполнение документа происходит на клиенте (предварительно необходимо получить нужные данные).

 

Ну и отдельно, заполнение колонтитулов:

&НаКлиенте
Процедура ВыполнитьЗаменуКолонтитула(СтруктураДанных, Документ, ЭтоВерхнийКолонититул = Ложь)
	
	Для Каждого КлючЗначение Из СтруктураДанных Цикл
		ТекстЧтоЗаменять = "#" + КлючЗначение.Ключ + "#";
		ТекстНаЧтоЗаменять = КлючЗначение.Значение;
		
		Если ЭтоВерхнийКолонититул ТОгда
			Документ.Sections(1).Headers(1).Range.Find.Execute(ТекстЧтоЗаменять, Ложь, Истина, Ложь, , , Истина, , Ложь, ТекстНаЧтоЗаменять, 2);
		Иначе
			Документ.Sections(1).Footers(1).Range.Find.Execute(ТекстЧтоЗаменять, Ложь, Истина, Ложь, , , Истина, , Ложь, ТекстНаЧтоЗаменять, 2);
		КонецЕсли;
	КонецЦикла;
		
КонецПроцедуры

 

и вставка подложки:

&НаКлиенте
Процедура ВставитьРисунокКакПодложку(COMОбъект,АдресВхранилищеРисунок, Расширение)
	
	ИмяФайла = ПолучитьИмяВременногоФайла(Расширение);
	ПолучитьФайл(АдресВхранилищеРисунок, ИмяФайла, Ложь);
	
	Документ = COMОбъект.ActiveDocument;
    Рис = Документ.Sections(1).Headers(1).Shapes.AddPicture(ИмяФайла,Ложь,Истина);
	
	Рис.PictureFormat.Brightness = 0.85; //уменьшаем яркость и контрастность
	Рис.PictureFormat.Contrast = 0.25;
	Рис.WrapFormat.AllowOverlap = True;
	Рис.WrapFormat.Type = 3;
	Рис.LockAspectRatio = True;
	
	Рис.Left = -999995;
	Рис.RelativeHorizontalPosition = 1;
	Рис.RelativeVerticalPosition = 1;
	Рис.Top = -999995;
	Рис.Rotation = 315; //поворачиваем под углом
	
КонецПроцедуры

 

В примере выводится в качестве подложки логотип организации, под углом 45 градусов, с уменьшенной яркостью. Эта подложка будет выводиться на всех листах документа.

 

Тестировалось на платформе 8.3.13.1690 на УТ 11.4.7.114 и ERP 2.4.7.141

4

Скачать файлы

Наименование Файл Версия Размер
Пример печатной формы в Word для УТ 11.4, ERP. КА 2.4, подложка и колонтитулы:
.epf 25,74Kb
30.05.19
1
.epf 25,74Kb 1 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Terve!R 07.06.19 09:12 Сейчас в теме
Жаль примера печати в скриншотах нет.
2. DarkPinch222 61 07.06.19 09:51 Сейчас в теме
(1) Последний скришот показывает как выглядит сформированный Word, с подложкой.
3. Terve!R 10.06.19 07:58 Сейчас в теме
(2) а где подложка? Вроде только колонтитул вижу...
4. DarkPinch222 61 10.06.19 09:42 Сейчас в теме
(3)на скриншоте - надпись "Москва", с красной звездой - это подложка, выполнена с понижением контрастности, и под углом 45 градусов. Эта картинка берется из логотипа организации
5. Terve!R 10.06.19 11:20 Сейчас в теме
(4) и где эта надпись на скриншоте? Контрастность видимо совсем на нуле, раз подложки совсем не видно.
Оставьте свое сообщение