Справочник элементов
Атрибут типа Справочник элементов позволяет подключить различные папки как справочники содержащихся в них элементов. Для выбранных из справочника элементов автоматически создаётся связь для перехода к связанным элементам или быстрой фильтрации по ним.
Для настройки в Pilot-myAdmin:
- выберите нужный тип элемента или задания, для которого будет работать настройка;
- создайте атрибут типа Справочник элементов;
- добавьте конфигурацию вида:
<Configuration>
<ElementBook
Source="[идентификатор]"
StringFormat="{[имя атрибута]}"/>
</Configuration>
Где:
[идентификатор] — id корневого элемента справочника.
[имя атрибута] — значение атрибута для текста ссылки и заполнения поля карточки элемента.
Структура и параметры скрипта конфигурации
<Configuration>
<ElementBook
[параметры справочника]/>
<AttachmentToTaskAutoFill
[параметры автозаполнения]/>
</Configuration>
Скрипт конфигурации состоит из двух разделов:
- ElementBook — раздел конфигурации, который описывает сам справочник.
- AttachmentToTaskAutoFill — раздел конфигурации, который работает только для заданий и описывает заполнение поля атрибута в карточке задания при добавлении вложения. Чтобы настройка автозаполнения сработала, нужно убедиться, что объект для справочника может быть записан в атрибут: в настройках можно ограничить объекты по типу ParentType и по ветви дерева ValueSource.
При настройке обоих разделов конфигурации атрибута Справочник элементов обращайте внимание на следующие моменты:
- Раздел конфигурации ElementBook содержит параметр Source, который ограничивает корневой элемент справочника. Если при добавлении вложения автозаполняемое значение будет браться из элемента справочника, который не является дочерним элементом объекта, указанного в параметре Source, такое значение не будет записано в поле карточки задания.
- Раздел конфигурации ElementBook содержит параметр ElementsTypes, который определяет допустимые типы элементов справочника. Если при добавлении вложения автозаполняемое значение будет не соответствовать типу, указанному в этом параметре, то такое значение не будет записано в поле карточки задания.
- Если в разделе конфигурации ElementBook значение параметра AllowMultiSelect установлено в false, то при добавлении вложения значение автозаполняемого атрибута будет заменятся новым. Если значение параметра установлено в true, то при добавлении вложения значение автозаполняемого атрибута будет дополнятся через запятую новыми значениями.
Раздел ElementBook
Параметры атрибутов раздела ElementBook
| Параметр | Описание параметра | Значения | Комментарий |
|---|---|---|---|
| Source | id корневого элемента структуры, множество значений которой сможет использовать атрибут. | "id" | Значение Source="00000001-0001-0001-0001-000000000001" соответствует папке Начало. Такое значение Source позволит использовать все элементы базы. |
StringFormat |
Определяет, какой из атрибутов элемента выбран для текста ссылки и заполнения поля в карточке. | "{имя атрибута}" | Например, при StringFormat="{code}" текст ссылки будет содержать значение поля Шифр элемента. |
| AllowMultiSelect | Разрешает выбор нескольких значений в диалоговом окне. | "True" | Выбор нескольких значений возможен (по умолчанию). При добавлении новых элементов (например, вложений к заданию), справочник будет пополнятся новыми элементами, а не перезаписываться. |
| "False" | Выбор ограничен одним значением. | ||
| ElementsTypes | Позволяет ограничить выбор элементов, указав только нужные имена. | “имя_типа_1, имя_типа_2, …” | Если атрибут не указан, то в справочник можно выбрать только элементы тех типов, для которых не указаны связи. |
| ShowInListView | Определяет, нужно ли показывать атрибут в списке элементов. | "True" | Атрибут виден (по умолчанию). |
| "False" | Атрибут скрыт. | ||
| EnablePopupCommands | Определяет, будет ли активен атрибут, показанный в карточке. | "True" | Атрибут активен (по умолчанию). |
| "False" | Атрибут неактивен. | ||
| CreateLink | Определяет будет ли создана дополнительная горизонтальная связь, отображаемая на вкладке Связи. В большинстве случаев создание дополнительной связи не требуется. | "True" | Связь создаётся. |
| "False" | Связь не создаётся (по умолчанию). | ||
| AutoFill | Определяет, следует ли заполнять поля атрибутов, совпадающих по имени с указанными в справочнике, значениями из справочника. | "True" | Поля заполняются. |
| "False" | Поля не заполняются (по умолчанию). |
Пример настройки конфигурации
Например, имеется справочник элементов, содержащий список контрагентов. Тип Контрагент имеет три атрибута: наименование организации (name), адрес организации (address) и руководитель (manager). Для заполнения карточки проекта с помощью этого справочника, создадим в типе Проект следующие атрибуты: заказчик (customer), адрес заказчика (address), контактное лицо (manager). Атрибут Заказчик (customer) дополним следующей конфигурацией:
<Configuration>
<ElementBook
Source="bca77be0-726d-4ae6-9699-ff465db5ba01"
AllowMultiSelect="false"
CreateLink="true"
StringFormat="{name}"
AutoFill="true"/>
</Configuration>
Где:
Source — идентификатор справочника контрагентов;
AllowMultiSelect — разрешает выбор только одного значения из справочника;
CreateLink — на вкладке Связи создаёт связь с элементом справочника, в данном случае карточкой контрагента;
StringFormat — заполняемое поле карточки и ссылка будут содержать значение указанного атрибута, в данном случае название организации;
AutoFill — при заполнении настроенного атрибута Заказчик (contractor) в карточке проекта поля с атрибутами Адрес заказчика (address) и Контактное лицо (manager) будут автоматически заполнены значениями атрибутов Адрес организации (address) и Руководитель (manager) из справочника.
| Значение атрибута типа Справочник элементов, к которому подключен справочник, обновится автоматически при изменении значения в справочнике. Для обновления автозаполненных полей потребуется редактирование карточки. |
Раздел AttachmentToTaskAutoFill
| Раздел AttachmentToTaskAutoFill, начиная с версии 25.2, заменяет собой раздел AutoFill. Уже настроенные в базах данных конфигурации с AutoFill продолжат работать. |
Раздел AttachmentToTaskAutoFill работает только для заданий. Конфигурация срабатывает на добавление в задание вложения и описывает правила автозаполнения атрибута карточки задания.
Например, чтобы при вложении документа, автоматически заполнялось соответствующее поле карточки задания названием проекта, к которому относится вкладываемый документ. Для автозаполнения используется пара атрибутов, у которых совпадает имя и тип. Если документ и задание содержат атрибут project типа Справочник элементов, то при вложении документа значение его атрибута project будет скопировано в одноимённый атрибут задания.
Подробно с параметрами раздела и примерами настройки можно ознакомиться в разделе Автозаполнение атрибутов заданий.