1С8. Пример работы с файлом MS Word и макетом типа ActiveDocument

Небольшой пример нестандартной работы с Табличным документом 1С. Обычно при работе с табличным документом используют параметры. Параметрам присваивают имена в макете и заполняют примерно так:
ОбластьМакета.Параметры.НомерДоговора = "N777";
Мы не будем использовать параметры, а будем менять текст. Макет 1С_ss_tabdocument_000_example_step_1

получаем:

1С_ss_tabdocument_002_example_step_2

Текст договора оформлен как Табличный документ. В текст включены ключевые строки - (переменные) вида "{НомерДоговора}" которые будут заменены значениями. Находим область - ячейку, содержащую "{НомерДоговора}" и заменяем текст ключевой строки ("[%НомерДоговора%]") -> на текст значение ключа ("N777").

// В тексте макета табличнго документа заменим вхожнения строки-ключа
// на строку значения
Функция УстановитьЗначениеКлючаВМакетеТД(макетТД,стрКлюч,стрЗначение)
	
	// получим область (ячейку) содержащую строку с ключом, 
	// например ключ = "{номерДоговора}" 
	областьСКлючом = макетТД.НайтиТекст(стрКлюч);	
	
	// если в тексте макета такая строка с ключом найдена, 
	// - заменяем в тексте строку-Ключ на строку-ЗначениеКлюча
	если областьСКлючом <> неопределено тогда
		текстСКлючом = областьСКлючом.Текст;	
		стрРезультат = СтрЗаменить(ТекстСКлючом,стрКлюч,стрЗначение); 
		областьСКлючом.Текст = стрРезультат;     	
	КонецЕсли;			
	
КонецФункции

// Создать табличный документ
// заменить в тексте табличного документа строки-Ключи на строки-Значения
Функция СоздатьТабличныйДокумент(ИмяМакета)  
	
	ТабДокумент  = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПараметрыПечатиДоговор";
	
	макетТД = ПолучитьМакет(ИмяМакета);	
	
	стрКлюч = "{НомерДоговора}";
	стрЗначение = "777";
	УстановитьЗначениеКлючаВМакетеТД(макетТД,стрКлюч,стрЗначение);
	
	стрКлюч = "{ДатаДоговора}";
	стрЗначение = "01.01.2011";
	УстановитьЗначениеКлючаВМакетеТД(макетТД,стрКлюч,стрЗначение);		
	
	ОбластьМакета = макетТД.ПолучитьОбласть("ВесьДокумент");
	ТабДокумент.Вывести(ОбластьМакета);
	
	Возврат ТабДокумент;
	
КонецФункции	
	
Функция  ПечатьТД()   Экспорт
	
	ИмяМакетаТД = "Договор";
	ТабДокумент = СоздатьТабличныйДокумент(ИмяМакетаТД);
	
	Возврат ТабДокумент;
КонецФункции // Печать

ПечатьТД();