ОБЩИЕ СВЕДЕНИЯ
Репозиторий содержит исходные файлы для сборки шаблона внешней компоненты для "1С:Предприятие" под Linux, взаимодействующей с LibreOffice API. Внешняя компонента открывает LibreOffice Writer и записывает в новый файл строку "Hello, LibreOffice!!"
Компонента состоит из 2-х частей: 1). Статическая библиотека libhello.a экспортирует функцию hello() которая выполняет действия с LibreOffice 2). Динамическая библиотека libSampleAddIn.so, реализующая внешнюю компоненту 1С. Библиотека, в числе прочих, экспортирует метод Привет(), который вызывает функцию hello() библиотеки libhello.a.
Дополнительно, при компиляции библиотеки libhello.a компилируется исполняемый файл "libhello_test", который позволяет проверить библиотеку libhello_a из строки терминала. В каталоге epf репозитория содержится обработка для проверки компоненты libSampleAddIn.so: она подключает внешнюю компоненту и вызывает функцию Привет().
При разработке внешней компоненты за основу был взят нестандартный шаблон. Ссылка на исходный шаблон: https://github.com/Infactum/addin-template
LibreOffice Developer Guide: https://wiki.documentfoundation.org/Documentation/DevGuide
СБОРКА ВНЕШНЕЙ КОМПОНЕНТЫ
- Импорт проекта из github Если не установлен git, нужно его установить Например: sudo apt install git
Клонировать репозиторий проекта. Например, в домашний каталог, подкаталог liboffice_sample, можно выполнив в терминале команду: git clone https://github.com/Dajigin/1c_libreoffice_sample.git ~/liboffice_sample
- Установка инструментов:
2.1 Для сборки и тестирования нужны: набор компиляторов gcc, компилятор g++, пакет uuid-dev, утилиты сборки make и cmake, Libre Office SDK.
Примечание: для AstraLinux: необходимо раскомментировать репозиторий repository-base в файле:
sudo nano /etc/apt/sources.list
после чего выполнить:
sudo apt update
Для установки на deb-based системах можно запустить файл install_tools_deb.sh из склонированного репозитория, который установит инструменты.
2-2 Добавление символических ссылок на библиотеки в каталоге /usr/lib или /usr/lib64 После установки основных компонент необходимо выяснить, куда установлен LibreOffice (например, используя команду терминала whereis loffice). Она вернет несколько расположений (в т.ч. символические ссылки). Как правило, он расположен в одном из подкаталогов /usr/lib, /usr/lib64 или /opt/ Необходимо изменить путь к LibreOffice SDK (переменная OFFICE_SDK) в одном из файлов loffice_libs_xx.sh, где xx - разрядность вашей системы, после чего запустить его на выполнение с правами sudo.
В результате в каталоге библиотек (/usr/lib или /usr/lib64) будут созданы символические ссылки на бииблиотеки LibreOffice, используемые компонентой.
- Сборка
3.1 В первую очередь собирается статическая библиотека libhello.a
Откройте терминал, перейдите в каталог /libhello репозитория.
В Makefile в переменной PRJ измените путь к LibreOffice SDK на свой.
Из терминала запустите файл инициализации окружения LibreOffice SDK (Находится в каталоге SDK. Например, у меня здесь: /usr/lib64/libreoffice/sdk/setsdkenv_unix). У вас может быть другой путь.
!! Сборку необходимо выполнять в той же сессии терминала, в которой инициализировался SDK
Выполните в терминале в каталоге /libhello команду "make clean", затем - "make"
Результат компиляции помещается в каталог /libhello/bin/
Проверить библиотеку можно запустив на исполнение libhello_test из этого каталога. Должно открыться окно Writer и вывестись приветственное сообщение.
3.2 Затем собирается динамическая библиотека внешней компоненты Перейдите в каталог libhello_extcomp Выполните скрипт build.sh Будет выполнена компиляция библиотеки libSampleAddIn.so в каталог tmp (каталог будет создан при отсутствии). Для проверки работоспособности внешней компоненты можно открыть в 1С обработку /epf/ПриветЛибреОфис.epf, указав в поле обработки библиотеку libSampleAddIn.so