Автозаполнение полей файлов .DOC, .DOCX, .RTF и .ODT

Атрибуты ECM-документа можно использовать для автоматического заполнения полей файлов .DOC, .DOCX, .RTF и .ODT.

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

  • В Управлении общими настройками Pilot-ICE добавлена конфигурация ECM-документы — автозаполнение полей файлов.
  • В исходном файле ECM-документа созданы пользовательские свойства, имена которых соответствуют именам атрибутов, и размещены поля с этими свойствами.

Добавление конфигурации

Управление общими настройками доступно только пользователю с правами администратора.

Выберите в меню Сервис команду НастройкиУправление общими настройками. Выполните команду Добавить конфигурацию. Из появившегося списка выберите ECM-документы — автозаполнение полей файлов.

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

Структура описания конфигурации

<AutoFillSettings>
<Type Name="ecm_doc_typeName">
<Fields Extensions="format_1, format_2">
<Field {ParentTypeName="parent_typeName_1"} PilotAttr="pilot_attrExp_1" FileField="fieldName_1" />
<Field {ParentTypeName="parent_typeName_2"} PilotAttr="pilot_attrExp_2" FileField="fieldName_2" />
</Fields>
</Type>
</AutoFillSettings>

Где:

  • "ecm_doc_typeName" — имя типа ECM-документа, для которого будет работать автозаполнение полей файла.
  • "format_1, format_2" — список форматов обрабатываемых файлов. Например "doc, docx, rtf, odt".
  • "parent_typeName_1", "parent_typeName_2" — имена типов родительских объектов, у которых необходимо взять значение атрибута PilotAttr. Если ParentTypeName не указан, то PilotAttr берётся из текущего документа.
  • "pilot_attrExp_1", "pilot_attrExp_2" — выражения для обращения к атрибутам, значения которых будут использоваться для автозаполнения полей.
  • "fieldName_1", "fieldName_2" — имена заполняемых полей.

Добавление в исходный файл пользовательских свойств и полей для автозаполнения

В Microsoft Word создайте необходимые пользовательские свойства в исходном файле ECM-документа.

Справка по созданию пользовательских свойств Microsoft Word.

Разместите поля с созданными свойствами в нужном месте исходного документа.

Справка по вставке полей Microsoft Word.

В LibreOffice Writer при обычной вставке полей может не сработать обновление полей файлов. Тем не менее, возможность работы с автообновляемыми полями остаётся при использовании нестандартного подхода:

  • Создайте или откройте исходный документ в LibreOffice Writer;
  • В панели инструментов нажмите Вставить поле -> Ещё поля -> Переменные. В списке выберите Поле пользователя;
  • Заполните поле Имя и нажмите кнопку Вставить. Сохраните документ.
  • Перейдите в Pilot-ICE и добавьте сохранённый документ исходным файлом ECM-документа. Нажмите Обновить поля файлов, затем Опубликовать.
  • Откройте исходный документ в Libre Office Writer, удалите вставленное поле.
  • В панели инструментов нажмите Вставить поле -> Ещё поля -> Сведения о документе. В списке раскройте позицию Особо выберите поле с тем именем, которое Вы создали. Вставьте поле в нужное место документа;
  • Перейдите в Pilot-ICE, повторно обновите поля и опубликуйте документ.

Будет создано автообновляемое поле.

Автозаполнение полей

Поля заполняются при создании ECM-документа и при выполнении команды Обновить поля файлов:

  • cоздайте ECM-документ;
  • во вкладке Файлы нажмите Добавить исходный файл;
  • выделите добавленный файл в списке и нажмите Обновить поля файлов;
  • Нажмите Опубликовать.

Поля в исходном файле документа будут заполнены значениями атрибутов ECM-документа.

Варианты автозаполнения полей

Примеры к приведённым ниже вариантам работают на демонстрационной базе pilot-ecm_ru.

1. Автозаполнение значениями атрибутов объекта, которому принадлежит файл

Автозаполнение полей атрибутами из карточки

Простой вариант автоматического заполнения поля файла значениями атрибутов из карточки объекта, которому принадлежит файл.

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

<Field PilotAttr="attrName" FileField="fieldName" />

Где:

  • attrName — имя атрибута, значение которого будет использовано для автозаполнения поля.
  • fieldName — имя пользовательского поля в файле, принадлежащем объекту.

Пример конфигурации для заполнения поля файла, принадлежащего ECM-документу Исходящий договор (out_contract), значением Общая сумма (total_value) из карточки:

<AutoFillSettings>

<Type Name="out_contract">

<Fields Extensions="doc, docx, rtf, odt">

<Field PilotAttr="total_value" FileField="total_value" />

</Fields>

</Type>

</AutoFillSettings>

В файле создайте поле с пользовательским свойством total_value типа Текст.

Автозаполнение полей служебными атрибутами Имя создателя и Дата создания

Имя создателя и Дата создания — доступные служебные атрибуты объекта, значениями которых можно автоматически заполнить поля документа, принадлежащего этому объекту.

Для настройки этого варианта автозаполнения используйте следующую конфигурацию:

<AutoFillSettings>

<Type Name="Name">

<Fields Extensions="doc, docx, odt">

<Field PilotAttr="description" FileField="description" />

</Fields>

</Type>

</AutoFillSettings>

В исходном файле ECM-документа создайте пользовательские свойства типа Текст:

  • PILOT_OBJECT_CREATOR_PERSON — имя пользователя, создавшего элемент;
  • PILOT_OBJECT_CREATION_TIME — дата создания элемента.

Разместите поля со свойствами PILOT_OBJECT_CREATOR_PERSON и PILOT_OBJECT_CREATION_TIME в нужном месте исходного документа.

2. Автозаполнение полей значениями атрибутов родительского документа (автозаполнение по вертикальной связи)

Возможность заполнять поля значениями атрибутов родительского документа может быть полезна, например, в случае работы с Актами сдачи приёмки, пользовательские поля которых заполняются атрибутами Договора подряда, к которому эти акты относятся.

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

<Field ParentTypeName="typeName" PilotAttr="attrName" FileField="typeName_attrName" />

Где:

  • typeName — имя типа родительского документа.
  • attrName — имя атрибута, значение которого будет использовано для автозаполнения поля
  • attrName_parameter — имя пользовательского поля в исходном документе.

Пример, использующийся в стандартной конфигурации в демо-базе Pilot-ECM, заполняет поля документа типа Исходящий акт (out_statement_of_completion) значениями: номердата, описание, контрагент, родительского документа типа Исходящий договор:

<AutoFillSettings>

<Type Name="out_statement_of_completion">

<Fields Extensions="doc, docx, odt">

<Field ParentTypeName="out_contract" PilotAttr="number" FileField="contract_number" />

<Field ParentTypeName="out_contract" PilotAttr="date" FileField="contract_date" />

<Field ParentTypeName="out_contract" PilotAttr="description" FileField="contract_description" />

<Field ParentTypeName="out_contract" PilotAttr="counterparty" FileField="contract_counterparty" />

</Fields>

</Type>

</AutoFillSettings>

3. Автозаполнение значениями атрибутов элемента, связанного через справочник (автозаполнение по горизонтальной связи)

В системе Pilot возможно автозаполнение значениями атрибутов элемента справочника, связанного с ECM-документом.

Для доступа к значениям атрибутов элемента справочника:

  • К одному из атрибутов карточки ECM-документа должен быть подключен справочник.
  • Атрибут, к которому подключен справочник, должен иметь настройку CreateLink ="True", чтобы при выборе элемента справочника создавалась связь.

Связь должна быть создана автоматически при выборе значения элемента в карточке ЕСМ-документа. Добавление связи вручную (с помощью кнопки Добавить и выбора связанного элемента) не даст возможность использования значений атрибутов для автозаполнения.

Запись в конфигурацию для использования значений атрибутов элементов связанного с ЕСМ-документом справочника имеет следующий вид:

<Field PilotAttr="attr.refbookAttr" FileField="fieldName" />

Где:

  • attr — имя атрибута карточки ЕСМ-документа, к которому подключен справочник.
  • refbookAttr — имя атрибута объекта из подключенного справочника.
  • fieldName — имя пользовательского поля в исходном документе.

Пример: автозаполнение поля с именем counterparty_id в файле, принадлежащем ЕСМ-документу типа Исходящий договор (out_contract), значением атрибута ИНН (organization_id) объекта типа Контрагент(counterparty) из справочника Справочник контрагентов (counterparty_catalog).

В демонстрационной базе pilot-ecm_ru уже произведены необходимые для работы примера настройка атрибутов и подключение справочника.

Конфигурация:

<AutoFillSettings>

<Type Name="out_contract">

<Fields Extensions="doc, docx, odt">

<Field PilotAttr="counterparty.organization_id" FileField="counterparty_id" />

</Fields>

</Type>

</AutoFillSettings>

4. Автозаполнение значениями атрибутов справочника организационной единицы

В системе Pilot предусмотрена возможность автозаполнения полей ECM-документа значениями атрибутов типа Организационная единица. Для использования этой возможности используемый в конфигурации атрибут должен быть добавлен в карточку документа, что позволит выбирать пользователя базы данных из списка и использовать его данные для автозаполнения полей.

Записи в конфигурации для работы с атрибутами типа Организационная единица оформляются по следующему шаблону:

<Field PilotAttr="attrName.keyword.parameter" FileField="attrName_parameter" />

Где:

  • attrName — имя атрибута типа Организационная единица. Можно использовать initiator, executor, secretary. Таким образом, поля каждого ECM-документа могут заполняться данными нескольких пользователей базы данных.
  • keyword — ключевое слово, которое определяет, будут ли взяты значения параметров пользователя или организационной единицы. Возможные значения: person или orgunit. От ключевого слова зависит набор доступных параметров.
  • parameter — имя параметра пользователя или орг.единицы;
  • attrName_parameter — имя пользовательского поля в исходном документе.

Возможные значения сведены в таблицу:

Наименование параметра в карточке пользователя в myAdmin

Параметр орг.единицы в конфигурации

Field PilotAttr="..."

Пользовательское поле в ECM-документе

FileField="..."

Атрибут attrName attrName
Логин attrName.person.displayName attrName_login
Электронная почта attrName.person.email

attrName_email

Телефон attrName.person.phone

attrName_phone

Основная должность attrName.person.mainPosition attrName_position
Список должностей attrName.person.positions attrName_positions
Идентификатор пользователя attrName.person.id attrName_id
Отображаемое имя attrName.person.displayName attrName_displayName
Комментарий attrName.person.comment attrName_comment
Наименование организаниционной единицы attrName.orgunit.title attrName_orgunit_title
Идентификатор организаниционной единицы attrName.orgunit.id attrName_orgunit_id

Представленная конфигурация позволяет использовать все параметры атрибута initiator типа Организационная единица.

<AutoFillSettings>

<Type Name="Name">

<Fields Extensions="doc, docx, odt">

<Field PilotAttr="initiator" FileField="initiator" />

<Field PilotAttr="initiator.person.mainPosition" FileField="initiator_position" />

<Field PilotAttr="initiator.person.login" FileField="initiator_login" />

<Field PilotAttr="initiator.person.email" FileField="initiator_email" />

<Field PilotAttr="initiator.person.positions" FileField="initiator_positions" />

<Field PilotAttr="initiator.person.id" FileField="initiator_id" />

<Field PilotAttr="initiator.person.displayName" FileField="initiator_displayName" />

<Field PilotAttr="initiator.person.phone" FileField="initiator_phone" />

<Field PilotAttr="initiator.person.comment" FileField="initiator_comment" />

<Field PilotAttr="initiator.orgunit.title" FileField="initiator_orgunit_title" />

<Field PilotAttr="initiator.orgunit.id" FileField="initiator_orgunit_id" />

</Fields>

</Type>

</AutoFillSettings>