Справочники. Метод Модифицированность

1. G_101343795907160391674 20.04.21 12:15 Сейчас в теме
Здравствуйте!

Обнаружил следующее не понятное поведение. У каждого элемента справочника есть метод Модифицированность. Если элемент был изменен через интерфейс пользователя - то данный метод вернет ИСТИНА. Если изменяю элемент программно - сначала получаю объект, заметем изменяю несколько реквизитов и записываю - то метод Модифицированность возвращает ЛОЖЬ даже после записи объекта (проверял под отладчиком). Пожалуйста, подскажите почему так происходит?

Начал копать в данном направлении так как обнаружил что в некоторых документах в табличных частях индикаторы-изображения не меняются после записи связанных элементов справочника. В процессе проверки обнаружил вышеописанную ситуацию.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BuryMeInVegas 20.04.21 12:28 Сейчас в теме
(1) Если я ничего не путаю, при программном изменении данных данное свойство нужно устанавливать вручную, если хотите, чтобы пользователь увидел, что данные были изменены. Что-то типа
Модифицированность = Истина;


UPD.
Если изменяю элемент программно - сначала получаю объект, заметем изменяю несколько реквизитов и записываю - то метод Модифицированность возвращает ЛОЖЬ даже после записи объекта (проверял под отладчиком)
После записи у Вас данные уже изменены и сохранены, естественно, свойство "Модифицированность" вернёт Ложь.
G_101343795907160391674; +1 Ответить
3. SlavaKron 20.04.21 12:29 Сейчас в теме
(1)
Модифицированность возвращает ЛОЖЬ даже после записи объекта
Ну так всё правильно, после записи прикладной объект соответствует версии в базе. Проверьте этот метод до записи.
G_101343795907160391674; +1 Ответить
4. spacecraft 20.04.21 13:22 Сейчас в теме
(1) этот метод определяет изменение в текущем объекте (в памяти), а не изменение его в базе данных.
В СП есть такая приписка в Примечании:
Метод не позволяет определить, был ли изменен объект другими пользователями.

Она несколько не однозначная, но даже по ней понятно, что объект в памяти не сравнивается с объектом в БД.
Хотите однозначно определить, изменился ли объект, то сравнивайте ВерсияДанных объекта и ссылки.

Учтите, что если объект изменился вне текущего объекта в памяти, то при попытке сохранить текущий объект будет выброшено исключение о несоответствии версии. Именно по версии данных и определяется платформой изменение вне текущего объекта в памяти.
G_101343795907160391674; +1 Ответить
5. G_101343795907160391674 20.04.21 14:04 Сейчас в теме
Вообщем я пошел не в ту сторону. Помогло решение из данной темы https://forum.infostart.ru/forum9/topic184454/
Работа метода Модифицированность тут ни при чем, просто после изменения элемента справочника нужно было на клиенте выполнить процедуру ОповеститьОбИзменении(<Ссылка на элемент справочника>)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот