Как добавить поле зависящее от другого поля BPMonline 7.2.0.900

Добрый день!
Нужно создать 2 поля на странице продажи. В первом выбирается тип, во втором выбирается значения соответствующие выбранному типу.
Как это можно осуществить?

Нравится

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

Довольно просто. По аналогии с полями контакт-контрагент:

{
    type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
    name: 'Contact',
    columnPath: 'Contact',
    dataValueType: Terrasoft.DataValueType.LOOKUP,
    visible: true,
    rules: [
        {
	    ruleType: BusinessRuleModule.enums.RuleType.FILTRATION,
	    autocomplete: true,
	    autoClean: false,
	    baseAttributePatch: 'Account',
	    comparisonType: Terrasoft.ComparisonType.EQUAL,
	    type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
	    attribute: 'Account'
	 } ]
 },

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

Попробуйте воспользоваться предоставленной выше рекомендацией . Также советую обратить Ваше внимание на топик Настройка логики полей в BPMonline 7.0.

Акмаль, спасибо за предоставленный совет.

Приятного дня!

я делал по аналогии.
Этот код нужно вставлять в замещающий клиентский модуль же?
Я его вставлял туда, но у меня в результате просто белое окно при патытке редактировать продажу.
Затем я удалил содержимое процедуры и опубликовал еще раз, в замещающем клиентском модуле. Вот что оставил, но при нажатии на изменить продажу все ровно чистый экран:

define('OpportunityPage', ['terrasoft', 'Opportunity', 'OpportunityPageStructure', 'OpportunityPageResources'],
function(Terrasoft, Opportunity, structure, resources) {
    return structure;
}); 

При этом, потом если заходить в замещающий модуль для редактирования кода, всплывает сообщение "Не удалось загрузить Silverlight Plug-In". Он начинает подгружаться, только после перезапуска сайта и выключения/включения плагина.

Акмаль, куда вообще нужно вставлять этот код???

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

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

Спасибо, все работает !!!

Но, у меня тогда еще вопрос:
Почему у меня без копирования всего кода все работало при добавлении детали?

Код в замещающем модуле, куда добавлял деталь:

define('AccountPage', ['terrasoft', 'Account', 'AccountPageStructure', 'AccountPageResources'],
function(Terrasoft, Account, structure, resources) {
        structure.userCode = function() {
            this.schema.rightPanel.push({
                name: 'Product',
                schemaName: 'UsrSupplierProductDetail',
                type: Terrasoft.ViewModelSchemaItem.DETAIL,
                filterPath: 'UsrSupplier',
                filterValuePath: 'Id',
                caption: resources.localizableStrings.SupplierProductDetailCaption,
                visible: true,
                collapsed: true,
                leftWidth: '60%',
                rightWidth: '40%',
                wrapContainerClass: 'control-group-container'
            });
        };
        return structure;
    });

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

Можете немного подробнее разъяснить Ваш вопрос: "Почему у меня без копирования всего кода все работало при добавлении детали?"

Когда я добавлял деталь, я код не копировал из страницы контрагента, и пустого экрана у меня не было (все работало). Когда я начал добавлять поле, я опирался на это и не копировал код из родительского модуля. В результате, у меня получился просто пустая страничка продажи. Вопрос: "Почему у меня без копирования всего кода все работало при добавлении детали?"

Интересно.
А при добавлении поля тоже использовали

rightPanel.push

??

использовал

leftPanel.push

Такое раньше бывало, если полю указать неправильный тип.

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