Мультивалютное поле

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

Версия 7.7.0.2293

В раздел Документы по аналогии с разделом Счета добавил мультивалютное поле (код страницы в приложении).

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

Подскажите пожалуйста в чем дело?

Нравится

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

Здравствуйте! Сверьте, пожалуйста, код. Затем попробуйте отладить код в консоли и посмотреть на каком моменте происходит свал. Если не получиться решить вопрос, то прикрепите с крин с ошибкой.

Добрый день.
Я думаю что данное поведение наблюдается из-за того что в модуле MultiCurrencyEditUtilities в методе onCurrencyMenuItemClick грубо идет запись в поле Currency, т.е. если если у вас есть префикс Usr и т.п. то оно не сработает. Я сталкивался с данной проблемой и т.к. нужно было добавить мультивалютное поле в пользовательский раздел то помогло замещение данного модуля и переопределение метода следующим образом(лучше было конечно взять префикс с системной настройки, а не грубо забивать):

onCurrencyMenuItemClick: function(menuItem) {
			var currency = this.get("CurrencyRateList").find(menuItem);
			var prefix = "Usr";
			if(this.entitySchemaName.substring(0, prefix.length) == prefix) {
				this.set(prefix + "Currency", currency);
			} else {
				this.set("Currency", currency);
			}
		}

В случае с документами это возможно вам не поможет, но хоть будете знать куда смотреть)

Илья, ошибок не было.

Роман, спасибо навели на решение, добавил виртуальную колонку Currency, когда она изменяется устанавливаю значение в UsrCurrency:

attributes: {
...
    "Currency": {
		"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
		"lookupListConfig": {
			"columns": ["Division"]
		},
		"dependencies": [
			{
				"columns": ["Currency"],
				"methodName": "onVirtualCurrencyChange"
			}
		]
    }
},
methods: {
...
	onVirtualCurrencyChange: function() {
		var currency = this.get("Currency");
		this.set("UsrCurrency", currency);
	}
}

Помогите разобраться. Делал на версии платформы 7.8. Вроде как-то работает, но не то что-то.

1) Название поля получилось не "Сумма, р.", а "500, р." именно цифрами сумма:

2) Как исправить логику пересчета суммы в валюте в сумму в б.в.

Курс валюты пишет хххх EUR = 1 руб, а должно быть наоборот ххх руб. = 1 EUR... как результат и считает в обратную строну - т.е. сумма в б.в. получается меньше чем сумма в валюте (в случае с евро).

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