Тема: Is modified?
Показать сообщение отдельно
Старый 16.12.2010, 23:23   #11  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от AlexB Посмотреть сообщение
1. Косяк в коде один есть:
надо писать не

xFldRef := xRecRef.FIELDINDEX(65); //65 - Index vom Feld "Resposibility Center"

а

xFldRef := xRecRef.FIELD(65); //65 - Index vom Feld "Resposibility Center"
У меня с FieldIndex(65) работает. 65 - это действительно индекс поля в таблице, а не номер его.

Цитата:
2. Я на вскидку вставил в моей БД в CU 423 ваш код (с корректировкой в П 1.):
После подтверждения ошибки система возвращает в поле прежнее значение (до изменения), как и должно быть после ERROR, всё работает.
Ошибка вылетает после изменения в поле при попытке перейти к другому customer или закрыть карточку.
Я выясниснила почему у меня не работает...точнее работает не для всех полей.
Собака порылась в коде триггера OnModify() таблицы 18:
На домашнем компе Навижн нет, потому по памяти напишу что там примерно было:
OnModify()
IF Name <> xRec.Name OR
Address <> xRec.Address OR
Contakt <> xRec.Contakt
и т.д. ...перечислины куча полей с контактными данными клиента
THEN BEGIN
MODIFY;
вызывается процедура, которая записывает контактные данные в какую-то доп.таблицу


Вот это самое MODIFY и портит всю малину. Если меняется какое-то поле из приведенного выше IF'а, тогда сообщение об ошибке появляется, но новое значение тем не менее сохраняется. Если меняю любое другое поле (кроме Information или Note), тогда появляется сообщение об ошибке и введенное новое значение сбрасывается (т.е. работает так, как Вы и описывали)

Цитата:
Важное примечание: после любых изменений в коде (т. е. в программном коде, имеющем отношение к CU 423):
---- в открывайте навижен сновa, чтобы CU 423 заметил эти изменения: CU423 это SingleInstanece-Codeunit.
Спасибо за подсказку. Я это "правило" уже эмпирическим путем выяснила, когда сегодня с дебагером отлаживала и не могла понять, почему CU сохраняю, а ошибка старая лезет и дебагер старый текст показывает
Теперь буду знать, что это не мое предположение, а действительно так и есть