Обязательность полей на детали "Связи"

Коллеги, подскажите, как можно управлять обязательностью полей на детали "Связи"?
Например в Активности, типа Задача, есть деталь "Связи", там контрагенты, контакты и прочее.
Но при открытии в дизайнере страницы, поля этой детали недоступны, и соответственно, не получается проставить их обязательность.

Подскажите, как можно решить этот банальный кейс?

Нравится

10 комментариев

Фариз, здравствуйте!

Деталь, например, «Связи» не является стандартной деталью и вшита базовую логику приложения (Рис. 1). Это даже не деталь, а можно сказать группа полей.

Редактирование таких деталей (объектов) необходимо осуществлять на уровне схемы (через конфигурацию).
Согласно Вашей задачи обязательность колонки Вы можете реализовать на уровне объекта. Для этого необходимо заместить соответствующий объект и проставить обязательность поля (Рис. 2).

Так как признак обязательности поля/ ссылается на сам объект, а не на схему.

"Вильшанский Дмитрий" написал:Деталь, например, «Связи» не является стандартной деталью и вшита базовую логику приложения (Рис. 1). Это даже не деталь, а можно сказать группа полей.

А не планируется пересмотреть такой подход? Каждый раз, стандартно создавая новый раздел, приходится делать нестандартные вещи. А уже "пользователь без программиста" вообще не сможет добавить свою колонку в Связи

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

Деталь, например, «Связи» не является стандартной деталью и вшита базовую логику приложения (Рис. 1). Это даже не деталь, а можно сказать группа полей.

А не планируется пересмотреть такой подход? Каждый раз, стандартно создавая новый раздел, приходится делать нестандартные вещи. А уже "пользователь без программиста" вообще не сможет добавить свою колонку в Связи

Владимир, здравствуйте!

Здесь скорее вопрос не о пересмотре подхода, а том, что Вы пытаетесь изменить базовую схему, которая лежит в верхнем пакете. Поэтому необходимо замещать, чтобы можно было внести изменения.
Предполагается, что приложение кастомизирует пользователь, который знает функционал и понимает, что он делает (для этого у нас есть обучение и SDK).

Примечание. В ближайших версиях (ориентировочно 7.8) планируется убрать кнопку «Настроить», которая отображает данное сообщение у некоторых базовых деталей.

"Вильшанский Дмитрий" написал:Предполагается, что приложение кастомизирует пользователь, который знает функционал и понимает, что он делает

Да, пользователь предполагает, что он добавит стандартное Lookup-поле (связь с новым разделом) в карточку Activity с помощью стандартного мастера раздела, а затем в своем разделе с помощью мастера добавит деталь Activity. И всё - так работает со всеми другими разделами, за исключением Activity.

Но в Activity непонятно зачем добавлена деталь связей, на которую уже без залезания в базу поля не добавить

"Вильшанский Дмитрий" написал:Предполагается, что приложение кастомизирует пользователь, который знает функционал и понимает, что он делает (для этого у нас есть обучение и SDK).

Кстати, не могу найти в SDK (может, стоит добавить), как в Activity добавить поле в "Связи", и как в карточку настройки Activity в БП добавить настройку этого поля

"Владимир Соколов" написал:

Но в Activity непонятно зачем добавлена деталь связей, на которую уже без залезания в базу поля не добавить

Владимир, это не стандартная деталь. Она строиться динамически.

"Владимир Соколов" написал:
Вильшанский Дмитрий пишет:

Предполагается, что приложение кастомизирует пользователь, который знает функционал и понимает, что он делает (для этого у нас есть обучение и SDK).

Кстати, не могу найти в SDK (может, стоит добавить), как в Activity добавить поле в "Связи", и как в карточку настройки Activity в БП добавить настройку этого поля

Ниже приведен алгоритм (для решения данной задачи необходим доступ к БД):
1. В замещенном объекте «Activity» добавляете колонку, который ссылается на Ваш раздел (необходимо указывать объект раздела, например «Объекты») (Рис. 1). Опубликовать объект.

Рис. 1

2. Затем необходимо узнать Uid колонки в замещенном объекте «Activity» (для дальнейших действий). Узнать можно через метаданные (Рис. 2). Uid является уникальным.

Рис. 2

3. Затем необходимо добавить запись в таблицу «EntityConnection» с помощью команды INSERT INTO, где SysEntitySchemaUId = ‘C449D832-A4CC-4B01-B9D5-8A12C42A9F89' (это ID схемы активностей) и ColumnUId = Uid колонки, который я описал во 2 пункте (например, ‘fbbd60dc-beec-4eb4-96ed-6a18037b1bd9’):

Пример:

Insert into EntityConnection (SysEntitySchemaUId, ColumnUId) values ('C449D832-A4CC-4B01-B9D5-8A12C42A9F89', 'fbbd60dc-beec-4eb4-96ed-6a18037b1bd9')

4. Очистить кэш браузера и почистить Redis приложения.

"Вильшанский Дмитрий" написал:Ниже приведен алгоритм (для решения данной задачи необходим доступ к БД):

Спасибо! Добавил через SQL, так как система on-demand, а ради одного поля не хотелось разворачивать среду разработки

Извините указанные выше действия это для добавления полей в Задачу в БП (см рис ниже)?

"ЮМарат" написал:

Извините указанные выше действия это для добавления полей в Задачу в БП (см рис ниже)?

Прикрепленный файлРазмер

20160412_activity.png
22.81 кб

Речь изначально идет про раздел Активности. То что Вы спрашиваете это - ActivityUserTask.

Показать все комментарии