Подскажите как добавить связь раздела "Согласующие" в список выбора?
Нравится
Для того чтобы добавлять произвольные "Связи" в штатную механику, Вам необходимо добавить ее описание в таблицу EntityConnection
- SysEntitySchemaUId (это реплика к значению колонки UId из таблицы SysSchema запись в которой описывает схему объекта для которого устанавливается связь
- ColumUId (это реплика к одноименному полю в таблице SysEntitySchemaReference запись в которой отражает связь объекта с субъектом и его полем, фактически является описанием соотношения справочных полей в объектах)
изучите на примере уже существующих связей.
PS: в помощь Вам SQL скрипт который поможет Вам найти нужное значение по имени колонки и схемы от которой строится связь
-- Ищем колонку Лида (Lead) в схеме Активности (Activity) SELECT SysEntitySchemaReference.*, Name FROM SysEntitySchemaReference SysEntitySchemaReference INNER JOIN dbo.SysSchema SysSchema ON SysEntitySchemaReference.SysSchemaId = SysSchema.Id WHERE ColumnName = 'Lead' AND Name = 'Activity'
Севостьянов Илья Сергеевич,
Все намного проще:
1. Добавить в объект Activity колонку, ссылающуюся на нужный справочник .
2. Найти UId колонки добавленной в первом пункте (в метаданных справочника).
3) Выполнить скрипт предоставленный раннее
INSERT INTO EntityConnection (SysEntitySchemaUId, ColumnUId) VALUES ('C449D832-A4CC-4B01-B9D5-8A12C42A9F89', 'UId_колонки_из_п.2');
Где UId колонки - UId колонки для связи из метаданных обьекта Activity.
4) Выполнить очистку кэша и перезайти в систему.
Последовательность правильная. В п.3 можно использовать более удобный скрипт для MSSQL:
DECLARE @columnName varchar(max) = 'UsrColumn'; INSERT INTO [EntityConnection] ([SysEntitySchemaUId], [ColumnUId]) VALUES ( (SELECT [UId] FROM [SysSchema] WHERE [Name] = 'Activity' AND [ExtendParent] = 0), (SELECT DISTINCT [ColumnUId] FROM [SysEntitySchemaReference] WHERE [SysSchemaId] IN (SELECT [Id] FROM [SysSchema] WHERE [Name] = 'Activity') AND [ColumnName] = @columnName));