Печатная форма с шаблоном в Word на клиент-серверной базе

1. user797702 31.01.18 08:06 Сейчас в теме
Сделал печатную форму с вордовским макетом в ActiveDocument - на файловой базе работает прекрасно, на клиент-серверной выдает ошибку при попытке получения макета и инициализации объекта word. Здешние статьи подсказали, что на клиент-серверных базах объект word нужно инициализировать в клиентской процедуре, а макет подгружать при помощи указания пути к файлу *.doc на локальном компьютере.

Сделал форму обработки, добавил на неё кнопку с процедурой, в которой берется файл *.doc на клиентском компьютере и подсовывается в COM-объект "Word.Application". Работает нормально.

&НаКлиенте
Процедура Сформировать()

		ПутьКШаблону = "C://document.doc";
			
		ОбъектВорд = Новый COMОбъект("Word.Application");

		ДокументВорд = ОбъектВорд.Documents.Add(ПутьКШаблону);
             	
		ДокументВорд.Application.Visible = Истина;

КонецПроцедуры
Показать


А как реализовать это без использования формы обработки? Если разместить эту процедуру с директивой &НаКлиенте в модуле объекта, то вызвать её из экспортной функции Печать(), обязательное наличие которой требует конфигурация, невозможно.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VZyryanov 31.01.18 08:40 Сейчас в теме
Директива &НаКлиенте в модуле объекта не работает. Нужно использовать экспортную функцию Печать в модуле формы. Для этого в модуле объекта в функции СведенияОВнешнейОбработке в вызове ДобавитьКоманду вместо "ВызовСерверногоМетода" нужно писать "ВызовКлиентскогоМетода".
3. vnagapov 31.01.18 09:06 Сейчас в теме
Самое простое - это сохранить макет печатной формы на сервере во временной папке как файл Word и использовать его для заполнения. Но я бы заметил, что на данный момент работа с COM-объектом Word - это вчерашний день. Используйте файлы .docx и парсите их как xml-файлы. Вам не понадобиться установка офиса ни на сервере, ни на клиенте. К комментарию (2) следует добавить, что вместо экспортной процедуры Печать, будет вызов из модуля формы экспортной процедуры
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив, СозданныеОбъекты) Экспорт
Оставьте свое сообщение

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