Здравствуйте!
Я новичек в Creatio, поэтому не ругайте за объяснения.
Как можно обратиться к полям детали из страницы редактирования?
Понимаю что плохо сформулировал вопрос, поэтому прилагаю скрины.
Для раздела есть объект: UsrToursOffer (со своими полями) и у него есть клиентский модуль: UsrTouristOffer1Page.
Для детали есть объект: UsrTours (со своими полями в частности UsrToursDetail).
Через обращение в базу данных, привязываясь к 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,
оучше через запрос в базу данных, так как если брать через песочницу Вы получите только значения которые видит пользователь, а запись нужная может и не показываться если их много в таблице, или вообще пользователь может убрать отображение колонки нужной. Потому тут через запрос в базу данных самый гарантированный способ
Зверев Александр,
Спасибо!
Александр Тыра,
Спасибо!