При выборе справочного поля в простых фильтрах открывается полный список объектов этого справочника. Возможно ли каким-то образом повлиять на эту выборку и применить фильтрацию к отображаемым значениям?

Речь идет не о списке полей, а именно о значениях этих полей.

 

Есть необходимость подобной фильтрации в кастом-фильтрах хотя бы в реестрах (Section)

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

Нравится

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

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

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

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

Здравствуйте, есть задача по обновлению creatio sales с версии 7.16.1.2135 до версии 7.18.3.1238. Конечно нужно перенести и базу, сделал бэкап старой, дальше как обычно развернул на iis creatio с новой версией, базу восстановил из бэкапа, ConnectionString проверил, там ошибки по подключению не может быть. Что может быть не так?Изображение удалено.

Нравится

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

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

 

Собственно здесь же подробно все описано 

https://academy.terrasoft.ru/docs/release/instrukciya-po-obnovleniyu-si…

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

 

Собственно здесь же подробно все описано 

https://academy.terrasoft.ru/docs/release/instrukciya-po-obnovleniyu-si…

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

Здравствуйте! Можно ли настроить раздел "Задать вопрос в поддержку" не отправкой письма на email, а переходом на определенный сайт?

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

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

Нравится

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

Kristina Krasnova, добрый день! 

Можно сделать так:

Создать замещающий клиентский модуль для схемы "ContextHelpSchema",

добавить в него код (откроет раздел "Контакты")

define("ContextHelpSchema", [], function() {
    return {
        methods: {
            openSection: function() {
                const hash = Terrasoft.combinePath('SectionModuleV2', 'ContactSectionV2');
                this.sandbox.publish("PushHistoryState", {hash: hash});
            }
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "askSupportMenuItem",
                "parentName": "HelpButton",
                "propertyName": "menu",
                "values": {
                    "click": {"bindTo": "openSection"},
                }
            },
        ]/**SCHEMA_DIFF*/
    };
});

 

Kristina Krasnova, добрый день! 

Можно сделать так:

Создать замещающий клиентский модуль для схемы "ContextHelpSchema",

добавить в него код (откроет раздел "Контакты")

define("ContextHelpSchema", [], function() {
    return {
        methods: {
            openSection: function() {
                const hash = Terrasoft.combinePath('SectionModuleV2', 'ContactSectionV2');
                this.sandbox.publish("PushHistoryState", {hash: hash});
            }
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "askSupportMenuItem",
                "parentName": "HelpButton",
                "propertyName": "menu",
                "values": {
                    "click": {"bindTo": "openSection"},
                }
            },
        ]/**SCHEMA_DIFF*/
    };
});

 

Sorotiuk Anna,

Анна, большое вам спасибо за ответ!

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

Здравствуйте, у нас развернута creatio версии 7.18.3 в докере на линуксе, столкнулись с такими ошибками при компиляции, подскажите как можно исправить? Система чистая, без каких-либо изменений.Изображение удалено.

Нравится

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

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

 

https://docs.microsoft.com/en-us/visualstudio/msbuild/errors/msb3277?vi…

 

Но в официально документации нет информации по развертыванию в Docker (ссылка).

Это точно ошибки. Или предупреждения?

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

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

 

https://docs.microsoft.com/en-us/visualstudio/msbuild/errors/msb3277?vi…

 

Но в официально документации нет информации по развертыванию в Docker (ссылка).

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

Добрый день. Подскажите пожалуйста, возможно ли реализовать бизнес процесс по изменению формата номера телефона? Например если при добавлении нового контакта с такими форматами номеров +380956436023, 0958475432, они за счет бизнес процесса будут меняться на формат 380958934511

Нравится

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

Можно, например через скрипт-таск  и там через регулярные выражения прогонять и менять формат на нужный, можно даже свой элемент для этого сделать, чтобы исключить компиляцию процесса

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

Добрый день!

Возможно ли перехватывать сообщения из телеграмма и отпровлять сообщения в ответ.

Хочу сделать бота для телеграмм через бизнес процесс 

Нравится

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

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



С версии 7.17.1 доступна встроенная возможность добавлять чат Telegram внутри приложения Creatio.

Детальнее можно найти по ссылкам:

https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/na…

 https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/na…

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

Добрый день!

 

Коллеги, возможно ли запретить определенным пользователям удалять значение справочного поля крестиком?

Например в инсталлмент плане есть поле Инвойс. Крестиком в выделенной записи значение этого поля можно удалять. Можно ли метод, который реагирует на нажатие крестика, переопределить? И как метод называется?

 

Спасибо! 

Нравится

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

а права доступа на объект не подойдут?

Dima Avdoshin, пользователь должен иметь возможность создавать объект, видеть значение колонки Инвойс, но не иметь возможности ее менять. Когда делаю через запрет на редакт колонки, то не видят ее содержимое. Хотел добавить свою логику на крестик. 

Сергей Хоменко,

вариант , который у меня сейчас перед глазами



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



RightUtilities.checkCanExecuteOperation мы проверяем, что у текущего пользователя есть доступ на операцию и сохраняем результат в атрибут, ну или наоборот как в моем случае , если он есть  в группе по операциям то не даем редачить.



От результат мы уже управляем логикой доступности, к примеру ты можешь значение атрибута повесить на доступность поля или как я при изменении проверять и отменять изменения



Вместо initModelColumns, можешь вешать другие ивенты, к примеру при выделении записи

Пример

define("qrtqrtTestObj31ff6c52Page", ["RightUtilities"], function(RightUtilities) {
	return {
		entitySchemaName: "qrtTestObj",
		attributes: {
			"Name": {
				//dataValueType: Terrasoft.dataValueType.FLOAT,
				dependencies: [
					{
						columns: ["Name"],
						methodName: "changeName"
					}
				]
			},
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			initModelColumns: function() {
				this.callParent(arguments);
				this._setColumnsDataModelName();
				this._setResourceColumns();
				this.console.log("initModelColumns");
				var self = this;
				RightUtilities.checkCanExecuteOperation({
                    operation: "qrtRulesSalesInInvoice"
                  }, function(result) {
                      self.console.log("RESULT" + result);
                      self.set("qrtSalesRules", result);
                  }, this);
			},
 
			changeName : function name() {
				if(!this.isNewMode()) {
					var isOk = this.get("qrtSalesRules")
					if(isOk) {
						this.showInformationDialog("У вас нет права на редактирование этой колонки")
						//отменяем действие
						this.onDiscardChangesClick();
					}
				}
			}
        },
      dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "Name1cacb119-4c62-4e85-929a-e7a877e24794",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "Name"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "Description5836d8b4-157f-49bf-a943-3e6d3c28cf1e",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "Description"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 1
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Dima Avdoshin,

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

clearSupplyPaymentElementProducts, переопределение которой решает часть задачи без лишних маневров.

Самый простой способ использовать бизнес-правила. БП проверяете со значением булевого атрибута. А атрибуту устанавливаете значение true/false в зависимости от того, входит ли текущий пользователь в коллекцию тех, кому доступ запрещен (коллекцию можно сформировать через справочник, либо в зависимости от группы/роли, либо даже захаркодить(что не рекомендую)). Такое решение будет самым быстрым и легким, на мой взгляд 

Спасибо!

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

Как отследить к примеру , если значение колонки было изменено через к примеру this.set или человек поставил фокус на нее и отредактировал

не могу найти механизма и идей как такое можно отследить нет, по крайней мере адекватных нет

Нравится

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

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

init: function() {
	this.on("change:Account", function(){	//Account поле которое нужно отследить	
			// код отрабатывающий при изменении поля
	}, this);
}

Надеюсь я правильно понял вопрос.

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

Есть ли возможность настройки файлового хранилища Google, по примеру S3?

Нравится

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

Добрый день. 

В базовой версии приложения прямая интеграция к файловому хранилищу Google наподобие интеграции с S3 отсутствует.

Вы всегда можете воспользоваться дополнительными решениями с Marketplace, пример одного из таких по ссылке ниже.



https://marketplace.terrasoft.ru/app/external-file-storage-creatio

Google Cloud Storage это не S3 хранилище в чистом виде

На данный момент в Creatio есть базовая интеграция с любым S3 хранилищем, которое соответствует API Amazon S3.

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

Мне необходимо манипулировать блокированием колонок около 30, но делать кучу бизнес правил или каждому присваивать аттрибут доступности или видимости мне не хочется. могу я сразу получить коллекцию и менять аттрибуты видимости и доступности?

Стандартная настройка прав не подходит для реализации кейса

Нравится

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

Вы можете использовать существующий механизм:

https://academy.terrasoft.ru/docs/node/2846

Вы можете использовать существующий механизм:

https://academy.terrasoft.ru/docs/node/2846

А для видимости придется создавать атрибут, можно один для всех, если условие актуально для них.

Коллекцию колонок можете при этом получить так:

this.entitySchema.columns

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