Вопрос

Заполнение полей в карточке при добавлении из модального окна

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

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

К примеру. Есть карточка Заказа, на которой есть поле Контрагент. И есть справочное поле Договор. Открываем поле Договор. Не находим требуемого договора и жмем Добавить прямо в модальном окне - открывается карточка добавления Договора. Необходимо, чтобы поле Контрагент в добавляемом договоре было заполнено также как и в карточке Заказа

Нравится

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

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

https://community.terrasoft.ru/questions/est-li-manual-po-ispolzovaniu-…

Андрей, удалось вам реализовать ваш кейс?  у нас такая же проблема с передачей идентификатора начального объекта.

Добрый день.

Извиняюсь, что поздно, но лучше поздно чем никогда. Вот пример. Есть карточка обращения и в ней справочное поле Продажа (NrbOpportunity). В продаже есть поле Продукт (NrbProduct), которое должно автоматически заполниться значением из обращения, из которого создаем продажу (поле NrbProductBase в обращении). В карточке обращения (CasePage) достаточно переопределить два метода.

			openLookup: function(config, callback, scope) {
				/// <summary>overridden. Базовый метод, который срабатывает при открытии модального окна справочника.</summary>
				if (config && config.columnName === "NrbOpportunity") {
					config.valuePairs = this.getNrbValuePairs();
				}
				this.callParent(arguments);
			},
 
			getNrbValuePairs: function() {
				/// <summary>Инициализирует значения для карточки продажи при ее добавлении из карточки обращения.</summary>
				var valuePairs = [];
				var product = this.get("NrbProductBase") && this.get("NrbProductBase").value;
				if (product) {
					valuePairs.push(
							{
								name: "NrbProduct",
								value: product
							});
				}
				return valuePairs;
			},

 

Андрей, Спасибище!!!

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