Можно привести пример метода обработчика нажатия на значение меню "Действия" в карточке, например, контрагента, который запускает какой-то процесс.

В академии есть пример - https://academy.terrasoft.ru/documents/technic-sdk/7-9/dobavlenie-deystv... , который показывает, как открывать карточку ил выводить значение. Можно ли пример с запуском БП. Самый простой.

Нравится

1 комментарий

Всем доброго времени суток.

Версия 7.9.

На страницу Лида добавили свою кнопку "Распределить", запускающую определённый бизнес-процесс.

Проблема в том, что пользователи иногда меняют информацию на странице, после чего запускают наш БП, но поскольку изменённая информация при этом ещё не сохранена, то БП выполняется при старых данных.

Вопросы в следующем:

1. Правильно ли я понимаю, что просто вызвать метод save перед вызовом БП недостаточно? То есть чтобы сохранить изменения перед вызовом БП нужно полностью выполнить всю операцию, как в методе save из схемы BaseEntityPage:

//Функция, выполняемая по клику на кнопку Распределения
onRunProcessProdLeadClick: function(config){

this.Terrasoft.chain(

                                        this.saveCheckCanEditRight,
                                        this.saveAsyncValidate,
                                        this.saveEntityInChain,
                                       
                                        function() {
                                                this.Ext.callback(callback, scope || this);
                                               
                                                // Запуск пользовательского бизнес-процесса.
                                ProcessModuleUtilities.executeProcess(args);
                                        }, this);
                               

                        },

Но в этом случае вываливается ошибка в консоли. Как правильно вызвать сохранение, если не через this.save()?

2. Как правильно вызвать сохранение на странице в совмещённом режиме (LeadSection)?

3. Можно ли сделать сохранение прямо внутри БП, с учётом изменённых данных на странице?

Нравится

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

1) Насколько я помню, есть метод onSaved(), отрабатывает после сохранения.
2) Нажатие кнопки "сохранить". Идет сообщение в карточку

this.sandbox.publish("OnCardAction", tag, [cardModuleSandboxId]);

там отрабатывает save
3) Не уверен. Скорее всего можно собрать измененные данные в объект, кинуть в бп в качестве параметра и там C# распарсить. Такая себе идея, если честно)

Данила,

1. onSaved отрабатывает после сохранения, это да. Но задача-то состоит в том, чтобы вызвать сохранение нажатием по другой кнопке, а сразу после сохранения - БП.

Если я сделаю так:

this.save();
ProcessModuleUtilities.executeProcess(args);

то сохраниться не всегда успевает. Возможно есть какой-нибудь callback у this.save()?

2. Понятно, то есть если решим проблему с переопределением save в карточке, то можно будет вызвать БП из карточки через сандбокс.

"Смородинов Денис" написал:Возможно есть какой-нибудь callback у this.save()?

Не так вас понял. Исправляюсь)

onMyBtnClick: function() {
	this.save({
		callback: function() {
			debugger;
		},
		isSilent: true
	});
}

Касательно раздела. Как я уже писал Bpm кидает tag (равен "save"). Можно его подменить. Примерно:
В секции

onCardAction: function() {
	var tag = arguments[0] || arguments[3];
	var cardModuleSandboxId = this.getCardModuleSandboxId();
	if (tag === "save") {tag = "saveAndRunProc";} ///или сразу кидать название функции в pageV2, тогда модификация след. блока не потребуется
 
	this.sandbox.publish("OnCardAction", tag, [cardModuleSandboxId]);
},

В карточке ловить

onCardAction: function() {
	var action = arguments[0] || arguments[3];
 
	if (action === "saveAndRunProc") { this.onMyBtnClick();}
	else { this[action](); }
},

Данила, спасибо!

Работает.

"Варфоломеев Данила" написал:Касательно раздела. Как я уже писал Bpm кидает tag (равен "save"). Можно его подменить. Примерно:

Уже сделал по другому. Свой sandbox просто добавил и вызываю в карточке свою функцию, внутри которой save и вызов БП.

"Смородинов Денис" написал:Работает.

"Смородинов Денис" написал:Свой sandbox просто добавил и вызываю в карточке свою функцию

Отлично:smile:

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

Добрый день, подскажите,пожалуйста, какими средствами можно добавить в раздел "Контакты" быстрый фильтр (иконки календаря), подобный фильтру в разделе "Активности", чтобы можно было выбирать временной период за который отображать созданные "Контакты"?

Нравится

1 комментарий

Здравствуйте!

Вы можете реализовать быстрые фильтры в разделе Контакты средствами разработки.

Пример реализации можно посмотреть в схеме ActivitySectionV2.

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

Добрый день!
Есть кейс, согласование изменений с пользователями портала.
Попробовал добавить раздел в рабочее место, он не отобразился. Попробовал сделать панель итогов список с активностями портального пользователя, там они тоже не отображаются. Есть какая нибудь возможность дать пользователю выполнить задание на согласование?

Нравится

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

Добрый день, Александр!

Изначально, у пользователя портала ограничено количество объектов, на которые он имеет права доступа. На объект активности у пользователя портала доступа нет.

Портал самообслуживания реализован исключительно для продукта "Service" и работу с обращениями.

Но, Вы можете попытаться реализовать необходимую логику руководстуясь инструкцией:
1) Права на объекты для портальных пользователей регулируются справочником "Объекты, доступны пользователям портала", как правило, данный справочник заполняется с помощью скрипта "InsertPortalUserCanReadRightsMSSql" - в нем необходимо указать перечень объектов на которые будут даваться права. (данные права никак не относятся к администрированию системы).
2) На необходимые объекты должны быть розданы права на операции и на записи для пользователей портала.
3) Разделы, схемы страниц и т.д на портал создаются отдельно, по подобию как реализовано с обращениями и базой знаний. Иструкцию как создать и зарегистрировать раздел для портала прикрепил "Установка+разделов+на+портале".

Резюмируя вышеописанное, данная задача не есть проста. И реализацией подобных задачь, как правило, выполняется проектными отделами.

Спасибо за подробный ответ! Буду разбираться.

Михаил, тоже интересует вопрос создания разделов и схем страниц на портале. Можете прикрепить файл, который упоминали в предыдущем комментрии "Установка+разделов+на+портале"?

Арменчу Артём Александрович,

Артем, добрый день! 

По указанной ссылке выдает 404 ошибку

Николай, прошу прощения. 



Новая ссылка:



http://tsrdp.tscrm.com/support/Pub/Adasyuk/Установка раздела на портале.zip

Арменчу Артём Александрович,

Ссылки по прежнему битые. 

Есть вопрос: Как на портале можно создать несколько рабочих  мест с различным набором разделов и своей главной страницей для разных ролей пользователей портала (по аналогии с партнёрским порталом самообслуживания Теrrasoft)

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

Есть 2 компанента: чекбокс (UsrIsKeyContact) и поле справочник (UsrLoyality) как сделать так, когда ставится галочка на чекбокс выбиралось одно значение из справочника, а когда снимался чек-бокс ставилось другое значение?
Объясните как нубу.
Как я понял, мне надо создать замещающий модуль для модуля контактов, и там что-то прописать. Но что?

Нравится

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

Здравствуйте!

Нужно прописать логику заполнения поля.

Например, добавить в страницу редактирования следующую логику - при изменении поля UsrIsKeyContact устанавливать в поле UsrLoyality нужно значение.

Для этого:
1) Установите зависимость поля UsrLoyality от значения поля UsrIsKeyContact. это делается приблизительно следующим кодом:

attributes: {
	"UsrLoyality": {
		dependencies: [
			{
				columns: ["UsrIsKeyContact"],
				methodName: "setMyValue"
			}
		]
	}
},

2) Реализовать метод setMyValue, который заполнит поле UsrLoyality нужным значением.
Пример кода:

methods: {
	setMyValue: function() {
		var id1 = ""; /*укажите Id значение которое необходимо установить в поле UsrLoyality, если UsrIsKeyContact - true*/
		var id2 = ""; /*укажите Id значение которое необходимо установить в поле UsrLoyality, если UsrIsKeyContact - fasle*/
		var usrIsKeyContact = this.get("UsrIsKeyContact");
		if (usrIsKeyContact) {
			this.set("UsrLoyality", id1);
		}
		else {
			this.set("UsrLoyality", id2);
		}
	}
},

Рекомендация для версии 7.Х, но не для 2.8...

Илья Викторович, исходя из описания Вы используете 7.х.
Решить можно с помощью бизнес-правил - https://academy.terrasoft.ru/documents/technic-sdk/7-9/biznes-pravila-i…

Можете для решения используйте следующий топик - http://www.community.terrasoft.ru/forum/topic/20619 или http://www.community.terrasoft.ru/forum/topic/22255 или http://www.community.terrasoft.ru/forum/topic/13681

Переместите, пожалуйста, тему в корректную ветку:smile:

"Демьяник Алексей" написал:

Я все равно не понимаю как это сделать... Открываю автоматически созданный модуль (после редактирование дизайна раздела), и просто даже если сразу его сохранить выдает ошибку компиляции (почти на каждую строку кода ругается).

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?

"Михайловский Илья Викторович" написал:

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?


"Михайловский Илья Викторович" написал:

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?

См. мой ответ выше - это подписка на изменение колонки UsrIsKeyContact:

attributes: {
        "UsrLoyality": {
                dependencies: [
                        {
                                columns: ["UsrIsKeyContact"],
                                methodName: "setMyValue"
                        }
                ]
        }
},

JS не компилируется - при сохранении проверяется только синтаксис (отступы, пробелы и т.д), но никак не функциональность кода.

"Демьяник Алексей" написал:
JS не компилируется - при сохранении проверяется только синтаксис (отступы, пробелы и т.д), но никак не функциональность кода.

[s]Ага я уже понял. Еще вопрос, куда добавлять код в ContactPageV2 или ContactSectionV2?
Если добавить в страницу, то при открытии контакта - ничего не грузится.
Если добавить в секцию, то при открытии раздела "Контакты" идет бесконечная загрузка...[/s]

Все, сорри. Была ошибка в форматировании, скобка закрвающая фигурная скобка стояла не там где нужно. Все работает. СПАСИБО!

А нет, появилась другая проблема. UsrLoyalty - это поле из справочника.
Что нужно указывать в id1: this.set("UsrLoyality", id1);
пробовал как в шарпах по индексам, пробовал просто по значению, все равно пишет: undefined

Нужно указать Id значения в справочнике. У вас есть доступ к базе данных?

"Демьяник Алексей" написал:

Нужно указать Id значения в справочнике. У вас есть доступ к базе данных?


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

Но вот открыл в браузере, мб это оно
для одного значения
#BaseLookupConfigurationSectionDataGridGrid-item-aae7efd5-4ef8-4815-b748-ee353a22e21e
для другого
#BaseLookupConfigurationSectionDataGridGrid-item-faec5bcc-b748-44b7-a402-75d3a24ef045

Уставливал эти айдишки (aae7efd5-4ef8-4815-b748-ee353a22e21e) и все равно Undefined

Здравствуйте!

Попробуйте так:

var id1 = {
	value: "aae7efd5-4ef8-4815-b748-ee353a22e21e",
	displayValue: "1"
};
 
var id2 = {
	value: "faec5bcc-b748-44b7-a402-75d3a24ef045",
	displayValue: "2"
};

Где displayValue: это значение из колонки "Название".

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

Можно ли в элементе БП "Perform Task" установить автора задачи?

Например, БП ответвлялся на курьера, который должен был доставить документы, а потом создается задача для менеджера, чтобы связаться с клиентом. И тогда автором задачи является курьер, что совсем нелогично.

Нравится

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

Здравствуйте!

В элементе [Perform Task] указать автора записи не получится.
Вариант 1. Создавать активность с помощью элемента [Добавить данные], заполнять Автор целевым контактом.
Вариант 2. С помощью элемента [Изменить данные] – изменять автора в существующей активности.

"Зарицкий Олег" написал:В элементе [Perform Task] указать автора записи не получится.

Может, как-то несложно модифицировать этот элемент?

Алгоритм есть тут: http://www.community.terrasoft.ua/forum/topic/25021
В коробочной верси возможность появится начиная с 7.10 (возможно в 7.9.2)

"Зарицкий Олег" написал:В коробочной верси возможность появится начиная с 7.10 (возможно в 7.9.2)

А эта функциональность уже появилась?

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

Добрый день.

Необходимо сделать проверку по дате или просто выставлять сегодняшнее число при создании продажи (см. скриншот "Дата создания"). Подскажите возможно ли это сделать?

И второй вопрос, возможно ли сделать маску ( +7 (___) ___-__-__ ) для поля Телефон при создании контакта?

Огромное спасибо!

Нравится

3 комментария

Добрый день, Павел!

Для решения вопроса с полем "Дата создания" рекомендуем с помощью базового функционала в виде мастера разделов установить признак "Только для чтения". Таким образом пользователи не смогут его редактировать, а по умолчанию поле заполняется системной переменной "current date/time". Прикрепил скриншот для наглядности.

А маска делается с помощью регулярки в валидаторе

Что касается вопроса по маске номера телефона, то подобные темы уже рассмотрены на нашем форуме:
http://www.community.terrasoft.ru/forum/topic/11152
http://www.community.terrasoft.ru/forum/topic/16927

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

Доброго времени суток, приходилось ли кому добавлять, кнопку или другие элементы в детали с реестром ? как можно это реализовать?

Нравится

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

"Головачев Дмитрий Александрович" написал:кнопку

Смотря куда

"Варфоломеев Данила" написал:
Головачев Дмитрий Александрович пишет:

кнопку

Смотря куда


В каждую строку детали

Из baseSectionV2: в гриде есть activeRowActions

{
 
	"operation": "insert",
	"name": "DataGrid",
	"parentName": "DataGridContainer",
	"propertyName": "items",
	"values": {
                ...
		"activeRowActions": [],
                ...
	}
},

и потом в действия заносятся кнопки

{
	"operation": "insert",
	"name": "DataGridActiveRowOpenAction",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": Terrasoft.controls.ButtonEnums.style.BLUE,
		"caption": {"bindTo": "Resources.Strings.OpenRecordGridRowButtonCaption"},
		"tag": "edit"
	}
},

Полагаю, что можно это как-то приспособить под gridDetail

"Варфоломеев Данила" написал:

Из baseSectionV2: в гриде есть activeRowActions

{

       

        "operation": "insert",

        "name": "DataGrid",

        "parentName": "DataGridContainer",

        "propertyName": "items",

        "values": {

                ...

                "activeRowActions": [],

                ...

        }

},

и потом в действия заносятся кнопки

{

        "operation": "insert",

        "name": "DataGridActiveRowOpenAction",

        "parentName": "DataGrid",

        "propertyName": "activeRowActions",

        "values": {

                "className": "Terrasoft.Button",

                "style": Terrasoft.controls.ButtonEnums.style.BLUE,

                "caption": {"bindTo": "Resources.Strings.OpenRecordGridRowButtonCaption"},

                "tag": "edit"

        }

},

Полагаю, что можно это как-то приспособить под gridDetail


Как можно добавить действие в выпадающее меню где троеточее?

"Головачев Дмитрий Александрович" написал:Как можно добавить действие в выпадающее меню где троеточее?

В BaseGridDetailV2 обратите внимание на методы
-initToolsButtonMenu
-addToolsButtonMenuItems

В целом достаточно 2х методов:

addToolsButtonMenuItems: function(toolsButtonMenu) {
	this.callParent(arguments);
	var button = this.getMyBtn(toolsButtonMenu);
	toolsButtonMenu.addItem(button);
}
 
getMyBtn: function(toolsButtonMenu) {
	toolsButtonMenu.addItem(this.getButtonMenuSeparator()); ///добавляет разделитель между кнопками
	toolsButtonMenu.addItem(this.getButtonMenuItem({
		Caption: "Моя кнопка",
		Click: {"bindTo": "/*функция обработчик*/"},
		Visible: {"bindTo": "/*атрибут/функция контроля видимости*/"}
	}));
}

"Варфоломеев Данила" написал:
Головачев Дмитрий Александрович пишет:

Как можно добавить действие в выпадающее меню где троеточее?

В BaseGridDetailV2 обратите внимание на методы

-initToolsButtonMenu

-addToolsButtonMenuItems

В целом достаточно 2х методов:

addToolsButtonMenuItems: function(toolsButtonMenu) {

        this.callParent(arguments);

        var button = this.getMyBtn(toolsButtonMenu);

        toolsButtonMenu.addItem(button);

}



getMyBtn: function(toolsButtonMenu) {

        toolsButtonMenu.addItem(this.getButtonMenuSeparator()); ///добавляет разделитель между кнопками

        toolsButtonMenu.addItem(this.getButtonMenuItem({

                Caption: "Моя кнопка",

                Click: {"bindTo": "/*функция обработчик*/"},

                Visible: {"bindTo": "/*атрибут/функция контроля видимости*/"}

        }));

}


Спасибо Данила

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

Нужно создать новый фильтр в расписании - рабочая неделя.
насколько я разобрался изменения нужно вносить в в замещающие модули FixedFilterViewModelV2 и FixedFilterViewV2, полностью скопировал код из родителей, дописал новый фильтр и сохранил. После обновления страницы в списку появился новый фильтр но пропали все другие, пустые строки, но когда на них нажимать фильтрование происходит. Также пропали иконки текущего дня, тек недели и месяца. Остался только выпадающий список с пустыми строками среди которых мой фильтр. Как сделать что бы все старое осталось и был мой новый фильтр?о

Нравится

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

в модуль перенести все ресурсы

Так они переносятся при указании поля родительский объект

"Радчук Виталий Владимирович" написал:Так они переносятся при указании поля родительский объект

Поверьте мне, нет. С модулями все очень плохо на текущий момент.

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

И еще один болезненный вопрос. Как заставить бпм отобразить изменения? код сохраняю, компилирую все, обновляю с очисткой кеша, удаляю кеш цклинером - бесполезно, 0 реакции...

А если посмотреть код схемы в браузере, ваши изменения находит? Если переоткрыть схему в конфигурации снова, ваши изменения остались в ней?

А где изображения взять то? с родителя не скачаеш...

"Максим Шевченко" написал:А если посмотреть код схемы в браузере, ваши изменения находит?

нет
"Максим Шевченко" написал:Если переоткрыть схему в конфигурации снова, ваши изменения остались в ней?

да

"Радчук Виталий Владимирович" написал:А где изображения взять то? с родителя не скачаеш...

Откатите изменения, удалив данную схему замещения, после этого внесите любые изменения в любую другую js схему, сохраните, после чего почистите кеш браузера и перезайдите на сайт. И inspect-ом браузера найдите и скачайте все картинки что у Вас пропали после замещения.

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

Значит изменения сохранились. Почистите кеш браузера что бы увидеть их в браузере.

"Максим Шевченко" написал:Значит изменения сохранились. Почистите кеш браузера что бы увидеть их в браузере.

чистил, не помогало
"Максим Шевченко" написал:после этого внесите любые изменения в любую другую js схему, сохраните

по этой схеме иногда работает... крутая схема...

"Радчук Виталий Владимирович" написал:чистил, не помогало

Сложно в это поверить. Напишите в техническую поддержку Террасофт указав сайт и схему где сделаны изменения. Если они внесены и сохранены, они должны появится в браузере, другое дело что вы там написали, может быть просто код неккоректен.

"Радчук Виталий Владимирович" написал:по этой схеме иногда работает... крутая схема...

При удалении схем, на данный момент это единственный способ дать понять системе что что-то изменилось и нужно пересобрать все схемы.

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

Добрый день!

Можно ли сделать 2 раздела, которые будут использовать 1 объект, 1 страницу редактирования, но 2 разные страницы раздела (Section)?

Нравится

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

Здравствуйте!

Можно сделать прямым запросом в БД.
Создаем раздел Emails, взяв за основу раздел Activity:

insert into SysModule
(Caption, SysModuleEntityId, Image16, Image20, FolderModeId, GlobalSearchAvailable, HasAnalytics, HasActions, HasRecent, Code, ModuleHeader, CardSchemaUId, SectionModuleSchemaUId, SectionSchemaUId, CardModuleUId, Image32Id, LogoId)
values
('Emails', 'a2e7bf65-7380-e011-afbc-00155d04320c', (select Image16 from SysModule where Id = '055063c9-8180-e011-afbc-00155d04320c'), (select Image20 from SysModule where Id = '055063c9-8180-e011-afbc-00155d04320c'), 'b659d704-3955-e011-981f-00155d043204',
1, 1, 1, 0, 'Email', 'List of mails', '80918b27-ff37-4d8c-ba73-c985d74d3dc2', 'df58589e-26a6-44d1-b8d4-edf1734d02b4', '569aaf1a-5943-4f87-ab47-948d941e4920', '4e1670dc-10db-4217-929a-669f906e5d75', 'abe30a95-e663-43a9-a881-834b70de5206', '631b1018-9b82-43fe-9f5e-aad272aae679' )

Здравствуйте!

Спасибо. Я добавил раздел, но при переходе на него меня перекидывает на активности, можно ли это исправить? И можно ли страницу реестра изменить?

"Демьяник Алексей" написал:Создаем раздел Emails, взяв за основу раздел Activity:

Как интересно. И это всё, что нужно сделать для нового раздела Emails?

Здравствуйте!

"Колебянов Виталий Романович" написал:

Здравствуйте!

Спасибо. Я добавил раздел, но при переходе на него меня перекидывает на активности, можно ли это исправить? И можно ли страницу реестра изменить?

Это был пример запроса, который создает новый раздел, взяв за основу существующий.

При необходимости можно изменить:
1) Страницу раздела (поле SysModule.SectionSchemaUId)
2) Страницу редактирования раздела (поле SysModule.CardSchemaUId)
3) Страницу миникарточки и много чего другого

Предварительно страницу раздела необходимо создать в конфигурации.

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

Как интересно. И это всё, что нужно сделать для нового раздела Emails?

Это будет полная копия раздела "Активности", которая будет называться Emails. Логика раздела "Активности" останется.
Для изменения логики необходимо менять схему раздела, страницы разделов.

"Демьяник Алексей" написал:

Здравствуйте!

Колебянов Виталий Романович пишет:

Здравствуйте!

Спасибо. Я добавил раздел, но при переходе на него меня перекидывает на активности, можно ли это исправить? И можно ли страницу реестра изменить?

Это был пример запроса, который создает новый раздел, взяв за основу существующий.

При необходимости можно изменить:

1) Страницу раздела (поле SysModule.SectionSchemaUId)

2) Страницу редактирования раздела (поле SysModule.CardSchemaUId)

3) Страницу миникарточки и много чего другого

Предварительно страницу раздела необходимо создать в конфигурации.

Владимир Соколов пишет:

Как интересно. И это всё, что нужно сделать для нового раздела Emails?

Это будет полная копия раздела "Активности", которая будет называться Emails. Логика раздела "Активности" останется.

Для изменения логики необходимо менять схему раздела, страницы разделов.

Я все сделал, но теперь проблема в том, что когда я перехожу на второй раздел я попадаю в него, но слева в панели показывает, что я в первом, но нахожусь я во втором, можно ли это исправить?

Виталий, необходимо обратиться в службу поддержки - для понимания необходимо провести отладку. При обращении в службу поддержки рекомендую предоставить результат собственной отладки.

Здравствуйте!
Получилось ли решить проблему с фокусом на неправильном разделе? Не поделитесь ли способом?

У меня кейс заключается в следующем: на основе имеющегося объекта создать раздел с новой страницей раздела и с новой страницей редактирования.
Появилась проблема - при открытии страницы редактирования объекта открывается не та, что была указана в CardSchemaUId, а старая. Как это можно решить?
Спасибо!

Здравствуйте, Михаил!

Попробуйте в мастере раздела настроить типизацию страниц для каждого из разделов.
Также, посмотрите необходимые связи:
- [SysEntitySchemaUId] в таблице SysModuleEntity (таблица, где хранится информация объектах разделов). Где [SysEntitySchemaUId] - колонка Uid объекта раздела (например, "UsrRK") в таблице SysSchema.

- В таблице SysModuleEdit (страница редактирования "Page"):
где [SysModuleEntityId] - колонка Id записи таблицы SysModuleEntity из первого этапа (проверка Select Id from SysModuleEntity Where SysEntitySchemaUId='AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E')
[CardSchemaUId] - колонка Uid страницы редактирования объекта (например, "UsrRK1Page") в таблице SysSchema (проверка Select Uid,Name from SysSchema where name like '%UsrRK%').

- В таблице SysModule (страница раздела "Section"):
где [SysModuleEntityId] - колонка Id записи таблицы SysModuleEntity из первого этапа (проверка Select Id from SysModuleEntity Where SysEntitySchemaUId='AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E').

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