Урок 2. Создание типа объекта
Contents
Урок 2. Создание типа объекта#
Для каждого слушателя, чтобы он мог выполнить практические задания, описанные ниже, в системе были созданы модули «Библиотека». Код каждого модуля при этом формировался по шаблону lbrXX, где XX – порядковый номер пользователя, под которым будут выполняться задания. Модуль содержит свой собственный набор классов, бизнес-объектов, выборок, а также собственного приложение «Управление библиотекой XX». При этом все описанные ниже задания порядкового номера не содержат, и при их выполнении необходимо корректировать свои действия с учетом порядкового номера пользователя, под которым вы подключились к системе.
Задание. Создание нового типа объекта#
Создайте новый тип объекта Lbr_OutOrderLimitUse (Выдача книг с ограниченным доступом). Для этого:
Откройте приложение «Настройка системы» и перейдите в перечень типов объектов (меню: Сущности | Типы объектов | Типы объектов);
Введите в фильтр по системному имени класса «Lbr_OutOrder»;
Скопируйте найденный тип объекта «Lbr_OutOrder»;
В открывшейся карточке нового, скопированного типа объекта, измените код на «Lbr_OutOrderLimitUse», наименование на «Выдача книг с ограниченным доступом» и краткое наименование на «Выдача книг ОО».
Для нового типа объекта к уже выведенным добавьте закладки:
Прикрепленные файлы;
Подписи;
Проводки;
Маршруты;
Характеристики. Для этого:
В созданном типе объекта выделите группу настроек «Закладки типа объекта»;
В детализации справа, на панели фильтрации, отметьте признак «Отображать неактивные»;
Примечание
Если отмечен признак «Отображать неактивные», то в списке выводятся все закладки, указанные в качестве доступных для данного класса (подкласса), независимо от того, выводятся ли они для выбранного типа объекта.
Выделите все неактивные для данного типа объекта закладки и нажмите на кнопку «Добавить несколько».
Задайте порядок, в котором должны выводиться закладки, указав для них значение в атрибуте «Порядковый номер».
Перейдите в приложение «Библиотека», в интерфейс «Выдача книг». Откройте документ и измените его тип на только что созданный. В детализации документа должны отобразиться добавленные ранее закладки.
Сделайте атрибут «sNumDoc» обязательным для заполнения. При этом проверка должна срабатывать при переводе состояния из «Оформляется» в «Выполнен». Для этого:
В типе объекта перейдите на закладку «Управление атрибутами»;
В перечне настраиваемых атрибутов добавьте атрибут «sNumDoc» и укажите для него признак «Обязателен для ввода»;
В список состояний, при переводе из которых будет выполняться проверка на обязательность атрибута, укажите «Оформляется».
Создайте новый документ, выберите соответствующий тип, на котором настраивали обязательность ввода атрибута и попробуйте перевести состояние из «Оформляется» в «Выполнен». Система должна выдать сообщение о том, что необходимо заполнить значение для атрибута и состояние должно остаться прежнее. Для типа объекта настройте переход из «Оформляется» в «Согласуется» и из «Согласуется» в «Выполнен». Для этого:
В типе объекта перейдите на вкладку «Переходы состояний»;
Выделите состояния «Оформляется» и добавьте переход в «Согласуется»;
Аналогично настройте переходы из «Согласуется» в «Выполнен» и из «Согласуется» в «Оформляется»;
Сбросьте кэш для типа объекта;
Перейдите в документ (если он открыт, то его надо закрыть и открыть заново) и попробуйте перевести состояние. Состояния документа должны переводиться в соответствии со сделанными настройками.
Для типа объекта добавьте созданные ранее характеристики. Для этого:
Перейдите на вкладку «Объектные характеристики»;
Выполните операцию «Создать группу», в открывшемся диалоге введите наименование группы «Дополнительные характеристики» и нажмите кнопку «Ок»;
Выполните операцию «Создать атрибут»;
В открывшемся диалоге выбора атрибутов класса на панели фильтрации укажите фильтр «Указать все атрибуты класса»;
Выберите созданный ранее атрибут «Предполагаемая дата возврата», а также атрибут «sNumDocBMs _dz»;
Нажмите на кнопку «Выбор».
Для атрибута «sNumDocBMs_dz» измените наименование на «Номер в разрезе читателя».
Откройте документ данного типа и на вкладке «Характеристики» проверьте, что выводятся соответствующие атрибуты.
Сделайте так, чтобы значение атрибута «Номер в разрезе читателя» (sNumDocBMs_dz) вычислялось автоматически. Для этого:
В типе объекта перейдите на вкладку «Автовычисляемые колонки»;
Нажмите кнопку «Создать»;
В диалоге выбора атрибутов выберите «sNumDocBMs_dz»;
Для добавленного атрибута отметьте признаки «Сделать не редактируемым» и «Выводить кнопку автовычисления»;
Введите запрос (см. ниже) для вычисления значения атрибута, заменив «lbr_outorder» на таблицу, соответствующую вашему пользователю.
(select coalesce (max(o.snumdocbms_dz), 0)+1
from lbr_outorder o
where o.idperson = t.idperson)
Создайте новый документ, выбрав соответствующий тип, укажите читателя и сохранитесь. Атрибут «Номер в разрезе читателя» на вкладке «Характеристики» должен заполниться автоматически.