Небольшая помощь по конфигурации

Есть 2 компанента: чекбокс (UsrIsKeyContact) и поле справочник (UsrLoyality) как сделать так, когда ставится галочка на чекбокс выбиралось одно значение из справочника, а когда снимался чек-бокс ставилось другое значение?
Объясните как нубу.
Как я понял, мне надо создать замещающий модуль для модуля контактов, и там что-то прописать. Но что?

Нравится

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

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

Нужно прописать логику заполнения поля.

Например, добавить в страницу редактирования следующую логику - при изменении поля UsrIsKeyContact устанавливать в поле UsrLoyality нужно значение.

Для этого:
1) Установите зависимость поля UsrLoyality от значения поля UsrIsKeyContact. это делается приблизительно следующим кодом:

attributes: {
	"UsrLoyality": {
		dependencies: [
			{
				columns: ["UsrIsKeyContact"],
				methodName: "setMyValue"
			}
		]
	}
},

2) Реализовать метод setMyValue, который заполнит поле UsrLoyality нужным значением.
Пример кода:

methods: {
	setMyValue: function() {
		var id1 = ""; /*укажите Id значение которое необходимо установить в поле UsrLoyality, если UsrIsKeyContact - true*/
		var id2 = ""; /*укажите Id значение которое необходимо установить в поле UsrLoyality, если UsrIsKeyContact - fasle*/
		var usrIsKeyContact = this.get("UsrIsKeyContact");
		if (usrIsKeyContact) {
			this.set("UsrLoyality", id1);
		}
		else {
			this.set("UsrLoyality", id2);
		}
	}
},

Рекомендация для версии 7.Х, но не для 2.8...

Илья Викторович, исходя из описания Вы используете 7.х.
Решить можно с помощью бизнес-правил - https://academy.terrasoft.ru/documents/technic-sdk/7-9/biznes-pravila-i…

Можете для решения используйте следующий топик - http://www.community.terrasoft.ru/forum/topic/20619 или http://www.community.terrasoft.ru/forum/topic/22255 или http://www.community.terrasoft.ru/forum/topic/13681

Переместите, пожалуйста, тему в корректную ветку:smile:

"Демьяник Алексей" написал:

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

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?

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

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?


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

Вопрос в том, как создать событие. Как подписать чек бокс на событие checkedChange?

См. мой ответ выше - это подписка на изменение колонки UsrIsKeyContact:

attributes: {
        "UsrLoyality": {
                dependencies: [
                        {
                                columns: ["UsrIsKeyContact"],
                                methodName: "setMyValue"
                        }
                ]
        }
},

JS не компилируется - при сохранении проверяется только синтаксис (отступы, пробелы и т.д), но никак не функциональность кода.

"Демьяник Алексей" написал:
JS не компилируется - при сохранении проверяется только синтаксис (отступы, пробелы и т.д), но никак не функциональность кода.

[s]Ага я уже понял. Еще вопрос, куда добавлять код в ContactPageV2 или ContactSectionV2?
Если добавить в страницу, то при открытии контакта - ничего не грузится.
Если добавить в секцию, то при открытии раздела "Контакты" идет бесконечная загрузка...[/s]

Все, сорри. Была ошибка в форматировании, скобка закрвающая фигурная скобка стояла не там где нужно. Все работает. СПАСИБО!

А нет, появилась другая проблема. UsrLoyalty - это поле из справочника.
Что нужно указывать в id1: this.set("UsrLoyality", id1);
пробовал как в шарпах по индексам, пробовал просто по значению, все равно пишет: undefined

Нужно указать Id значения в справочнике. У вас есть доступ к базе данных?

"Демьяник Алексей" написал:

Нужно указать Id значения в справочнике. У вас есть доступ к базе данных?


Насколько я понимаю нет, все через сайт делаю...

Но вот открыл в браузере, мб это оно
для одного значения
#BaseLookupConfigurationSectionDataGridGrid-item-aae7efd5-4ef8-4815-b748-ee353a22e21e
для другого
#BaseLookupConfigurationSectionDataGridGrid-item-faec5bcc-b748-44b7-a402-75d3a24ef045

Уставливал эти айдишки (aae7efd5-4ef8-4815-b748-ee353a22e21e) и все равно Undefined

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

Попробуйте так:

var id1 = {
	value: "aae7efd5-4ef8-4815-b748-ee353a22e21e",
	displayValue: "1"
};
 
var id2 = {
	value: "faec5bcc-b748-44b7-a402-75d3a24ef045",
	displayValue: "2"
};

Где displayValue: это значение из колонки "Название".

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