Всех приветствую!

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



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

Страница унаследована от BaseModulePageV2, версия 7.17.2

 

getHeader: function() {
            	return this.get("Resources.Strings.PageSettingsCaption");
            },
 
            initHeaderCaption: Ext.emptyFn,
 
			init: function() {
				this.getHeader();
				this.callParent(arguments);
			},

 

Нравится

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

Здравствуйте Владислав,

 

Если необходимо изменить значение "Новая запись" на какое-либо другое, то необходимо изменить значение локал.строке "DefaultPageHeaderCaption". Само проставление значения происходит в subscribeSandboxEvents методе MainHeaderSchema здесь:

this.sandbox.subscribe("UpdatePageHeaderCaption", function(args) {
					if (args.hasOwnProperty("pageHeaderCaption")) {
						this.set("PageHeaderCaption", args.pageHeaderCaption ||
							this.get("Resources.Strings.DefaultPageHeaderCaption"));
					}
				}, this);

Это подписка на сообщение, которое отправляется из метода updatePageHeaderCaption модуля BasePageV2:

updatePageHeaderCaption: function(changedColumnName) {
				if (this.getIsFeatureDisabled("OldUI")) {
					if (!changedColumnName || this.get("PageHeaderColumnNames").indexOf(changedColumnName) > -1) {
						if (this.get("IsEntityInitialized")) {
							var caption = this.getPageHeaderCaption();
							this.sandbox.publish("UpdatePageHeaderCaption", {
								pageHeaderCaption: caption
							});
						}
					}
				}
			},

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

updatePageHeaderCaption: function() {
        this.callParent(arguments);
        this.sandbox.publish("UpdatePageHeaderCaption", {
								pageHeaderCaption: "For contacts"
							});
      }
 

В результате, при создании новой записи, получаем:

И последнее: как правило в заголовке отображается значение в колонке, которая выбрана как Displayed value в настройках объекта, которую страница отображает:

Можете еще, если это вариант, поменять колонку в этом аттрибуте на другую.

 

С уважением,

Олег

Здравствуйте Владислав,

 

Если необходимо изменить значение "Новая запись" на какое-либо другое, то необходимо изменить значение локал.строке "DefaultPageHeaderCaption". Само проставление значения происходит в subscribeSandboxEvents методе MainHeaderSchema здесь:

this.sandbox.subscribe("UpdatePageHeaderCaption", function(args) {
					if (args.hasOwnProperty("pageHeaderCaption")) {
						this.set("PageHeaderCaption", args.pageHeaderCaption ||
							this.get("Resources.Strings.DefaultPageHeaderCaption"));
					}
				}, this);

Это подписка на сообщение, которое отправляется из метода updatePageHeaderCaption модуля BasePageV2:

updatePageHeaderCaption: function(changedColumnName) {
				if (this.getIsFeatureDisabled("OldUI")) {
					if (!changedColumnName || this.get("PageHeaderColumnNames").indexOf(changedColumnName) > -1) {
						if (this.get("IsEntityInitialized")) {
							var caption = this.getPageHeaderCaption();
							this.sandbox.publish("UpdatePageHeaderCaption", {
								pageHeaderCaption: caption
							});
						}
					}
				}
			},

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

updatePageHeaderCaption: function() {
        this.callParent(arguments);
        this.sandbox.publish("UpdatePageHeaderCaption", {
								pageHeaderCaption: "For contacts"
							});
      }
 

В результате, при создании новой записи, получаем:

И последнее: как правило в заголовке отображается значение в колонке, которая выбрана как Displayed value в настройках объекта, которую страница отображает:

Можете еще, если это вариант, поменять колонку в этом аттрибуте на другую.

 

С уважением,

Олег

Oleg Drobina,

Спасибо большое за помощь! 

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

Приветствую, коллеги!

В процессе выполнения одного кейса столкулся с непониманием как это реализовать.

Кейс таков: 

Необходимо создать форму такого вида:



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



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

Создал объект , который наследует BaseEntity, добавил необходимые поля со скрина, но с реализацией пейджи как поступить не знаю.

Подскажите в каком направлении двигаться.





 

Нравится

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

Владислав, добрый день!

Пример подобной страницы. В разделе Документы добавлена кнопка открытия страницы:

define("DocumentSectionV2", [], function() {
	return {
		entitySchemaName: "Document",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
					"operation": "insert",
					"name": "OpenCustomPageButton",
					"values": {
						"style": "red",
						"itemType": 5,
						"caption": {
							"bindTo": "Resources.Strings.OpenCustomPageButtonCaption"
						},
						"click": {
							"bindTo": "onOpenCustomPageButtonClick"
						}
					},
				"parentName": "CombinedModeActionButtonsCardLeftContainer",
				"propertyName": "items",
				"index": 9
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			onOpenCustomPageButtonClick: function() {
				var config = {
					moduleId: "SectionModuleV2_DocumentSectionV2_CardModuleV2_chain",
					moduleName: "CardModuleV2",
					operation: "add",
					schemaName: "UsrObjectWithoutSectionPage"
				};
				this.openCardInChain(config);
			},
		}
	};
});

Сама страница объекта без раздела:

define("UsrObjectWithoutSectionPage", [], function() {
  return {
    entitySchemaName: "UsrObjectWithoutSection",
    details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
    diff: /**SCHEMA_DIFF*/[
		{
				"operation": "insert",
				"name": "Namec84346b3-955b-4b9e-b061-af463ee8d8da",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "UsrName"
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 0
			}
	]/**SCHEMA_DIFF*/,
    methods: {}
    };
});

 

Владислав, добрый день!

Пример подобной страницы. В разделе Документы добавлена кнопка открытия страницы:

define("DocumentSectionV2", [], function() {
	return {
		entitySchemaName: "Document",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
					"operation": "insert",
					"name": "OpenCustomPageButton",
					"values": {
						"style": "red",
						"itemType": 5,
						"caption": {
							"bindTo": "Resources.Strings.OpenCustomPageButtonCaption"
						},
						"click": {
							"bindTo": "onOpenCustomPageButtonClick"
						}
					},
				"parentName": "CombinedModeActionButtonsCardLeftContainer",
				"propertyName": "items",
				"index": 9
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			onOpenCustomPageButtonClick: function() {
				var config = {
					moduleId: "SectionModuleV2_DocumentSectionV2_CardModuleV2_chain",
					moduleName: "CardModuleV2",
					operation: "add",
					schemaName: "UsrObjectWithoutSectionPage"
				};
				this.openCardInChain(config);
			},
		}
	};
});

Сама страница объекта без раздела:

define("UsrObjectWithoutSectionPage", [], function() {
  return {
    entitySchemaName: "UsrObjectWithoutSection",
    details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
    diff: /**SCHEMA_DIFF*/[
		{
				"operation": "insert",
				"name": "Namec84346b3-955b-4b9e-b061-af463ee8d8da",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "UsrName"
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 0
			}
	]/**SCHEMA_DIFF*/,
    methods: {}
    };
});

 

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

Благодарю Вас за ответ, Дмитрий!

 

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

Добрый день. Мне необходимо при нажатии кнопки сохранять данные в формате excel и скачивать этот файл. Данные получаю из веб сервиса в формате JSON.

Есть ли такая возможность?

Нравится

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

Добрый день!



Есть схема Estimation

с колонками ImplantationCaseId

И вторая схема VwCase2Case

с колонками Case1Id



При составлении фильтра выдает ошибку 'ItemNotFoundException', message: 'Элемент коллекции с именем [VwCase2Case:Case1:ImplantationCase].Case1Id не найден



Построили следующий фильтр :

 

// [Имя_присоединяемой_схемы:Имя_колонки_для_связи_присоединяемой_схемы:Имя_колонки_для_связи_текущей_схемы]
 var esqEstimationFilter = esqEstimation.createColumnFilterWithParameter(
    Terrasoft.ComparisonType.EQUAL, 
    "[VwCase2Case:Case1:ImplantationCase].Case1Id", "ImplantationCase" );
esqEstimation.filters.add(esqEstimationFilter);

 

Нравится

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

Сергей, уточните как связан Estimation с VwCase2Case.

Правильно ли я понимаю взаимосвязь следующая Estimation.ImplantationCaseId= VwCase2Case.Case1Id?

Алёна Доля,

Да, все верно сам sql выглядит следующим образом :

Select c.Case2Id From Estimation e

left join [VwCase2Case] c ON c.Case1id = e.ImplantationCaseId

where e.Id= 'c47561a2-53c9-457f-aad9-25ca1cd9b3c7'

 

Мы хотим чтобы фильтр возвращал коллекцию Case2id по условию текущего Estimation.Id (where e.Id= 'current')

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

Добрый день.

В карточке обращения есть поля группа объекта и филиал и контрагент (объект)

В разделе контрагенты (объект) так же выведены эти поля.

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

Дополнительно я создал логическое поле в карточке обращения.

Посмотрел ролик академии по работе с большим кол-вом записей.

Tech Hour: Как обрабатывать множество записей в Creatio. Все способы - YouTube

Решил попробовать сделать по самому первому кейсу.

Мой процесс выглядит так :

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

По шагам:

читаем кол-во  записей, фильтрую их там где поле филиал, группа объектов = пусто, контрагент = заполнен. Логическое поле с значением = нет.

Далее идет условный поток, кол-во записей не равно 0.

Читаем первую запись из нашего кол-ва записей, фильтра аналогичен как  и  в первом шаге.

Читать данные контрагента(объекта)

Тут фильтр id = объекту в шаге читать первую запись из обращения.

Изменить данные

Тут id  обращения = читать первую запись из обращения.Первый элемент результирующей коллекции.Id

Поле объект = читать данные объекта.Первый элемент результирующей коллекции.Id

Поле филиал  и группа объектов пусто . Логическое поле = нет.

Какие поля изменить 

Филиал = #читать данные объекта.Первый элемент результирующей коллекции.Филиал#]

#читать данные объекта.Первый элемент результирующей коллекции.Группа#]

Логическое поле = #Логическое значение.Да#]

Далее идем в первый шаг  и из него если  равно 0 то на выход.

Процесс запускаю , все работает , но стоит обработать только 100 записей, как больше они  не обрабатываются. Но процесс выполняется.

В чем может быть дело?

Может есть альтернатива как выполнить  задачи в БП ? без программирования?

 

Нравится

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

попробуйте увеличить "максимальное число повторений" https://academy.terrasoft.ru/docs/user/biznes_processy/nastrojka_proces…

попробуйте увеличить "максимальное число повторений" https://academy.terrasoft.ru/docs/user/biznes_processy/nastrojka_proces…

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

 

Добрый день.

Действительно, поменял лимит на 250 и процесс обработал 250. Спасибо за совет, я и забыл что есть ограничение)

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

Добрый вечер ! Как настроить бизнес правила для группы полей которые находятся во вкладке.

Пример

На странице раздела есть вкладка под названием "Карточка" Code (ProjectMap)

в "Карточка" есть 5 групп полей .

Нужно чтобы  (Если)

поле "Название проекта" (Поле не находится в той же вкладке) НЕ Заполнено 

ТО

Делать поле редактируемым 

и тут уже не поле, а группы полей которые находятся во вкладке "Карточка"

Пробывал следующим образом : Тип "Поле" заменяю на "Атрибут" тут пишу Code(ProjectMap) (Система определяет его ) после сохраняю обнавляю, но б.правило не отрабатывает . 

Для теста попробывал сделать редактируемым какое-то НЕ Атрибут а обычное Поле - всё ок , всё робит .

 

Нравится

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

Добрый день!

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

Как вариант можно настроить несколько бизнес-правил редактирования на все поля из группы.

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

Yanina Ryssjanova,

 

Добрый день. Полей много - всего  45  ))) 

Просто скрывать для этой задачи к сожалению не получится ) Информация должна быть видимым (( ,спасибо за отклик! 

Tigran Gevorgyan пишет:

Yanina Ryssjanova,

Добрый день. Полей много - всего  45  ))) 

Просто скрывать для этой задачи к сожалению не получится ) Информация должна быть видимым (( ,спасибо за отклик! 

Сделайте 2 вкладки. На одной одно состояние (редактируемое), на другое - другое. Прячьте ненужную вкладку с помощью правил

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

 

Да, как вариант подойдёт , но в этом случае тоже потребуется для отображении значений полей в 2 вкладках 45 правил . Решил созданием 45 правил , пока не решут вопрос с разрабом. Всем спасибо .

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

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

Нравится

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

Это решается не привязкой данных, а SQL-скриптом.



Посмотрите, какие Id и SysSchemaId у вас на среде разработки и их вставьте в подобный запрос. А перед эти проверьте, нет ли у вас уже property 'Enabled' для данного процесса (схемы) на среде, куда будете переносить



INSERT INTO "SysSchemaUserProperty"

("Id","Name","Value","SysSchemaId")

VALUES 

('0a16d853-9e01-4544-8a6f-3ebde5d3bbed','Enabled',false,'4944ebb5-1881-46a9-85df-b93d092424ad')

ON CONFLICT DO NOTHING

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

Создан шаблон. В нем есть макрос Status# - "Статус обращения" при рассылке направляется получателю на английском языке - EN.

В шаблон был добавлен язык RU - но статус по прежнему направляется на языке EN. Выбрать RU по умолчанию нет возможности, возможности удалить EN и оставить RU также нет.

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

Прикрепленные файлы

Нравится

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

Евгения, здравствуйте.



Насколько мне известно, [#Status#] берёт локализованное значение из справочника стадий, опираясь на язык общения контакта, потому не играет роли сам язык шаблона.



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

 

Дополнительно на команде разработки есть задача на доработку этого функционала.

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

Подскажите, пожалуйста, в чём может быть проблема (:



Создал доп.соглашение к договору. При добавлении файла в доп.соглашение путём перетаскивания на деталь "файлы и примечания" - добавляемый файл не сохраняется. 

 

Нравится

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

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

Добрый день!



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

Также, возможно, Вы пытаетесь загрузить файл, размер которого превышает 10 Мб(по умолчанию), тогда вам необходимо проверить системную настройку "MaxFileSize". Возможно Вы пытаетесь загрузить файл, расширение которого запрещено в системе. Запрещенные файлы для загрузки в систему можно посмотреть в системной настройке "FileExtensionsDenyList"

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

Доброго дня!

Возникла следующая ситуация...

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

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

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

Ниже привожу фрагмент кода для наглядности

Ext.define("Terrasoft.ActionContactNote", {
	extend: "Terrasoft.ActionBase",
	config: {
		useMask: false,
		title: "MobileActionContactNoteTitle",
		iconCls: "atc-action-contact-note"
	},
	execute: function(record, config) {
        this.callParent(arguments);
 
		var serviceName = "AtcPrintablesAttachmentService";
		var	methodName = "Attach";
 
		Terrasoft.ServiceHelper.issueRequest({
			serviceName: serviceName,
			methodName: methodName,
			success: function(response) {
				// Здесь необходимо обновить деталь "Файлы и ссылки"
			},
			failure: function(response) {
				Terrasoft.MessageBox.showMessage("Error in webservice");
			},
			scope: this
		});
 
        this.executionEnd(true);
	}
});

 

Нравится

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

Есть похожее дополнение для бизнес-процессов

https://marketplace.creatio.com/template/refresh-active-page-process-el…

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



Можно попробовать добавить следующий код в тело экшена:

var embeddedDetailId = Terrasoft.util.getColumnSetId(record.modelName, "detailName", pageConfig.viewMode);

var embeddedDetail = Ext.getCmp(embeddedDetailId);

embeddedDetail.setIsCollapsed(false);

var f = CaseFile.create({

    Case: record,

    Name: "xxx"

});

f.phantom = false;

embeddedDetail.addRecord(f);

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