2. Установка и настройка плагина

Плагин устанавливается с помощью утилиты bg_installer. После установки плагин должен быть активирован в меню Плагины=>Настройки плагинов и у него должна быть установлена конфигурация.

В конфигурации должно быть определено место на диске, где сервер биллинга будет хранить документы и шаблоны документов. Каталог должен быть доступен для записи пользователю, под которым запускается сервер биллинга. Также имеется возможность открытия файлов напрямую с расшаренной папки без скачивания, в случае необходимости.

# серверный путь, куда складируются файлы (корень)
file.storage.root.path=/var/billing_doc
# серверный путь, где будут расположены файлы шаблонов
file.storage.pattern.path=/var/billing_pattern
# путь, из которого могут открываться файлы
file.net.share.root.path=/var/billing_files

Также стандартно может задаваться название пункта меню

# наименование пункта меню в Web-интерфейсе
web.menuItem1=Документы

Для задания статуса, который будет присваивается сгенерированным документам по умолчанию используется следующая опция:

#статус по умолчанию для сгенерированных документов
default.status=<код статуса из справочника статусов>

В случае использования в качестве шаблона документов файла в формате odt, необходимо указать полный путь до исполняемого файла LibreOffice

#путь до исполняемого файла
libre.path=

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

contract.type.<type_id>.prefix=<prefix>
contract.type.<type_id>.dir=<dir>
contract.type.<type_id>.extract.regexp=<regexp1>
contract.type.<type_id>.compare.regexp=<regexp2>
#автоматическое создание поддиректорий, если они не существуют
contract.type.<type_id>.dir.auto.create=<true|false>

Где:

<type_id> - уникальный числовой идентификатор типа договора в пределах конфигурации;
<prefix> - префикс номера договора;
<dir> - доступный с клиентской машины общий каталог с подкаталогами договоров;
<regexp1> - регулярное выражение для извлечения из номера договора ключевой последовательности;
<regexp2> - регулярное выражение для определения подкаталога, с ключевым словом <EXTRACT>, заменяемым на извлечённую ключевую последовательность.

Например, файлы договоров x<номер> размещаются в каталогах /tmp/TT<номер>.

contract.type.1.prefix=x
contract.type.1.dir=/tmp
contract.type.1.extract.regexp=x(\d+)
contract.type.1.compare.regexp=TT<EXTRACT>