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

14.06.17

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

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

Скачать файл

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

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

Вашему вниманию предлагается общий модуль для разработки печатных форм в формате 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

См. также

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

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

21.05.2024    25275    dimanich70    82    

149

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

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

1 стартмани

18.03.2024    4517    3    John_d    11    

57

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

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

12.02.2024    25715    atdonya    25    

58

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

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

30.11.2023    6095    ke.92@mail.ru    17    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    16608    YA_418728146    8    

170

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    4283    73    progmaster    10    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 1C:Бухгалтерия 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    19161    181    sapervodichka    112    

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


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


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