Вашему вниманию предлагается общий модуль для разработки печатных форм в формате OpenOffice (Libre Office).
Реализована работа с переменными файла, таблицами, выделение закладок цветом
Пример использования:
ДвоичныеДанные = ПолучитьМакет("Договор");//файл odt помещен в макет с типом "двоичные данные"
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("odt");
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЗапускатьСкрытно = Истина;
Документ = ПроцедурыOpenOffice.ОткрытьДокументКакШаблон(ИмяВременногоФайла, ЗапускатьСкрытно);
ПеременныеДокумента = ПроцедурыOpenOffice.ПеременныеДокумента(Документ);
ПроцедурыOpenOffice.УстановитьЗначениеПеременнойДокумента(ПеременныеДокумента, "НомерДоговора", "12-ПФ");
ПроцедурыOpenOffice.УстановитьЗначениеПеременнойДокумента(ПеременныеДокумента, "Руководитель", "Иванов П.М.");
Если ПредоплатаНеНужна Тогда
ИмяЗакладки = "Предоплата";
ПроцедурыOpenOffice.УстановитьТекстВЗакладку(Документ, ИмяЗакладки, "");//удалить текст в этой закладке
КонецЕсли;
Если НужноВыделитьЦветомРазделОсобыеУсловия Тогда
ИмяЗакладки = "ОсобыеУсловия";
ПроцедурыOpenOffice.УстановитьЦветФонаЗакладки(Документ, ИмяЗакладки, 4000);
КонецЕсли;
НомерТаблицыПродукции_ВДокументе = 0;
ТаблицаДокумента = ПроцедурыOpenOffice.ТаблицаДокумента(Документ, НомерТаблицыПродукции_ВДокументе);
ИндексСтрокиСКоторойВставлять = 1;
КоличествоДобавляемыхСтрок = ВыборкаТовары.Количество()-1;
Если КоличествоДобавляемыхСтрок>0 Тогда
ПроцедурыOpenOffice.ВставитьСтрокиВТаблицу(ТаблицаДокумента, ИндексСтрокиСКоторойВставлять, КоличествоДобавляемыхСтрок);
КонецЕсли;
НомерСтроки = 1;
Пока ВыборкаТовары.Следующий() Цикл
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 0, НомерСтроки);
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 1, ВыборкаТовары.НаименованиеПолное);
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 2, ВыборкаТовары.ЕдиницаИзмерения);
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 3, ВыборкаТовары.КоличествоТовара);
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 4, Формат(ВыборкаТовары.Цена, "ЧРГ=' '"));
ПроцедурыOpenOffice.УстановитьТекстВЯчейку(ТаблицаДокумента, НомерСтроки, 5, Формат(ВыборкаТовары.Сумма, "ЧРГ=' '"));
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Если ЗапускатьСкрытно Тогда
ПроцедурыOpenOffice.ОтобразитьДокументНаЭкране(Документ);
КонецЕсли;