Урок 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)
  • Создайте новый документ, выбрав соответствующий тип, укажите читателя и сохранитесь. Атрибут «Номер в разрезе читателя» на вкладке «Характеристики» должен заполниться автоматически.