Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

# статус по умолчанию для сгенерированных документов
default.status=<код статуса из справочника статусов>
# В случае использования в качестве шаблона документов 
# файла в формате odt, необходимо указать полный путь до 
# исполняемого файла LibreOffice
libre.path=
 
############### Прочие настройки ###################
 
# заголовок отправляемого email-сообщения при отправке
# документа по почте
documents.mail.subject=Файл
# наименование пункта меню в Web-интерфейсе
web.menuItem1=Документы
# Для различных типов договоров возможно указать папку, 
# которая будет открываться при выгрузке/загрузке файлов 
# документа через клиент биллинга. Папка должна быть 
# доступна с единым именем на всех машинах, где запускается клиент.
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>
# Настройки по загружаемым файлам в редакторе документа.
# Формат строки: 
# <extA1> | <extA2> | ... | <extAN> - <descriptionA>;<extB1> | <extB2> | ... | <extBN> - <descriptionB>; ...
# где <ext..> расширения в нижнем регистре, перечисленные через вертикальную черту, а через тире описание. Каждая такая группа разделяется точкой с запятой
client.documents.contract.file.upload.extensions=
# Ограничение на максимальный размер загружаемого файла в редакторе документа в байтах.
client.documents.contract.file.max.size=

Где:

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

...

На вкладке Файлы выберите файл, соответствующий текущему статусу документа, и загрузите его на сервер, нажав кнопку .

Image RemovedImage Added

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

...

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

 


Шаблоны документов плагина Documents

Для автоматизации заполнения типовых форм документов предназначена функция генерации документов по шаблону. Шаблон документа заводится в редакторе шаблонов, доступном через меню Плагины=>Документы=>Шаблоны документов.

Image Added

На данной вкладке отображается список существующих шаблонов документов. В контекстном меню каждого шаблона доступен пункт Создать копию шаблона, которая создает полную копию указанного шаблона, изменяя название.

Для создания нового шаблона документа щелкните на кнопку Новый элемент на стандартной панели инструментов. В появившемся редакторе заполните необходимые поля, выберите файл шаблона - документ в формате docx (предпочтительный формат), odt (на сервере должен быть установлен пакет LibreOffice), xlsx.

Image RemovedImage Added

На представленном выше рисунке отображены следующие поля:

  • Имя шаблона - имя шаблона документа;

  • Имя выходного документа - название документа, который будет сгенерирован и привязан к договору;

  • Файл шаблона - загружаемый шаблон документа в формате docx, odt, xlsx;

  • Комментарий к файлу - комментарий к загружаемому файлу шаблона;

  • Имя выходного файла - имя сгенерированного файла;

  • Комментарий к шаблону - комментарий шаблона;

  • Динамический класс - Java-класс, в котором возможно определить логику получения данных для шаблона;

  • Видимость шаблона в плагине - флаг того, что шаблон будет отображен на вкладке Документы в договоре;

  • Переменные - список переменных, содержащихся в файле шаблона документа;

  • Таблицы - список таблиц, которые требуется сгенерировать в файле шаблона документа.

  • Домены - настройка доступности шаблона документа на вкладке Документы карточки договора в зависимости от доменов.

Файл шаблона представляет собой текстовый документ, содержащий в своем тексте специальные последовательности, на место которых будут подставлены данные. Формат таких последовательностей имеет вид:

 


Блок кода
languageruby
linenumbersfalse
{имя_переменной} или {имя_переменной(значение_по_умолчанию)}

...

Динамический класс должен реализовывать интерфейс ru.bitel.bgbilling.plugins.documents.server.bean.pattern.TableDataExtractor и метод extractData( Connection con, int contractId, List<Map<String, String>> apiRowList ), который возвращает List<Map<String, String>>, т.е. список строк и содержимое столбцов в виде "ключ->значение". В качестве ключа выступает название столбца в строке-шаблоне.

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

  1. Если в договоре не установлен домен и в настройках шаблона не проставлен ни один домен, то отображаются все доступные шаблоны
  2. Если в шаблоне проставлено несколько доменов и хотя бы один из них совпадает с установленным доменом договора, то такой шаблон отображается

При необходимости отображаемый список шаблонов документов можно отфильтровать самостоятельно с помощью динамического кода. Для этого необходимо написать обработки события "Запрос списка шаблонов документов для договора" (класс события ru.bitel.bgbilling.plugins.documents.server.bean.event.DocumentGetPatternListEvent). Добавить обработчик события можно через меню Сервис => Автоматизация => Функции скриптов поведения => вкладка Классы Java. Список шаблонов, сформированный в обработчике события, имеет бОльший приоритет независимо от настроек доменов договора и шаблона. В событии необходимо заполнить список шаблонов, используя следующие методы события:

Блок кода
languagejava
titleДоступные методы события "Запрос списка шаблонов документов для договора"
collapsetrue
/**
	 * Установка списка шаблонов, заполненного скриптами. Перетирает
	 * список шаблонов, сформированный штатным механизмом, включающим
	 * фильтрацию по домену. Используется только при формировании списка
	 * шаблонов в карточке договора.
	 *
	 * @param patternList
	 *      список шаблонов, сформированный скриптами.
	 */
	public void setPatternList( List<DocumentPattern> patternList )

	/**
	 * Добавление шаблонов поштучно в скриптах. Может быть удобно при формировании
	 * списка в циклах. По итогу формируется список шаблонов, который перетирает
	 * список шаблонов, сформированный штатным механизмом, включающим
	 * фильтрацию по домену. Используется только при формировании списка
	 * шаблонов в карточке договора.
	 * @param pattern
	 *      одиночный шаблон.
	 */
	public void addPattern(DocumentPattern pattern)


Замечения:

  1. Рекомендуется использовать в качества шаблона документа файл Microsoft Office с расширением docx.

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

  3. При использовании в качестве шаблона документа файл с расширением xlsx будет производиться подстановка ТОЛЬКО переменных в таблице на всех листах книги.

Для генерации документа необходимо открыть договор, для которого требуется сгенерировать документ по шаблону, выбрать вкладку Документы, выбрать Шаблон документа из выпадающего списка, Тип генерируемого документа и Журнал и нажать кнопку Сгенерировать. Сгенерированный документ появится в списке документов договора.

Массовое добавление файлов в договоры

Для массового добавления файла (ов) к договору (ам) предназначена соответствующая групповая операция. Выберите пункт меню Сервис->Администрирование->Групповые операции, активируйте пункт Документооборот: Добавление файлов к договорам

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

Image Added

Web-интерфейс плагина Documents

В Web-интерфейсе клиент может посмотреть все связанные с ним документы в меню Документы и загрузить их.

Отправка ссылки на файлы документа

С версии 9.2204+ доступна возможность отправить ссылку на файл(ы) документа по E-mail с последующим скачиванием файла без авторизации в ЛК.

Отправка ссылки возможна из редактора документа по клику на соответствующую иконку или из контекстного меню "Отправить ссылку на файлы по почте"

Image Added

Если нужно отправить только некоторые из файлов документа их необходимо предварительно выбрать, если файлы не выбранные по ссылке будет доступен архив со всеми файлами документа.

Image Added


При отправке через контекстное меню файл(ы) должны быть выбраны.

Если в документе содержится только один файл или был выбран только один файл, по ссылке будет доступен этот файл в том виде в каком он хранится в документе, если выбрано больше одного файла по ссылке будет доступен zip архив с файлами.

Для работы данной функции в конфигурации плагина необходимо задать параметр(ы)

Блок кода
# ссылка на скачивание файлов
documents.file.url=http[s]://host[:8080]/bgbilling/
# тема письма
#documents.file.email.subject=Ссылка на документ "{document.title}"

Возможно задание времени жизни ссылки в секундах

Формат ссылки:

http[s]://host[:8080]/bgbilling/docs/3162:4872-1649776743-0-68ec7f02f52048a0c460e2e776b3f57d4e63a97668fa446b6eb93a772e00e52a

где

3162 - ID документа

4872 - ID файла(ов)

1649776743 - время создания ссылки

0 - время жизни ссылки ( 0 - бесконечно)

68ec7f02f52048a0c460e2e776b3f57d4e63a97668fa446b6eb93a772e00e52a - подпись