Общий салют! Как/ или откуда подтягиваются данные в блок mainHeader? Интересует взаимодействие с ФИО контакта (id: MainHeaderSchemaPageHeaderCaptionLabel), которое расположено в шапке на странице любого контакта (здесь это Accom).Изображение удалено.

Нравится

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

Добрый день.

 

Посмотрите в схеме карточки BasePageV2 (пакет NUI) реализацию функции getPageHeaderCaption.

Добрый день.

 

Посмотрите в схеме карточки BasePageV2 (пакет NUI) реализацию функции getPageHeaderCaption.

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

https://community.terrasoft.ua/questions/2-razdela-ot-odnogo-obekta я делал как описано в этом примере

Мне необходимо было добавить раздел активности, но я не понимаю , что я сделал не так , скрипт отработал без ошибок, но когда пытаюсь добавить раздел он не добавляется,хотя в списке есть

вот скрипт 

insert into "SysModule"
("Caption", "SysModuleEntityId", "Image16", "Image20", "FolderModeId", "GlobalSearchAvailable", "HasAnalytics", "HasActions", "HasRecent", "Code", "ModuleHeader", "CardSchemaUId", "SectionModuleSchemaUId", "SectionSchemaUId", "CardModuleUId", "Image32Id", "LogoId")
values
('Activity', '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',
true, true, true, false, 'Activity', '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' )

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

Нравится

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

раздел добавляется,но через одно место

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

раздел добавляется,но через одно место

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

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

При размещении полей GivenName, MiddleName и Surname на замещающей карточке контакта обнаружили, что из Name эти поля неверно парсятся.

Происходит это судя по всему в ContactGmsFieldConverter.

 

Если есть вся "тройка" (Птичкин Максим Петрович) то записывается так:

  • Surname (Фамилия): Петрович
  • GivenName(Имя): Птичкин
  • MiddleName(Отчество): Максим

Если есть только имя и фамилия:

  • Surname (Фамилия): Максим
  • GivenName(Имя): Птичкин

Если есть только фамилия:

  • GivenName(Имя): Птичкин

 

Судя по постам на академии, ошибка актуальна как минимум с 2018 года.

 

Планируется ли исправить ее в ближайших релизах?

Грозит ли чем-то изменение алгоритма ContactGmsFieldConverter?

Нравится

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

А изменение системной настройки ContactFieldConverter не помогает?

Понятно, что это работает корректно с форматом ИОФ, однако в России в основном используется всем привычное ФИО. Как лучше решить данную проблему?

А изменение системной настройки ContactFieldConverter не помогает?

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

Я даже не думал ее искать:(

Помогает, спасибо!

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

Добрый день!

Команда 

Ext.create("Terrasoft.SelectQuery", {rootSchemaName: "Case"});

выдает ошибку:Изображение удалено.С DeleteQuery все нормально.

Я что то не так делаю?

Нравится

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

Добрый день.

Нужно писать так:

var esqContact = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Contact"});

С теорией и примерами можно ознакомиться по ссылке на Академии.

В клиентском модуле MobileDynamicLinkReceiver есть метод:

 

getSelectQuery: function(schemaName, columnName, filterColumn, filterValue) {
		var filter = Ext.create("Terrasoft.QueryCompareFilter", {
			comparisonType: Terrasoft.QueryComparisonType.StartWith,
			leftExpression: Ext.create("Terrasoft.ColumnExpression", {
				columnPath: filterColumn
			}),
			rightExpression: Ext.create("Terrasoft.ParameterExpression", {
				parameter: {
					value: filterValue
				}
			})
		});
		return Ext.create("Terrasoft.SelectQuery", {
			rootSchemaName: schemaName,
			columns: [columnName],
			rowCount: 1,
			filters: filter
		});
	},

Он же как то работает наверно.

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

Добрый день, 

 

Подскажите, есть ли в Creatio контрол для загрузки изображения в колонку типа Image? 

 

Есть реализации, которые позволяют загружать изображение в колонку с типом Image link, когда картинка в итоге загружается в таблицу SysImage, но это решение не подходит. 

Нравится

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

Добрый день, можете более детально описать, что вам необходимо сделать?

У меня есть карточка раздела, в которой пользователю нужно загрузить 3 картинки. Раздел привязан к сущности, у которой есть соответственно 3 колонки с типом Image. Эти изображения потом обрабатываются в событийном процессе сущности и их удобно хранить именно в самой сущности, а не в SysImage. Поэтому хотелось бы узнать существует ли способ загрузить изображение с помощью какого либо клиентского контрола прямо в сущность.

 

 

Рекомендую ознакомиться со статьей https://academy.terrasoft.ua/docs/developer/elements_and_components/bas…. Возможно она вам поможет

Дима Вовченко,

на эта ссылка нет ответа

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

Возникла необходимость редактирования детали "Средства связи" в разделе контакты.  Через мастер деталей это невозможно, т.к деталь неизменяема. Остается вариант с изменением исходного кода. Как можно заместить/редактировать необходимый модуль? В частности необходимо изменить код (или заместить на другой модуль) в модуле ContactCommunicationDetailV2.  

Нравится

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

Доброе утро.

 

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

Реализовать новую деталь можете через мастер, а вносить уже все необходимые в неё изменения в конфигурации.

 Алла Савельева,

Спасибо за ответ! И все таки: каким образом будет грамотнее заменить существующий клиентский модуль  на кастомный? С сохранением ключевых зависимостей, но изменением кода.

Тимур Макаев,

 

Возможны оба варианта: иногда нужно сохранить ключевые зависимости, иногда - нет.

Также возможен вариант, когда лучшим решением будет сделать свою таблицу и на её основании разрабатывать требуемую логику.

А чтобы отобразить уже внесенные данные, их можно перенести в новую таблицу с помощью запросов на уровне базы данных.

Всё зависит от того, насколько сильно будет изменена базовая логика.

Создаем новый модуль, например:

define("UsrBaseCommunicationViewModel", ["ext-base",
	"terrasoft", "UsrBaseCommunicationViewModelResources",
	"BaseCommunicationViewModel",],
	function(Ext, Terrasoft, resources, BaseCommunicationViewModel) {
		Ext.define("Terrasoft.configuration.UsrBaseCommunicationViewModel", {
			extend: "Terrasoft.BaseCommunicationViewModel",
			alternateClassName: "Terrasoft.UsrBaseCommunicationViewModel",
			methodName: function(value) { //метод, который нужно заместить в базовой логике
 
			},
		});
	});

Подключаем этот модуль в базовую деталь (создав замещающую страницу):

define("BaseCommunicationDetail", ["UsrBaseCommunicationViewModel"], function(UsrBaseCommunicationViewModel) {
	return {
		attributes: {
		},
		methods: {
			init: function(callback, scope) {
				this.set("BaseCommunicationViewModelClassName", "Terrasoft.UsrBaseCommunicationViewModel");
				this.callParent(arguments);
			},
		},
		diff: /**SCHEMA_DIFF*/[
		]/**SCHEMA_DIFF*/
	};
});

Естественно делаем все на свой страх и риск.

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

Добрый день! 

Столкнулся с проблемой - на портале у кастомной детали нет кнопки добавления записи. Удалось выяснить что метод "getEditPages" возвращает пустую коллекцию. Метод "getEditPages" связан с entityStructure в ModuleUtils.js. В entityStructure нет нужного объекта. Думаю причина в этом, но не понимаю почему структура объекта не загружается в модуль.

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

Нравится

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

В моем случае проблема решилась следующим образом. Необходимо убедиться что в таблице SysModuleEntityInPortal существуют записи для сущности с привязанной страницей редактирования. И для деталей которые созданы вручную, в случае когда деталь вложена в другую деталь, необходимо с помощью мастера раздела добавить деталь на страницу редактирования портального раздела, сохранить настройки страницы, удалить деталь из страницы. При добавлении детали связь с основной страницей не играет роль, можно указать Id детали = Id основного объекта. В результате этого действия видимо прописываются данные еще в какие то таблицы, в какие разобраться не удалось. 

Надеюсь кому то поможет.

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

Добрый день!

Есть чистая установка Studio 7.17.4.2265

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

В логах:

2021-04-20 18:06:02,170 [116] INFO IIS APPPOOL\174 Build BuildInternalNetStandard - WorkspaceCompiler.Build started at 00:00:04.2261178

2021-04-20 18:06:02,170 [116] INFO IIS APPPOOL\174 Build BuildInternalNetStandard - OldUI = False

2021-04-20 18:06:02,170 [116] INFO IIS APPPOOL\174 Build BuildInternalNetStandard - NetStandardCompatibilityMode = True

2021-04-20 18:06:02,580 [71] INFO IIS APPPOOL\174 Build CaptureOutput - Microsoft (R) Build Engine óÑαß¿¿ 16.7.2+b60ddb6f4 ñ½∩ .NET

2021-04-20 18:06:02,580 [71] INFO IIS APPPOOL\174 Build CaptureOutput - (C) è«α»«αᵿ∩ îá⌐¬α«ß«ΣΓ (Microsoft Corporation). éßÑ »αáóá ºáΘ¿ΘÑ¡δ.

2021-04-20 18:06:05,838 [71] INFO IIS APPPOOL\174 Build CaptureOutput -   Ä»αÑñѽѡ¿Ñ »α«Ñ¬Γ«ó ñ½∩ ó«ßßΓá¡«ó½Ñ¡¿∩...

2021-04-20 18:06:06,068 [71] INFO IIS APPPOOL\174 Build CaptureOutput -   éßÑ »α«Ñ¬Γδ «í¡«ó½Ñ¡δ ñ½∩ ó«ßßΓá¡«ó½Ñ¡¿∩.

2021-04-20 18:06:07,489 [71] INFO IIS APPPOOL\174 Build CaptureOutput - C:\Program Files\dotnet\sdk\3.1.408\Microsoft.Common.CurrentVersion.targets(1177,5): error MSB3644: ¡Ñ ¡á⌐ñÑ¡δ ßß佫τ¡δÑ ßí«α¬¿ ñ½∩ .NETFramework,Version=v4.7.2. ùΓ«íδ πßΓαá¡¿Γ∞ φΓπ »α«í½Ñ¼π, πßΓá¡«ó¿ΓÑ »á¬ÑΓ αáºαáí«Γτ¿¬á (»á¬ÑΓ SDK ¿½¿ »á¬ÑΓ ¡áµÑ½¿óá¡¿∩) ñ½∩ φΓ«⌐ óÑαß¿¿ »½áΓΣ«α¼δ ¿½¿ »ÑαÑ¡áµÑ½∞ΓÑ »α¿½«ªÑ¡¿Ñ. Åá¬ÑΓδ αáºαáí«Γτ¿¬á ñ½∩ »½áΓΣ«α¼δ .NET Framework ¼«ª¡« ߬áτáΓ∞ ¡á ßΓαá¡¿µÑ https://aka.ms/msbuild/developerpacks. [C:\inetpub\wwwroot\DEF174\Terrasoft.WebApp\Terrasoft.Configuration\Terrasoft.Configuration.Dev.csproj]

2021-04-20 18:06:07,506 [71] INFO IIS APPPOOL\174 Build CaptureOutput - ÄΦ¿í¬á ßí«α¬¿.

2021-04-20 18:06:07,506 [71] INFO IIS APPPOOL\174 Build CaptureOutput -     ÅαÑñπ»αѪñÑ¡¿⌐: 0

2021-04-20 18:06:07,506 [71] INFO IIS APPPOOL\174 Build CaptureOutput -     ÄΦ¿í«¬: 1

2021-04-20 18:06:07,506 [71] INFO IIS APPPOOL\174 Build CaptureOutput - Åα«Φ½« óαѼѡ¿ 00:00:04.84

2021-04-20 18:06:07,550 [116] INFO IIS APPPOOL\174 Build BuildInternalNetStandard - WorkspaceCompiler.Build finished at 00:00:09.6052291

2021-04-20 18:06:07,550 [116] INFO IIS APPPOOL\174 Build BuildInternalNetStandard - Время компиляции: 00:00:09.6057857

 

Windows 10 Pro 1909, + SQL2016SP2

.NET Framework 4.8 (528040)

.NET Framework 4.8 Developer Pack

.NET Core 3.1 SDK (v3.1.408)

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

 

Что делать?

Нравится

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

Такое бывает когда Creatio не распознает .net 4.7.2 если стоит 4.8. Удаляйте 4.8 и ставьте 4.7.2

Я же писал выше, что понизить версию нельзя.

Для Windows 10 Pro сборка 1909, штатная версия Framework 4.8 (528040). Переустанавливать винду не получится, ибо корпоративный стандарт.

Добрый день. 

 

Да, в новых сборках Windws предустановлен Framework 4.8. Но, можно дополнительно установить рекомендуемый фреймворк .Net 4.7.2 из документации. Это должно помочь в Вашем случае. Дополнительно, можно по инструкции из документации проверить компоненты Windows. 

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

Есть ли возможность добавления/импорта pdf файла в выбранный объект системы

Нравится

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

Создайте поле с типом Двоичные данные и кладите в него файл.

 

Добрый день! Не могли бы Вы подробнее описать процесс добавления pdf файла в (допустим разделе контакты/ вкладке основная информация). Не очень понимаю как создать поле с типом данных двоичный код. Заранее спасибо за ответ!

Тимур Макаев,

Показать все комментарии
  updateFilters: function (filter) {
 
                    var esq = this.getGridDataESQ();
                    switch(filter) {
                        case "TsOwner":
                            var user = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value;
                           	esq.filters.add("CurrentUser", this.Terrasoft.createColumnFilterWithParameter(
                                this.Terrasoft.ComparisonType.EQUAL, "TsOwner", user)); 
                            break;
                        case "TsOt": 
                            esq.filters.add("NotCurrentUser", this.Terrasoft.createColumnFilterWithParameter(
                                this.Terrasoft.ComparisonType.EQUAL, "TsOwner", user)); 
                            break;   
                    }
                },

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

Нравится

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

Добрый день,

предоставьте, пожалуйста, конфигурацию кнопки в массиве diff.

Mykhailo Storozhuk,

 {

                    "operation": "insert",

                    "name": "SearchQueryButton",

                    "parentName": "ActionButtonsContainer",

                    "propertyName": "items",

                    "values": {

                        "caption": "Все клиенты филиала",

                        "itemType": Terrasoft.ViewItemType.BUTTON,

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

                        "click": {"bindTo": "TsOwnerQueryFilter"},

                        "layout": {

                            "column": 6,

                            "row": 0,

                            // "colSpan": 9,

                            // "rowSpan": 1,

                        },

                    },

                    "index": 2

                },

 

 

  TsOwnerQueryFilter: function () {

                    this.updateFilters("TsOwner");

                },

После того как Вы добавили фильтр нужно получить данные с новым фильтром и перезагрузить страничку реестра через метод this.refreshGridData().

sad

Не помогло. 

Предоставьте код в методе, пожалуйста

Mykhailo Storozhuk, 

initQueryFilters: function (filter) {

                    var esq = this.getGridDataESQ();

                    if (filter == "TsOwner") {

                        var user = '{218A312F-C5FB-4E8F-E053-223E1EAC50CA}'; 

                        esq.filters.add("CurrentUser",

                        this.Terrasoft.createColumnFilterWithParameter(

                            this.Terrasoft.ComparisonType.EQUAL, "TsOwner", user));

                    }

 

                    else if (filter == "TsNotOwner") {

                        var people = '{B1B7A389-130F-6EDB-E040-007F01000437}';

                        esq.filters.add("CurrenNottUser",

                            this.Terrasoft.createColumnFilterWithParameter(

                                this.Terrasoft.ComparisonType.EQUAL, "TsOwner", people));

                    }

                },



 

                updateFilters: function (filter) {

 

                    var esq = this.getGridDataESQ();

                    switch(filter) {

                        case "TsOwner":

                            var user = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value;

                            esq.filters.add("CurrentUser", this.Terrasoft.createColumnFilterWithParameter(

                                this.Terrasoft.ComparisonType.EQUAL, "TsOwner", user)); 

                            break;

                        case "TsNotOwner": 

                            esq.filters.add("NotCurrentUser", this.Terrasoft.createColumnFilterWithParameter(

                                this.Terrasoft.ComparisonType.EQUAL, "TsOwner", user)); 

                            break;   

                    }

 

                    this.reloadGridData();

 

                },

 

 

2 метода, ни один не работает. привязаны к кнопке на странице. 

По логике в разделе должен обновлить и применить фильтр 

Прошу прощения, правильнее будет переопределить метод initQueryFilters и потом вызывать метод reloadGridData. Пример кода:

define("ContactSectionV2", [], function() {

    return {

        entitySchemaName: "Contact",

          attributes: {

            "UsrTest": {

                "dataValueType": Terrasoft.DataValueType.BOOLEAN

         }

        },

        methods: {

            onTestClick: function() {

                this.set("UsrTest", true);

                this.reloadGridData();

            },

              initQueryFilters: function(esq) {

                this.callParent(arguments);

                //номер в пп

                var usrTestFilter = this.get("UsrTest");

                if (usrTestFilter) {

                    esq.filters.add("UsrTestFiltertest", 

                      esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Name", "111"));

                }

            }

        },

        diff: /**SCHEMA_DIFF*/[

            {

                "operation": "insert",

                "parentName": "ActionButtonsContainer",

                "propertyName": "items",

                "name": "MainContactSectionButton",

                "values": {

                    itemType: Terrasoft.ViewItemType.BUTTON,

                    caption: "Button test",

                    click: { bindTo: "onTestClick" },

                    "layout": {

                        "column": 1,

                        "row": 6,

                        "colSpan": 1

                    }

                }

            }

        ]/**SCHEMA_DIFF*/

    };

});

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