Запоздалая обработка события изменения значения поля

Здравствуйте, господа. Заимел проблему.
Задача: в карточке договора при изменении значения состояния (в комбобоксе) надо подставить в качестве даты завершения текущую дату. То есть выбираем в комбобоксе "Завершён" - дата меняется.
Проблема: скрипт работает, но не совсем корректно. Дата меняется не тогда, когда мы меняем какое-то состояние на состояние "Завершён", а уже тогда, когда мы пытаемся менять состояние "Завершён" на какое-то другое.

В function DataChange(DataField) добавил такой кусок кода:

case ('ContractStatusID'):
                        ContractScript.DisableDataChange = true;
                        try {
                                var StatusName = DataFields.ItemsByName('ContractStatusName').Value;
                                var Today = GetLocalDate();
                                var sEnd = 'Завершён';
                                if(StatusName == sEnd)
                                {
                                        DataFields.ItemsByName('DueDate').Value = Today;
                                        MessageBox('В качестве даты закрытия контракта установлена сегодняшняя дата!');
                                }
                        }                      
                        finally{
                                ContractScript.DisableDataChange = false;
                        }
                        break;

Видимо, получается, что я обращаюсь к старому экземпляру поля ContractStatusName. А надо к только что установленному.
Помогите, пожалуйста.

Нравится

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

Сергей, не пробовали сравнивать if(StatusName == sEnd) не по названию состояния, а по его ID? Возможно, поскольку обработка происходит в момент изменения StatusID, а не StatusName, последнее поле содержит старое значение.

Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.

Олег,
пробовал, но только сейчас сообразил что ID для сравнения подставлял при этом без фигурных скобок.
Разобрался, спасибо;)

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