1С 8.х Вывод информации из MS Word в печатную форму (обычные формы)
Пишу данную статью с целью поделиться опытом. Ничего особенного, но, надеюсь, кому-нибудь сэкономит время.
- Описание
- Подробнее
Описание
Стояла задача, дословно «В 1С 8.2 в АРМ при нажатии гиперссылки «Расказать об акциях» выводить на экран информацию из файла Word». Информация в файле Word переодически меняется пользователями, а выводить её нужно в 1С.
Принялся за работу и понял, что не всё так просто. Вывод информации через шаблон Word не подходит, так как не решает задачу отображения данных в самой 1С. Попробовал через макет «Табличный документ» путём добавления в нём поля ActiveX, но не смог вывести в это поле информацию из Word. Порылся на просторах интернета, не удалось найти решения по описанной задаче. Немного почитав синтакс-помощник, мне пришло на помощь «ПолеHTMLДокумента» и в результате чего представляю Вам конечный результат.
Процедура Печать()
ПутьКФайлуПисьма = "C:\Акция.docx";
// Здесь можно организовать выбор вайла из диалогового окна
MSWord = Новый COMОбъект("Word.Application");
MSWord.Visible = Ложь;
MSWord.Documents.Open(ПутьКФайлуПисьма);
ИмяВременногоHTMLДокумента = ПолучитьИмяВременногоФайла(".html");
MSWord.ActiveDocument.SaveAs(ИмяВременногоHTMLДокумента, 8);
MSWord.ActiveDocument.Close(-1);
MSWord.Quit();
ФормаОтч = ЭтотОбъект.ПолучитьФорму("Форма");
ФормаОтч.ЭлементыФормы.ПолеHTMLДокумента.Перейти(ИмяВременногоHTMLДокумента);
ФормаОтч.Открыть();
КонецПроцедурыСуть: В отчете нужно создать ещё одну форму и разместить на ней единственное поле в формате «ПолеHTMLДокумента», растянув по всей форме. Затем в процедуре «Печать» (вызывается при нажатии гиперссылки «Расказать об акциях») информацию из файла Word помещаем во временное хранилище, далее в созданную форму в поле с форматом «ПолеHTMLДокумента» передаем информацию и открываем форму.
При открытии формы выходит следующее окно (информация произвольная):
Надеюсь, кому-нибудь пригодится.

