Общий модуль для разработки несложных отчетов в формате OpenOffice

14.06.17

Разработка - Универсальные функции

Общий модуль для разработки печатных форм в формате OpenOffice (Libre Office). Реализована работа с переменными, закладками, таблицами документа в формате ODT

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Общий модуль для разработки несложных отчетов в формате OpenOffice:
.txt 9,65Kb
57 Скачать бесплатно

Вашему вниманию предлагается общий модуль для разработки печатных форм в формате 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.ОтобразитьДокументНаЭкране(Документ);
КонецЕсли;

 

Вступайте в нашу телеграмм-группу Инфостарт

OpenOffice LibreOffice

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4183    Abysswalker    11    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    7800    DeerCven    15    

62

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    53117    dimanich70    84    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7699    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    67695    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9648    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4606 14.06.17 20:52 Сейчас в теме
Нормально. Года три назад я делал набор процедур, расширяющий БСП для работы с Word или OpenOffice. Здесь не выкладывал, оставил на своём сайте. Если интересно, гуглим Процедуры для работы с офисными документами в конфигурациях на БСП версий 2.X 1С Предприятия 8.2/8.3
2. Synoecium 793 15.06.17 07:23 Сейчас в теме
Что-то я запутался, на картинке LibreOffice, в статье речь идет о OpenOffice. Или методы работают в обоих пакетах? Если так, тогда стоит это указать в заголовке или в статье.
3. Поручик 4606 15.06.17 09:05 Сейчас в теме
(2) Методы везде одинаковы, основа ведь одна.
CSiER; ipoloskov; +2 Ответить
4. q_i 586 15.06.17 16:21 Сейчас в теме
Имхо, писать ошибки в журнал регистрации избыточно. Достаточно повторно сгенерировать исключение с информативным текстом ошибки. Вызывающая сторона сама разберётся что делать с этим исключением.
5. ipoloskov 165 15.06.17 16:32 Сейчас в теме
(4) тогда вообще попытка-исключение не нужна
6. q_i 586 15.06.17 17:11 Сейчас в теме
(5) Если устраивает сообщение об ошибке, генерируемое 1c/OOo, то не нужна. Если хочется чтобы текст ошибки был более информативным, то нужно сгенерировать свое исключение (собственно, Вы это и делаете, только текст ошибки пишете в журнал, а не передаете параметром в ВызватьИсключение).
7. handscenter 71 03.02.21 21:24 Сейчас в теме
было бы здорово если в публикации был бы еще и образец макета odt
8. ipoloskov 165 04.02.21 09:32 Сейчас в теме
(7) Выкладываю пример.
То, что в документе отображается серым - это переменные документа. Их список находится в Вставка - Поле - Еще поля - Вкладка "Переменные". При формировании документа в переменные подставляются значения, фон строки становится обычным (то есть серый фон - это признак переменной OpenOffice, а не формат строки)
Прикрепленные файлы:
ПФ_ODT_Спецификация для примера.odt
handscenter; +1 Ответить
9. handscenter 71 04.02.21 09:50 Сейчас в теме
(8)
к находится в Вставка - По


Спасибо
10. handscenter 71 04.02.21 09:53 Сейчас в теме
(8)
в Вставка - Поле - Еще поля - Вкладка "Переменные".


А вы не знаете где LO calc настройка переменных?
11. ipoloskov 165 04.02.21 10:12 Сейчас в теме
(10) Это электронные таблицы, а мой модуль работает только с текстовым документом (файлом ODT)
12. Sergey_SP 20.06.24 13:27 Сейчас в теме
Подскажите, а как отформатировать новую ячейку таблицы? В частности интересует выравнивание (по левому краю, по .правому, по центру)
Для отправки сообщения требуется регистрация/авторизация