Есть Объект со статусами Новое-В работе-Выполнено. В объекте есть деталь. Запись объекта создает Подразделение "А". Создает в статусе "Новое". Добавляет данные в деталь. Потом переводят в статус "В работе". Данные из детали анализирует подразделение "Б". Когда завершают работу, переводя на статус "Выполнено".
Требуется запретить изменять объект и данные в детали для подразделения "А" в момент когда статус объекта не равен "Новое". Если с запретом на изменение данных проблем нет - все решается администрированием Объекта по записям и наследование полномочий в детали от Объекта, а бизнес-процессом отбираем права на редактирование при смене статуса. То вот с запретом на добавление данных в деталь случился небольшой затык. Как это можно сделать?
Нравится
Алексей, на уровне интерфейса можно модифицировать схему страницы реестра своей детали, исправить функцию с проверкой условия доступности кнопки добавления, которая определена в BaseGridDetailV2.
Стандартно она такая:
/** * Determines, if add record button is enabled. * @private * @returns {Boolean} - Flag of add record button enabled. */ _isAddRecordButtonEnabled: function() { const isDetailEnabled = this.get("IsEnabled"); if (this.isEmpty(isDetailEnabled)) { return true; } return isDetailEnabled; }, /** * ########## ########### ###### ########## ######. * @return {Boolean} */ getAddRecordButtonEnabled: function() { return this._isAddRecordButtonEnabled(); }, /** * ########## ########### ###### # #### ########## ######. * @return {Boolean} */ getAddTypedRecordButtonEnabled: function() { return this._isAddRecordButtonEnabled(); },
А для гарантии можно сделать проверку и на уровне встроенного БП на событии Saving, как обсуждалось в этой теме, при отсутствии прав выбрасывать исключение, которое отобразится в окошке пользователю.
Уже принята идея реализовать запрет к созданию, изменению или удалению записи на детали в зависимости от определенного условия, либо наоборот, установить обязательное добавление записи на деталь при определенных условиях.