Имя: Пароль:
1C
1С v8
Вывод таблицы из 1с в шаблон open office Writer
0 m447525
 
03.05.20
16:48
Добрый день!
Стоит задача сделать печатную форму договора с использованием open office. В договоре есть табличная часть. Количество столбцов фиксированно.
Подскажите как вывести таблицу  в шаблон  oppen office writer?
Сделал шаблон writer, загрузил макет двоичные данные. Выполняю поиск и замену.Шаблон заполняется.
Параметры в шаблоне заполняются,а как выводить таблицу с данными в шаблон не знаю.
Может у кого есть пример работы с open office writer из 1с.
//проверка наличия OpenOffice на ПК
    Попытка
        OpenOffice = Новый COMОбъект("com.sun.star.ServiceManager");
    Исключение
        Сообщить(ОписаниеОшибки() + "; Программа OpenOffice не установлена на данном компьютере!");
    КонецПопытки;
//Создаем таблицу значений для описания замены
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Параметр");
ТЗ.Колонки.Добавить("Значение");
УстановитьПривилегированныйРежим(Истина);
    

//Добавляем записи в ТЗ для поиска и замены
Стр = ТЗ.Добавить();
Стр.Параметр = "%НомерДоговора%"; //будет заменен параметр Номер
Стр.Значение = НомерДоговора;//ЗаказНаряд.Номер; //на что менять

Стр = ТЗ.Добавить();
Стр.Параметр = "%ГородЗаключенияДоговора%"; //будет заменен параметр Дата
Стр.Значение = ГородЗаключенияДоговора; //на что менять

Стр = ТЗ.Добавить();
Стр.Параметр = "%ДатаЗаключенияДоговора%"; //будет заменен параметр Дата
Стр.Значение = ДатаЗаключенияДоговора; //на что менять
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет4");



временныйПуть = КаталогВременныхФайлов();
имяВременногоФайла = временныйПуть + "dog.doc";
Макет.Записать(имяВременногоФайла);

Args = Новый COMSafeArray("VT_DISPATCH", 1);

Param=OpenOffice.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
Param.Name = "AsTemplate";
Param.Value = True;
Args.SetValue(0,Param);

// Открыть OpenOffice
Desktop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop");
ПутьКФайлуURL = ПреобразоватьВURL(имяВременногоФайла); //преобразивание пути к файлу к URL формату
Document = Desktop.LoadComponentFromURL(ПутьКФайлуURL, "_blank", 0, Args);

Replace = Document.CreateReplaceDescriptor();
//Меняем параметры в документе согласно ТЗ
Для Каждого Строка Из ТЗ Цикл
Replace.SearchString = Строка.Параметр;
Replace.ReplaceString = Строка.Значение;
Document.ReplaceAll(Replace);
КонецЦикла;

    
    КонецПроцедуры // ПечетьOpenOffice()
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан