Вычисление полей в детали

Здравствуйте!
У меня в документах есть поля суммы и т.п, которые недоступны для редактирования, а вычисляются в детали "Работы" по факту внесения изменений. Реализовал таким образом:

function wnd_WorksDetailTreeAreaOnNotify(ScriptableService, Sender, Message, Data) {
switch (Message) {
case (MSG_OK):
var Dataset = dlData.Dataset; // Dataset для детали
scr_BaseGridArea.wnd_BaseGridAreaOnNotify(ScriptableService, Sender, Message, Data);
RecomputeValue(Dataset); // Вычисление суммы в текущем документе
scr_BaseGridArea.wnd_BaseGridAreaOnNotify(ScriptableService, Sender, Message, Data);
break;
}

Работает, но интересно другое. Если после этого перейти к новой странице документов, все суммы показываются нулевыми, хотя они не изменялись. Чтобы избежать такого эффекта нужно сделать обновление в реестре документов. Не страшно, хотя и нежелательно, так как при обновлении выполняется переход к первой странице, а текущим становится первый документ.

Нравится

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

Владимир, скорее всего Вы неверно задали настройки в датасете. Проверьте.

Что неправильно? Выставлены настройки: колонка Value (таких полей несколько с разными именами), поле с дробным значением, размер 15, точность 2, флажки: поле фильтрации, копирование поля, только для чтения, использовать разделитель тысяч.

Тот факт, что расчет просто заработал не дает основания на то, чтобы все работало, как необходимо.
В Вашем случае отображение измененной записи в реестре происходит после нажатия кнопки ОК.
Вам необходимо пересмотреть реализацию своей функции и изменить событие, после которого запись должна отображатся.

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