//********************************************************************************** //получаем макет на сервере, сохраняем в файл и передаем на клиента &НаСервере Функция ПолучитьДанныеМакета() АдресХранилища = Новый УникальныйИдентификатор(); Макет = ПолучитьОбщийМакет("Договор"); ВременныйФайл = ПолучитьИмяВременногоФайла("doc"); Макет.Записать(ВременныйФайл); Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл), АдресХранилища); УдалитьФайлы(ВременныйФайл); Возврат Адрес; КонецФункции //********************************************************************************** //код сотрудника, нужно для создания уникального имени файла для каждого пользователя &НаСервере Функция КодПользователя(Пользователь) Возврат СокрЛП(Пользователь.Сотрудник.Код); КонецФункции //********************************************************************************** //Ссылка - ссылка на договор(ссылка справочника, нужно для подстановки реквизитов) //РеквизитыДляПечати - структура с нужными реквизитами &НаКлиенте Процедура ПечатьДоговора(Ссылка,РеквизитыДляПечати) Пользователь = ОбщегоНазначения.ТекущийПользователь(); Каталог = КаталогВременныхФайлов(); Каталог = ?(Прав(Каталог,1) = "\", Каталог, Каталог+"\"); ПолноеИмяФайла = Каталог+"Договор_"+КодПользователя(Пользователь)+".doc"; Попытка Индификатор = ПолучитьДанныеМакета(); МакетДоговора = ПолучитьИзВременногоХранилища(Индификатор); МакетДоговора.Записать(ПолноеИмяФайла); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка MSWord = Новый COMОбъект("Word.Application"); Исключение Сообщить("Ошибка при попытке создать объект ""MS Word""!" + Символы.ПС + "Возможно приложение ""MS Word"" не установлено или установлено неправильно.", СтатусСообщения.Внимание); КонецПопытки; MSWord.Documents.Open(ПолноеИмяФайла); Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); Исключение // Если произойдет ошибка, выводятся данные об ошибке, и объект закрывается. Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = ОписаниеОшибки(); Сообщение.Сообщить(); MSWord.Application.Quit(); Возврат; КонецПопытки; //******************************************* //тут выполняем замену Попытка Замена = Документ.Content.Find; Замена.Execute("{ЧтоМеняем}", Ложь, Истина, Ложь, , , Истина, , Ложь, "На что меняем"); Исключение КонецПопытки; // Делаем видимым приложение и активизируем его. MSWord.Application.Visible = Истина; MSWord.Activate(); КонецПроцедуры