На форме определенного объекта размещена кнопка "Создать актив".

По нажатию на кнопку вызывается метод, который открывает мини-карточку методом this.openMiniPage, туда подтягиваются defaultValues (поля из текущей карточки), создается другой объект.

 

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

 

Возможно, стоило бы заранее сформировать айдишник и заполнить им поле, но как быть, если объект не был в итоге создан? Неужели запрос для этого посылать перед заполнением?

 

Напрашивается организация колбэка, но не очень понятно как это провернуть со стандартным this.openMiniPage.

 

Просьба помочь с решением данной задачи.

 

Примерный код прикладываю:



 

//функция вызывается кнопкой
createAsset: function() 
{
    this.openMiniPage({
        recordId: Terrasoft.GUID_EMPTY,
        operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
        entitySchemaName: "NewObjectSchemaName", //схема создаваемого объекта
        valuePairs: this.getAddMiniPageDefaultValues(),
        miniPageSchemaName: "NewObjectMiniPage",
	});
    //далее требуется заполнить поле текущей карточки, что-то вроде
    //this.$Asset = newObjectId;
},

 

Нравится

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

А почему вы в процессе не хотите заполнить это поле?

Владимир Соколов,

В процессе нет информации об ID записи, из которой происходило нажатие на кнопку добавления

Вадим Курунов пишет:

как вариант, можно его передавать в default values, чтобы потом прочитать в созданном объекте 

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

Коллеги, не нашёл в сообществе и академии - как можно реализовать следующее:

Приходит e-mail на выделенный адрес, в тексте емейла есть один или более guid услуги в системе.

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

Пример:

Название услуги1 bpm_id: 33b4d4c6-3d2d-4c89-98ce-90b1c0368d36;  sap: 5sdf5564

Название услуги2 bpm_id: 44444444-4444-4444-98ce-90b1c0368d36; sap: dkj398hf

 

Вопрос именно в механизме вычитки.

Спасибо!

Нравится

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

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

 

Вы можете попробовать реализовать Вашу задачу с помощью бизнес процесса со стартовым сигналом по созданию активности с типом Email. Тело письма находится в колонке "Body". В элементе "ScriptTask" (задание-сценарий) на C# можно написать механизм парсинга (письмо это html-документ).

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

Добрый день!

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

Спасибо!Изображение удалено.

Нравится

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

Добрый день.

Вряд ли вам кто-то подскажет по одному скриншоту как реализовать такую деталь, тем более она и так кастомная. Я рекомендую посмотреть исходный код этой детали и сделать по её примеру.

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

Если у пользователя нет прав на редактирование карточки Счета, можно ли через программный код дать право на редактирование одного поля в данном объекте. Реализация через код кажется оптимальной , т..к. для настройки прав через стандартный доступ по колонкам в данном сценарии требуется все таки дать пользователю права на редактирование счета, и потом забрать на все остальные, кроме этого одного поля. Но это совсем не оптимальный вариант. Поэтому задумались про реализацию разработкой. Есть ли такой опыт?

 

Нравится

1 комментарий
Лучший ответ

Можно. На параметр "enabled": {bindTo: "название функции"} указать функцию в которой проверить текущего пользователя Terrasoft.SysValue.CURRENT_USER.value на вхождение в указанную группу к примеру

Можно. На параметр "enabled": {bindTo: "название функции"} указать функцию в которой проверить текущего пользователя Terrasoft.SysValue.CURRENT_USER.value на вхождение в указанную группу к примеру

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

Добрый день! 

Подскажите, возможна ли авторизация пользователей с многофакторной аутентификацией?

Нравится

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

Я по этому поводу нашел всего одну статью 

https://community.terrasoft.ru/articles/dvuhfaktornaa-autentifikacia-v-…

 

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



К сожалению, в базовой конфигурации не предусмотрена функция двухфакторной аутентификации. 



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

Я добавлю Ваш запрос, чтобы повысить ее приоритет.



В Creatio реализована возможность авторизации через LDAP или с использованием SSO.



Спасибо, что помогаете делать наш продукт лучше!



С уважением,

Сидько Елена

Оператор

Группа компаний Terrasoft

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

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

Был ли у кого-то опыт размещения данного раздела на карточке? 

 

Изображение удалено.

Нравится

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

Добрый день.

 

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



Пользовательских средств для реализации фильтра по умолчанию нет в коробке. Только разработкой.

 

Необходимо переопределить initQueryFilters

initQueryFilters: function(esq) {

                    this.callParent(arguments);

                    esq.filters.add("ConnectionType",

                            Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "ConnectionType",1));

                    }

 

Подобные вопросы рассматривались на портале, ссылки ниже:

https://community.creatio.com/questions/how-filter-section-list-records…

https://community.terrasoft.ru/questions/kak-predustanovit-uslovie-v-fi…

https://community.terrasoft.ru/questions/vidimost-sotrudnikov-v-kontakt…

https://community.creatio.com/questions/default-filter-section



В качестве обходного решения можно создать динамическую группу с указанием нужного фильтра.

Но тут каждый пользователь должен "научиться" его применять при входе в раздел.

Вы можете подсмотреть реализацию тут:

DocListInConditionPageV2

Там увидите подключение контейнера FilterProperties, в который подгружается FilterEditModule

Литвинко Павел,

Видимо, в текущей версии нет этого файла :( не могли бы поделиться его листингом?

Вадим Курунов пишет:

define("DocListInConditionPageV2", ["FilterEditModule"],
	function() {
		return {
			entitySchemaName: "DocListInCondition",
			attributes: {
				/**
				 * Filtration object schema name.
				 */
				"FilterEntitySchemaName": {
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"dependencies": [{
						"columns": ["DocumentListStage"],
						"methodName": "updateFilterModule"
					}]
				}
			},
			mixins: {},
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "Document",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.LOOKUP,
						"value": {"bindTo": "Document"},
						"layout": {
							"column": 0,
							"row": 0,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocListGroup",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": this.Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocListGroup"},
						"layout": {
							"column": 0,
							"row": 1,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocumentListStage",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocumentListStage"},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "ParticipantRole",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "ParticipantRole"},
						"layout": {
							"column": 0,
							"row": 3,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "DocumentType",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "DocumentType"},
						"layout": {
							"column": 0,
							"row": 4,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "SysModuleReport",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.LOOKUP,
						"value": {"bindTo": "SysModuleReport"},
						"layout": {
							"column": 0,
							"row": 5,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "IsRequired",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"layout": {
							"column": 0,
							"row": 6,
							"colSpan": 10
						}
					}
				},
				{
					"operation": "insert",
					"name": "FilterProperties",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"id": "FilterProperties",
						"itemType": Terrasoft.ViewItemType.CONTAINER,
						"items": [],
						"layout": {
							"column": 15,
							"row": 0,
							"colSpan": 9,
							"rowSpan": 12
						}
					}
				},
				{
					"operation": "remove",
					"name": "actions"
				}
			]/**SCHEMA_DIFF*/,
			messages: {
				/**
				 * Subscription on filter change.
				 */
				"OnFiltersChanged": {
					mode: Terrasoft.MessageMode.BROADCAST,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				},
 
				/**
				 * Subscription on receiving of filter module configuration object.
				 */
				"GetFilterModuleConfig": {
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				},
 
				/**
				 * Publishing message about setting filter module.
				 */
				"SetFilterModuleConfig": {
					mode: Terrasoft.MessageMode.BROADCAST,
					direction: Terrasoft.MessageDirectionType.PUBLISH
				}
			},
			methods: {
 
				/**
				 * Returns Id of filtration module.
				 * @protected
				 * @return {String} Filtration module Id.
				 */
				getFilterEditModuleId: function() {
					return this.sandbox.id + "_ExtendedFilterEditModule";
				},
 
				/**
				 * Loads filter module.
				 * @protected
				 */
				loadFilterModule: function() {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.subscribe("OnFiltersChanged", this.onFiltersChanged, this, [moduleId]);
					this.sandbox.subscribe("GetFilterModuleConfig", this.onGetFilterModuleConfig, this, [moduleId]);
					this.sandbox.loadModule("FilterEditModule", {
						renderTo: "FilterProperties",
						id: moduleId
					});
					this.set("FilterModuleLoaded", true);
				},
 
				/**
				 * Sets FilterConfig by filter that was received from filtration module.
				 * @param {Object} args Object with serialized filter.
				 * @protected
				 */
				onFiltersChanged: function(args) {
					this.hideBodyMask();
					this.setFilterConfig(args.serializedFilter);
				},
 
				/**
				 * Sets field FilterConfigand flag HasFilters in objects.
				 * @param {String} serializedFilter Serialized filter.
				 * @private
				 */
				setFilterConfig: function(serializedFilter) {
					this.set("FilterConfig", serializedFilter);
					var filters = this.Terrasoft.deserialize(serializedFilter);
					this.set("HasFilters", this.Ext.isEmpty(filters) ? false : filters.getCount() > 0);
				},
 
				/**
				 * Returns config for filtration module.
				 * @protected
				 * @return {Object} Cofiguration object.
				 */
				onGetFilterModuleConfig: function() {
					return {
						rootSchemaName: this.get("FilterEntitySchemaName"),
						filters: this.get("FilterConfig")
					};
				},
 
				/**
				 * Unloads filter module.
				 * @protected
				 */
				unloadFilterModule: function() {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.unloadModule(moduleId);
					this.set("FilterModuleLoaded", false);
				},
 
				/**
				 * Creates Terrasoft.EntitySchemaQuery instance for receiving SysEntitySchemaName of FilterEntity that
				 * is specified in DocumentListStage record.
				 * @protected
				 * @return {Terrasoft.EntitySchemaQuery} Terrasoft.EntitySchemaQuery instance with initialized
				 * rootSchemaName and columns
				 */
				getEsqForInitFilterEntityByDocListStage: function() {
					var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
						rootSchemaName: "DocumentListStage"
					});
					esq.addColumn("FilterEntity.SysEntitySchemaName", "FilterEntitySchemaName");
					return esq;
				},
 
				/**
				 * Initializes FilterEntitySchemaName property depending on the DocumentListStage property and calls
				 * callback function.
				 * @protected
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				initFilterEntity: function(callback, scope) {
					var docListStage = this.get("DocumentListStage");
					if (docListStage && docListStage.value) {
						this.initFilterEntityByDocListStage(docListStage.value, callback, scope);
					} else {
						this.set("FilterEntitySchemaName", null);
						this.Ext.callback(callback, scope);
					}
				},
 
				/**
				 * Receives SysEntitySchemaName of FilterEntity that is specified in DocumentListStage record,
				 * sets is to FilterEntitySchemaName property and calls callback funcion.
				 * @protected
				 * @param {Guid} docListStageId Id of document list stage record.
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				initFilterEntityByDocListStage: function(docListStageId, callback, scope) {
					var esq = this.getEsqForInitFilterEntityByDocListStage();
					esq.getEntity(docListStageId, function(result) {
						var entity = result.success ? result.entity : null;
						this.initFilterEntityByDocListStageCallback(entity);
						this.Ext.callback(callback, scope);
					}, this);
				},
 
				/**
				 * Processes result of query in initFilterEntityByDocListStage method.
				 * @protected
				 * @param {Object} entity Object with entity that returned by query.
				 */
				initFilterEntityByDocListStageCallback: function(entity) {
					var entitySchemaName = !this.Ext.isEmpty(entity)
						? entity.get("FilterEntitySchemaName")
						: null;
					this.set("FilterEntitySchemaName", entitySchemaName);
				},
 
				/**
				 * Updates filter module. Clears filter if filter object is changed.
				 * @protected
				 * @param {Function} callback The callback function.
				 * @param {Object} scope The scope of callback function.
				 */
				updateFilterModule: function(callback, scope) {
					this.showBodyMask();
					this.initFilterEntity(function() {
						var filterEntitySchemaName = this.get("FilterEntitySchemaName");
						if (this.Ext.isEmpty(filterEntitySchemaName)) {
							if (this.get("FilterModuleLoaded")) {
								this.setFilterConfig(null);
								this.unloadFilterModule();
							}
							this.hideBodyMask();
						} else if (!this.get("FilterModuleLoaded")) {
							this.loadFilterModule();
						} else {
							var config = this.get("IsEntityInitialized") ? null : this.get("FilterConfig");
							this.setFilterModuleConfig(filterEntitySchemaName, config);
						}
						this.Ext.callback(callback, scope);
					}, this);
				},
 
				/**
				 * Publishes message SetFilterModuleConfig for filtration module.
				 * @param {String} entitySchemaName Name of object that conditions will be setting for.
				 * @param {String} filterConfig Serialized filter.
				 * @protected
				 */
				setFilterModuleConfig: function(entitySchemaName, filterConfig) {
					var moduleId = this.getFilterEditModuleId();
					this.sandbox.publish("SetFilterModuleConfig", {
						rootSchemaName: entitySchemaName,
						filters: filterConfig
					}, [moduleId]);
				},
 
				/**
				 * @inheritdoc Terrasoft.BasePageV2#onEntityInitialized
				 * @overridden
				 */
				onEntityInitialized: function() {
					this.callParent(arguments);
					this.updateFilterModule();
				},
 
				/**
				 * @inheritdoc Terrasoft.BasePageV2#onDiscardChangesClick
				 * @overridden
				 */
				onDiscardChangesClick: function() {
					if (this.isNew) {
						this.sandbox.publish("BackHistoryState");
						return;
					}
					this.set("IsEntityInitialized", false);
					this.loadEntity(this.get("Id"), function() {
						this.updateButtonsVisibility(false, {
							force: true
						});
						this.initMultiLookup();
						this.updateFilterModule(function() {
							this.set("IsEntityInitialized", true);
							this.discardDetailChange();
						}, this);
					}, this);
					if (this.get("ForceUpdate")) {
						this.set("ForceUpdate", false);
					}
				}
			}
		};
	});

 

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

Коллеги, используем решение на windows, хотел протестировать studio на платформе linux+postgres, есть прямая ссылка на дистрибутив?

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

Нравится

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

Добрый день,

 

Для предоставления дистрибутива, Вы можете обратиться в техническую поддержку Террасофт.

 

 

С уважением,

Кучер Виталина

Оператор

Группа компаний Terrasoft

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

Добрый день, товарищи разработчики!

Возникла проблема с коннектором IIT E-Signature for Creatio.

Точнее с системой, при попытке обновления 7.17.1 -> 7.17.2 Service enterprise возникает ошибка:

Autogenerated\Src\DigitalSignatureFileUploadInfo.DigitalSignature.cs(20,47) ошибка CS0535: 'DigitalSignatureFileUploadInfo' does not implement interface member 'IFileUploadInfo.IsLastChunk' 

Нравится

1 комментарий
Лучший ответ

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

 

ошибка воспроизвелась при установке решения на версию 7.17.2. Передала информацию ответственной команде для планирования работ по исправлению.

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

 

ошибка воспроизвелась при установке решения на версию 7.17.2. Передала информацию ответственной команде для планирования работ по исправлению.

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

Прошу помощи: в ленте обращений сотрудники вносили информацию об установленном оборудовании (модель). Есть ли возможность производить поиск по ленте в обращениях из раздела (как-то фильтровать через расширенный фильтр) или через глобальный поиск?

Спасибо!

Нравится

2 комментария
Лучший ответ

Из коробки такой возможности нет, так как все записи ленты хранятся в табличке "Сообщение/комментарий" и не имеют прямой взаимосвязи с экземплярами объекта и схемами разделов.

Как вариант, можно создать бизнес процесс, который будет наполнять "кастомную" табличку записью ленты и обращением (найденным по схеме и экземпляру объекта) — это позволит сделать взаимосвязь с обращением и дальнейшей фильтрацией прямо из раздела.

Пример реализации:

  1. Создаем табличку, что будет собирать сообщения ленты и обращения.
    1. Указываем родительский объект BaseEntity, придумываем код объекта и заголовок
    2. Добавляем справочники "Обращение" (Case) и "Сообщение/комментарий" (SocialMessage)
    3. Сохраняем, публикуем.
  2. Открываем через справочники запись "Сообщение/комментарий" (если нет в списке, то добавляем его для отображения) .
  3. В справочнике "Сообщение/комментарий" находим запись в ленте вашего обращения и записываем куда-то схему обращения
  4. Создаем бизнес процесс, где
    1. Добавляем элемент сигнала, что запускается по добавлению записи в табличку "Сообщение/комментарий" при условии наличия схемы раздела "Обращения"
    2. Считываем id добавленной записи "Сообщение/комментарий"
    3. Считываем "Обращение" по id = экземпляр объекта из "Сообщение/комментарий"
    4. Добавляем в табличку считанные "Сообщение/комментарий" и "Обращение"
  5. В итоге получаем бизнес-процесс, который мониторит все сообщения из ленты по обращениям и записывает их в табличку
  6. В разделе "Обращения", провалившись в нашу табличку получаем взаимосвязь с обращением и лентой

 

 

Из коробки такой возможности нет, так как все записи ленты хранятся в табличке "Сообщение/комментарий" и не имеют прямой взаимосвязи с экземплярами объекта и схемами разделов.

Как вариант, можно создать бизнес процесс, который будет наполнять "кастомную" табличку записью ленты и обращением (найденным по схеме и экземпляру объекта) — это позволит сделать взаимосвязь с обращением и дальнейшей фильтрацией прямо из раздела.

Пример реализации:

  1. Создаем табличку, что будет собирать сообщения ленты и обращения.
    1. Указываем родительский объект BaseEntity, придумываем код объекта и заголовок
    2. Добавляем справочники "Обращение" (Case) и "Сообщение/комментарий" (SocialMessage)
    3. Сохраняем, публикуем.
  2. Открываем через справочники запись "Сообщение/комментарий" (если нет в списке, то добавляем его для отображения) .
  3. В справочнике "Сообщение/комментарий" находим запись в ленте вашего обращения и записываем куда-то схему обращения
  4. Создаем бизнес процесс, где
    1. Добавляем элемент сигнала, что запускается по добавлению записи в табличку "Сообщение/комментарий" при условии наличия схемы раздела "Обращения"
    2. Считываем id добавленной записи "Сообщение/комментарий"
    3. Считываем "Обращение" по id = экземпляр объекта из "Сообщение/комментарий"
    4. Добавляем в табличку считанные "Сообщение/комментарий" и "Обращение"
  5. В итоге получаем бизнес-процесс, который мониторит все сообщения из ленты по обращениям и записывает их в табличку
  6. В разделе "Обращения", провалившись в нашу табличку получаем взаимосвязь с обращением и лентой

 

 

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



Если речь идет о возможности фильтровать записи раздела "Лента", то базовыми средствами вывести фильтры в раздел нет возможности.



На данный момент лента не индексируется в глобальном поиске. Включить ленту в глобальный поиск на текущей конфигурации системы нет возможности.



На ответственной команде разработки уже есть зафиксированные пожелания по рассмотрению реализации поиска в ленте в системе и фильтрации ленты. Я добавляю Ваше обращения с целью повышения приоритета задач.



Спасибо, что помогаете делать наш продукт лучше!



С уважением,

Сидько Елена

Оператор

Группа компаний Terrasoft

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

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

 

".. происходит на карточке активности фильтрация поля "Результат" по полю "Категория"

Категория: Визирование, Запрос мнений, подписание, ознакомление

Результат соответственно к категории по порядку:

  • Согласовано
  • Не согласовано
  • Согласовано с учетом замечаний
  • Завершено ввиду прекращения процесса согласования

 

  • Согласовано
  • Не согласовано
  • Согласовано с учетом замечаний
  • Завершено ввиду прекращения процесса согласования

 

  • Подписан
  • Не подписан

 

  • Ознакомлен

Нравится

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

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

 

Для добавления фильтрации поля "Результат" по полю "Категория"на странице редактирования первым делом в системе необходимо добавить соответствующие  справочники и вывести на страницу редактирования справочные поля в мастере раздела:

1. Добавить поле Категория со ссылкой на справочник Категории:

1. Добавить поле Результат со ссылкой на справочник Результат:



Детальнее в статье описан процесс:https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/250/sozdat_novyy_spravochnik

Далее необходимо в объекте справочника "Результат" добавить справочное поле связи "Категорией". В поле Категория в справочнике Результат нужно указать зависимость между двумя значениями. То есть задать какой Результат относиться к определённой Категории.

Добавление поля в объект справочника "Результат" можно провести через управления конфигурации:

1. Перейдите в раздел "Управления конфигурацией".

2. Найдите созданный объект "Результат" в пакете Custom.

3. Откройте объект.

4. Добавьте справочное поле на объект "Категория" и сохраните изменения.

5. Опубликуйте объект и дождитесь полного завершения процесса публикации.

Далее перейдите в справочник "Результат" и укажите зависимость полей от необходимой темы ( если потребуется добавьте колонку в список для отображения в меню "Настройка колонок").

Когда условие зависимости настроено вы можете переходить к настройке правила для фильтрации Результата относительно указанной Категории. Для этого вы можете воспользоваться функциональностью бизнес-правил. Детальнее описано по ссылке:https://academy.terrasoft.ru/docs/user/kastomizacija_no_code/nastrojka_biznes_logiki/nastroyka_biznes_logiki/nastroit_filtraciyu_znacheniy_v_spravochnom_pole

Пример,

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