Механизм перекрытия позволяет на рабочем слое разработки безопасно изменять модули и типы сущностей базового решения: добавлять дополнительные свойства в карточку, скрывать действия на ленте, изменять логику работы.
Например, чтобы в карточку справочника базового решения добавить контрол, нужно создать свое решение, перекрыть в нем необходимый тип справочника и добавить недостающий контрол на форму. В результате в клиентском приложении карточка справочника станет отображаться с новым контролом (перекрытый справочник подменит справочник базового решения).
Так как перекрытые модули и типы сущностей хранятся на отдельном слое разработки, вы можете безопасно вносить в них любые изменения, не нарушая при этом логику работы базового решения. Это значит, что при обновлении Directum RX изменения новой версии безопасно объединятся с вашими изменениями. Предположим, что в новой версии базового решения Directum RX на ленте в карточке справочника появилась кнопка. В своем решении ранее вы перекрыли этот справочник и добавили на вкладку контрол. После обновления в карточке справочника будет отображаться ваш контрол на вкладке и кнопка на ленте из базового решения.
Если в новой версии базового решения Directum RX изменится та же часть, которую вы доработали в своем решении, у пользователей будут отображаться только ваши изменения. Например, в своем решении вы переопределили клиентскую функцию типа справочника. В новой версии базового решения разработчики изменили код этой же функции. После обновления функция будет работать так, как вы ее определили. Если вы хотите, чтобы функция работала, как в базовом решении, удалите код вашей функции или вручную перенесите доработки из функции базового решения. Чтобы не перерабатывать свои перекрытия после каждого обновления, ознакомьтесь с рекомендациями.
Создание перекрытия
Чтобы перекрыть элемент разработки:
1.Выделите решение, в котором хотите создать перекрытие, и в контекстном меню последовательно выберите пункты Перекрыть, Модуль или Перекрыть, <Имя типа сущности>, например, Документ.
2.В открывшемся окне в выпадающем списке выберите модуль, тип сущности или базовый тип сущности.
3.Нажмите на кнопку ОК. Элемент появится в дереве решений в разделе «Перекрытые элементы»:
Откроется редактор перекрытого элемента.
4.После перекрытия модуля добавьте его в список зависимостей решения. Если зависимости не указаны, то при публикации возникнут ошибки.
5.Внесите необходимые изменения. Подробнее см. раздел «Что можно изменять в перекрытии».
Перекрытие базовых типов сущностей
Удобно использовать перекрытие базовых типов документов и справочников, когда нужно внести идентичные изменения в существующие документы или справочники, созданные на основе одних и тех же родительских типов. Например, когда необходимо добавить одно и то же свойство в карточку или действие на ленту.
Предположим, в карточки договоров (Contract) и дополнительных соглашений (SupAgreement) нужно добавить поле «Куратор» для удобства отслеживания ответственного по документам. Для этого:
1.Создайте решение.
2.Перекройте тип сущности договорной документ (ContractualDocument), так как он является предком для договоров (Contract) и дополнительных соглашений к ним (SupAgreement).
Совет. Чтобы найти предка, откройте редактор, например, дополнительного соглашения (SupAgreement):
В параметре *Наследовать от указано имя типа сущности, от которого наследуются свойства, действия, форма, логика работы и другое. По ссылке Перейти можно открыть редактор базового типа сущности.
В редакторе базового типа рядом с названием сущности написано [Абстрактный <тип сущности>]:
3.В редакторе перекрытого базового типа документа добавьте свойство Куратор.
4.На форме добавьте недостающий контрол и свяжите его со свойством.
В итоге в карточках всех договоров и дополнительных соглашений к ним появится поле «Куратор».
Как видно на схеме, перекрытый базовый тип сущности находится на рабочем слое, а у конечных типов сущностей изменяется цепочка наследования. Перекрытый базовый тип документа становится предком для измененных наследников.
Если после этого вы будете создавать тип документа или справочника, при выборе базового типа сущности будет доступен перекрытый тип. Базовый тип сущности, который был до перекрытия, выбрать не получится. Так в примере выше разработчик добавил в перекрытие типа сущности договорной документ (ContractualDocument) свойство Куратор. В дальнейшем при создании нового типа договорного документа «Договор закупки» в качестве родительского типа он может выбрать только перекрытый базовый тип. В карточке созданного документа по умолчанию уже будет поле «Куратор».
© Компания Directum, 2024 |