1.
G_101343795907160391674
20.04.21 12:15 Сейчас в теме
Здравствуйте!
Обнаружил следующее не понятное поведение. У каждого элемента справочника есть метод Модифицированность. Если элемент был изменен через интерфейс пользователя - то данный метод вернет ИСТИНА. Если изменяю элемент программно - сначала получаю объект, заметем изменяю несколько реквизитов и записываю - то метод Модифицированность возвращает ЛОЖЬ даже после записи объекта (проверял под отладчиком). Пожалуйста, подскажите почему так происходит?
Начал копать в данном направлении так как обнаружил что в некоторых документах в табличных частях индикаторы-изображения не меняются после записи связанных элементов справочника. В процессе проверки обнаружил вышеописанную ситуацию.
(1) Если я ничего не путаю, при программном изменении данных данное свойство нужно устанавливать вручную, если хотите, чтобы пользователь увидел, что данные были изменены. Что-то типа
Модифицированность = Истина;
UPD.
Если изменяю элемент программно - сначала получаю объект, заметем изменяю несколько реквизитов и записываю - то метод Модифицированность возвращает ЛОЖЬ даже после записи объекта (проверял под отладчиком)
После записи у Вас данные уже изменены и сохранены, естественно, свойство "Модифицированность" вернёт Ложь.
(1) этот метод определяет изменение в текущем объекте (в памяти), а не изменение его в базе данных.
В СП есть такая приписка в Примечании:
Метод не позволяет определить, был ли изменен объект другими пользователями.
Она несколько не однозначная, но даже по ней понятно, что объект в памяти не сравнивается с объектом в БД.
Хотите однозначно определить, изменился ли объект, то сравнивайте ВерсияДанных объекта и ссылки.
Учтите, что если объект изменился вне текущего объекта в памяти, то при попытке сохранить текущий объект будет выброшено исключение о несоответствии версии. Именно по версии данных и определяется платформой изменение вне текущего объекта в памяти.
5.
G_101343795907160391674
20.04.21 14:04 Сейчас в теме
Вообщем я пошел не в ту сторону. Помогло решение из данной темы https://forum.infostart.ru/forum9/topic184454/ Работа метода Модифицированность тут ни при чем, просто после изменения элемента справочника нужно было на клиенте выполнить процедуру ОповеститьОбИзменении(<Ссылка на элемент справочника>)