Приветы, в дизайнере страницы добавил "текстовое поле".

Как при выборе из справочника в другой детали (деталь выбор из справочника) значения, чтобы в "текстовое поле" установить значение на основе работы какой-то функции, которая через бд получит значение и запишет в это "текстовое поле"

 

 

Нравится

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

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

Как вариант - использовать бизнес-процесс, который будет читать данные поля детали и записывать его в поле на странице

Больше информации о настройке бизнес-процессов - на Академии: https://academy.terrasoft.ru/documents/technic-bpms/7-11/obzor-funkcionalnosti-biznes-processov-v-bpmonline

Одеяненко Юлия,

 

Спасибо, пока не понимаю как сделать, могли бы вы более конкретно подсказать, заранее спасибо. Как заставить биз процесс читать/слушать изменение в детали-комбобоксе и функцией менять значение в текстовой детали

QArt,

Алгоритм примерно следующий:

- стартовый сигнал - "Получен сигнал от объекта", какой объект - объект детали, событие - добавление записи (пример - http://prntscr.com/iudrkj)

- элемент "Читать данные", читать данные первой записи объекта детали, сортировка по убыванию колонки "Дата создания", значение только той колонки, которая будет транслироваться (пример - http://prntscr.com/iudxeb)

- элемент "Изменить данные" объекта, в котором нужно автоматически заполнять поле, изменить ту запись, на которой находится деталь, изменить значение Вашего кастомного поля параметром процесса, вычитаном в предыдущем элементе (пример - http://prntscr.com/iudwk1).

Тогда, после обновления страницы, поле в карточке заполнится полем из последней добавленной на деталь записи.

Спасибо. Если мне нужно в деталь "текстовое поле" писать расчетное значение, которое должно рассчитываться на событие "изменение значения в детали". Но в расчете Значение = "значение из детали" + в зависимости от типа указанного в сущности "значение из детали" то есть как-то запросом подгребать. И, увы, в бд поле есть у объекта, а в конструкторе в биз процессе поле выбрать нельзя, хотя деталь есть в интерфейсе пользователя, странно все это... 

 

Может попробовать как-то через атрибуты 

"aMetro": {

                        dependencies: [

                            {

                                columns: [ "WorkAddr" ],

                                methodName: "calcMetro"

                            }

                        ]

                    }

в calcMetro через esq получить метро и вписать его в деталь -  "текстовое поле" можно такой пример?

У меня опыта мало в ковырянии динозавра :)

QArt,

Разобрался, узнаю новое и странное. Почти сделал

getFullAddressFromVacancy: function (Id) {

                        var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

                            rootSchemaName: "AccountAddress"

                        });

                        esq.addColumn("Id");

                        esq.addColumn("Address", "Address");

                        esq.addColumn("AccountAddress.SxSubwayStation.Name", "MetroName");

                        esq.addColumn("AccountAddress.City.Name", "CityName");

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

                            this.Terrasoft.ComparisonType.EQUAL,

                            "Id", Id));

                        esq.getEntityCollection(function (response) {

                            if (response.success && response.collection.getCount() == 1) {

                                var entity = response.collection.getByIndex(0);

                                var addr = entity.get("Address");

                                var city = entity.get("CityName");

                                var metro = entity.get("MetroName");

                                var add = '';

                                if (city != undefined && city != 'Москва')

                                  add += city + ', ';

                                if (metro != undefined)

                                  add += metro + ', ';

                                if (addr != undefined)

                                  add += addr;

                                this.log('Add = ' + add);

                                this.set("BpMetroAutoFill", add);

                            }

                        }, this);

                }

В консоли хрома вижу что столбцы, кроме Address пишутся isNotFound. 

Делал согласно https://academy.terrasoft.ru/documents/technic-sdk/7-8/poluchenie-rezul…

EntitySchemaQuery умеет довыгребать AccountAddress.SxSubwayStation.Name в таблице AccountAddress есть столбец SxSubwayStationId

Аналогично с City.

Что не так делаю, подскажите плиз?

Добрый день.

Таблицу AccountAddress вы указываете в rootSchemaName. Тоесть, при добавлении колонки из AccountAddress, не нужно указывать название этой таблицы. Нужно указывать именно поле из этой таблицы, например SxSubwayStation.Name.

Demchenko Olha,

Оля, спасибо, помогло! 

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

Добрый день.

В карточке договора расположено поле "Реквизиты контрагента". При клике на поле появляется список, который отображает значения, которые указаны в определенном поле в платежном реквизите контрагента. Мне нужно отображать значение другого поля, указанного в платежном реквизите. Подскажите, как это сделать? Может кто-то сталкивался и реализовывал подобное.

Нравится

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

Добрый день Елена!!!

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

"Власов Михаил Викторович" написал:

Добрый день Елена!!!

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


Михаил, у меня в платежных реквизитах создано поле "Юр.лицо" (тестовое поле). Мне вот нужно, чтобы при нажатии на "Реквизиты контрагента" в договоре, отображался список именно того, что занесено в данное поле (юр.лицо).

Добрый день.

Вам необходимо изменить значение свойства "Отображаемое значение" на уровне объекта справочника.

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

Добрый день.
Версия 7.9

Кейс был такой: Нужно создать деталь с полем справочник (у меня это "UsrStore") c ссылкой на объект "Остаток продукта".

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

1)

Uncaught iargumentName: ""__proto__: constructor$className: "Terrasoft.exceptions.ArgumentNullOrEmptyException"alternateClassName: "Terrasoft.ArgumentNullOrEmptyException"argumentName: nullconfig: e__proto__: Objectconstructor: function ()__proto__: Objectconstructor: function Object()hasOwnProperty: function hasOwnProperty()isPrototypeOf: function isPrototypeOf()propertyIsEnumerable: function propertyIsEnumerable()toLocaleString: function toLocaleString()toString: function toString()valueOf: function valueOf()__defineGetter__: function __defineGetter__()__defineSetter__: function __defineSetter__()__lookupGetter__: function __lookupGetter__()__lookupSetter__: function __lookupSetter__()get __proto__: function __proto__()set __proto__: function __proto__()configMap: Object__proto__: ObjectinitConfigList: Array(0)length: 0__proto__: Array(0)initConfigMap: Objectmessage: "Несуществующий или пустой аргумент"self: function i()superclass: constructortoString: function ()__proto__: constructor
/core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
title="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
>a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-...">http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-... line: 846
 column: 295
 message: Uncaught Terrasoft.ArgumentNullOrEmptyException: Несуществующий или пустой аргумент
 date: Fri Mar 24 2017 11:05:50 GMT+0200 (Финляндия (зима))
 stack: undefined
writeErrorMessage @ /core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:579

2)

LookupPageViewModelGenerator.js:284 Uncaught i {argumentName: ""}argumentName: ""__proto__: constructor
addColumn @ all-combined.js:846
addColumn @ all-combined.js:939
(anonymous) @ LookupPageViewModelGenerator.js:284
Terrasoft.utils.array.each @ all-combined.js:225
addSelectColumns @ LookupPageViewModelGenerator.js:282
Terrasoft.each.scope @ LookupPageViewModelGenerator.js:273
Terrasoft.utils.array.each @ all-combined.js:225
getSelect @ LookupPageViewModelGenerator.js:271
loadData @ LookupPageViewModelGenerator.js:344
load @ LookupPageViewModelGenerator.js:73
(anonymous) @ /0/configuration/fec43bee7d1bd6fa3769ce764f5b8168ru-RU/LookupPage.js:176
(anonymous) @ /0/configuration/fec43bee7d1bd6fa3769ce764f5b8168ru-RU/LookupPage.js:284
execCb @ require.js:1693
check @ require.js:881
enable @ require.js:1173
init @ require.js:786
(anonymous) @ require.js:1457

3)

/core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
title="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
>a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-...">http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-... line: 846
 column: 295
 message: Uncaught Terrasoft.ArgumentNullOrEmptyException: Несуществующий или пустой аргумент
 date: Fri Mar 24 2017 11:11:48 GMT+0200 (Финляндия (зима))
 stack: undefined
writeErrorMessage @ /core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:579
(anonymous) @ /core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:740
execCb @ require.js:1693
check @ require.js:881
enable @ require.js:1173
init @ require.js:786
(anonymous) @ require.js:1457

4)

/core/04566becfbd71b73c17d3b4e92cd2ba9/Terrasoft/amd/core.js?:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
 file: a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
title="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-combined.js

"
>a href="http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-...">http://176.104.2.162/core/9b78b22f0e6d6388b9ec0f8fae14cb84/combined/all-... line: 846
 column: 295
 message: Uncaught Terrasoft.ArgumentNullOrEmptyException: Несуществующий или пустой аргумент
 date: Fri Mar 24 2017 11:11:48 GMT+0200 (Финляндия (зима))
 stack: undefined

Нравится

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

По ошибкам сложно понять в чем дело, напишите в поддержку, с предоставлением доступа к сайту:
support@terrasoft.ru
Пусть посмотрят и исправят на месте.

Ок. Спасибо.

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

Я бы хотел сделать такую кастомизацию. Мне нужны два параметра, используемые в объектах недвижимости и листингах, по которым происходит подбор заявок. Эти параметры справочные и связаны друг с другом.
По аналогии со справочником Источник лида, в котором 3 поля. Источник, канал и описание. При этом в поле Канал – это значения из справочника Канал.

Хочу сделать справочник Районы с такими полями:
Название поля Описание
Город Это поле ссылается на справочник Город
Район Это поле, которое наполняется значением районов для конкретного города

Второй справочник такой:
Название поля Описание
Район Это поле ссылается на справочник Районы
Массив Это поле, которое наполняется значением массивов (микрорайонами) для
конкретного района
Границы В этом поле хранятся координаты точек (широта, долгота) полигона,
задающего границы массива

Когда я выбираю значение в поле Город при создании объекта – поле Район фильтруется по колонке Город (тот, что указан в поле Город объекта)
Когда я выбираю значения поля Массив – его значения тоже фильтруются по полю Район.

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

Нравится

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

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

Данная задача может быть реализована бизнес-правилами на странице.
Подробнее о бизнес-правилах можно прочитать по ссылке:
https://academy.terrasoft.ru/documents/technic-sdk/7-9/primer-primeneni…

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

Быстрое добавление записи в справочник не работает для некоторых полей страницы. При этом на другой странице это же поле прекрасно работает.

1
2

Нравится

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

Андрей,
Возможность быстрого добавления записи в справочник доступна для тех полей, которые не ссылаются на системный объект. В Вашем примере поле [Группа ответственных] ссылается на системный объект SysAdminUnit, поэтому быстрого добавления нет. Если взять для сравнения поле [Ответственный], оно ссылается на простой объект Contact.

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

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

Нравится

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

Здравствуйте, Александр.

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

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

Как сделать множественный выбор в справочнике ? bpm 7.8

Нравится

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

Здравствуйте,
Поищите в системе упоминания строчки: multiSelect: true
Т.к. открыть справочник с мультивыбором можно передав в конфиг открытия именно это свойство. К примеру:

var config = {
   entitySchemaName: "Product",
   multiSelect: true,
   columns: ["Name", "Price", "Currency"]
};
 
this.openLookup(config, this.addCallBack, this);

А в функции колбека с результатом этого выбора уже что-то делать:

addCallBack: function(args) {
   this.selectedRows = args.selectedRows.getItems();
   this.selectedRows.forEach(function(item) {
      // какие-то действия
   }, this);
}

Больше примеров можете найти в схемах базовых продуктов.

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

Пример можно найти в схеме ActivityParticipantDetailV2.

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

Добрый день,

Хотел бы сделать так, чтобы при создании лида, при выборе контакта в поле "Ответственный" подставлялось соответствующее значение аналогичного поля из выбранного контакта. Пытался сделать это созданием замещающей страницы LeadSection (в ней, я так понимаю, происходит создание лидов) и добавлением туда приблизительно следующего кода:

attributes: {
        'Owner1' : {
                dependencies: [
                {
                        columns: ["Contact"],
                        methodName: "setOwnerToContact"
                }
                ]
        }
},
methods: {
        setOwnerToContact: function () {
                var Contact = this.get('Contact');  
                if (Contact != null) {
                        var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
                                rootSchemaName: "Contact"
                        });
                        var self = this;
                        esq.addColumn("Id");
                        esq.addColumn("Owner");
                        esq.filters.add("Id", Terrasoft.createColumnFilterWithParameter(
                                Terrasoft.ComparisonType.EQUAL, "Id", Contact.value));
                        esq.getEntityCollection(function(result) {
                                if (result.success) {
                                        Terrasoft.each(result.collection.getItems(), function(item) {
                                                self.set("Owner1", item.get("Owner"));
                                        });
                                }
                        });
                }
        }
},

Не сработало. Подскажите пожалуйста, как это было бы правильно сделать?

Нравится

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

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

Не совсем верно. LeadSectionV2 - это страница раздела, а LeadPageV2 - страница редактирования лида. Соответствующую приблизительную:smile: логику Вам необходимо реализовать в LeadPageV2.

Скину несколько полезных ссылок:

"Демьяник Алексей Олегович" написал:LeadSectionV2 - это страница раздела, а LeadPageV2 - страница редактирования лида.

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

"Кулагин Дмитрий Леонидович" написал:
Демьяник Алексей Олегович пишет:

LeadSectionV2 - это страница раздела, а LeadPageV2 - страница редактирования лида.

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

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

Section - это представление раздела, Page - страница редактирования. На странице редактирования Вы создаете как новые записи, так и редактируете существующие.

Данную логику необходимо реализовывать в Page.

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

Например, при выборе города требуется отобразить не только колонку "Название", но и колонку "Страна", а также отсортировать сначала по стране, а потом по названию.
Как правильно это сделать в 7-ке?
Сейчас обычно список содержит одну колонку с первичным полем для отображения.

Нравится

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

Валерий,

Теоретически, можно полностью переопределить LookupPage, чтобы при выборе из объекта городов, в реестре отображались две колонки.
В 7.2 настройка колонок, в карточке выбора из справочника, реализована пользовательски, возможно, есть смысл дождаться релиза новой версии.

Смысл, может, и есть :smile:, но:
- когда планируется релиз новой версии?
- насколько просто будет перенести из 7.1 свои настройки - достаточно ли будет сохранить и загрузить новые и замещенные схемы?

Валерий, обращался к коллегам из департамента разработки. Релиз планируется выпустить в ближайшее время, январь-февраль. И заодно попросил рекомендаций о том, как реализовать карточку выбора из справочника с несколькими колонками и получил ответ, что с текущим ядром (7.1) - никак.

Максим, спасибо!
Подождем... А если "припечет", попробуем заместить LookupPage :smile:

От вывода нескольких колонок пока отказались, а с сортировкой оказалось просто - добавили в заменяющей схеме страницы такой код:

	var City = this.find('City');
	if (City) {
		City.orders = [{
			columnPath: 'Country'
		}, {
			columnPath: 'Name'
		}];
	}
Показать все комментарии

Добрый день.
Подскажите, пожалуйста, возможно ли привязать к полю типа справочник, таблицу "Продукт в продаже"? Сейчас при попытке это сделать выдает ошибку несоответствие типов.

Нравится

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

значит вы в поле, к которому привязываетесь, пытаетесь выставить не то значение - проверьте настройки поля справочника (этого поля - "Продукт в продаже" в вашем датасете) - "Колонка" должна содержать поле с ИД в формате "уникальный идентификатор"

Анастасия, проиллюстрируйте скриншотами свойства добавленного Вами справочного поля в датасете.

"Бондарь Наталия" написал:

Анастасия, проиллюстрируйте скриншотами свойства добавленного Вами справочного поля в датасете.


Прикрепляю скиншоты таблицы, запроса, датасета и ошибки, которая возникает в клиенте при попытке открытия справочника для выбора значения.

Скриншоты так себе, но понятно, что вроде бы все в порядке с привязкой.
А у вас не выскакивает(выскакивало) предупреждение, что в датасете ds_OfferingInOpportunity не определено поле для поиска? Попробуйте зайти в ds_OfferingInOpportunity и поставить полю OfferingName свойство поле для поиска.

Александр, спасибо. В этом и была ошибка, галочку проставила, все заработало. Надо быть внимательнее.

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