Автозаполнение полей файлов .DOC, .DOCX, .RTF и .ODT
Атрибуты ECM-документа можно использовать для автоматического заполнения полей файлов .DOC, .DOCX, .RTF и .ODT.
Поля будут автоматически заполняться при выполнении следующих условий:
- В Управлении общими настройками Pilot-ICE добавлена конфигурация ECM-документы — автозаполнение полей файлов.
- В исходном файле ECM-документа созданы пользовательские свойства, имена которых соответствуют именам атрибутов, и размещены поля с этими свойствами.
Добавление конфигурации
Управление общими настройками доступно только пользователю с правами администратора. |
Выберите в меню Сервис команду Настройки → Управление общими настройками. Выполните команду Добавить конфигурацию. Из появившегося списка выберите ECM-документы — автозаполнение полей файлов.
В появившемся диалоге выберите Организационную единицу, для которой будет действовать новая конфигурация. В пустое поле Описание конфигурации введите текст конфигурации, соответствующий задаче.
Структура описания конфигурации
<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>