Вопрос

Как обтатиться к детали?

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

Я новичек в Creatio, поэтому не ругайте за объяснения.

Как можно обратиться к полям детали из страницы редактирования?

Понимаю что плохо сформулировал вопрос, поэтому прилагаю скрины.

Для раздела есть объект: UsrToursOffer (со своими полями) и у него есть клиентский модуль: UsrTouristOffer1Page. 

Для детали есть объект: UsrTours (со своими полями в частности UsrToursDetail).

 

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

Нравится

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

Через обращение в базу данных, привязываясь к Id страницы на которой находитесь

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "<Название объекта детали>"
});
esq.addColumn("<Название колонки которую хотим получить>");
var esqFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "<Название колонки с Id раздела>", this.get("Id"));
esq.filters.add("esqFilter", esqFilter);
esq.getEntityCollection(function (result) { // Получаем список значений из детали отфильтрованный по указанной записи раздела
	if (result.success) {
		result.collection.each(function(item) { // В цикле получаем значения из детали
			var testvalue = item.get("<Название колонки которую хотим получить>")
		}, this);
	}
}, this);

 

Через обращение в базу данных, привязываясь к Id страницы на которой находитесь

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "<Название объекта детали>"
});
esq.addColumn("<Название колонки которую хотим получить>");
var esqFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "<Название колонки с Id раздела>", this.get("Id"));
esq.filters.add("esqFilter", esqFilter);
esq.getEntityCollection(function (result) { // Получаем список значений из детали отфильтрованный по указанной записи раздела
	if (result.success) {
		result.collection.each(function(item) { // В цикле получаем значения из детали
			var testvalue = item.get("<Название колонки которую хотим получить>")
		}, this);
	}
}, this);

 

Александр Тыра,

Спасибо за ответ! 

Но мне надо немного другое.

Например: в странице редактирования в methods я программирую действие которое будет выполняться при нажатии на кнопку, а именно

this.console.log(this.get("UsrPeriod").displayValue);

(выведи мне в консоль, то что сейчас находится в поле UsrPeriod (Периодичность) (это справочник) )

и выводится значение в консоль из данного справочника (UsrPeriod) которое я выбрал в разделе (скрин 1).

У меня есть объект, который я создал для реализации детали. В детали есть поле UsrToursDetail (это справочник). Если я в этой же странице редактирования пишу схожий код ,

this.console.log(this.get("UsrToursDetail ").displayValue);

то выдает ошибку (скрин 2).

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

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

Деталь — своя страница и обмен с основной, по идее, возможен через «песочницу». Но напрямую из базы проще.

Pavel Litvinovich,

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

Зверев Александр,

Спасибо!

Александр Тыра,

Спасибо!

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