Перейти к содержимому
Участник сообщества #29
Участник сообщества #29
5 окт. 2024 г., 11:25(изменён)
Решено
0
0

Проверка изменения значения в новом типе документа

Из чата сообщества

Коллеги, день добрый. Никто не сталкивался с задачей проверки изменения значения в новом типе документа? Мне нужно проверять поле с id и если id меняется запускать системное событие на отправку уведомлений. Через xms форму пытаюсь понять как посмотреть предыдущие значения в BEFORE-SAVE-ACTION, но и TopElem и PS выжают уже измененный id.

Участник сообщества
Участник сообщества5 окт. 2024 г., 12:08(изменён)
Решение

Что-то было такое но там нужно форму в форме параметры пописать http://docs.datex.ru/article.htm?id=5620276905286592715

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:44(изменён)

не совсем понятно зачем и почему нужно менять id, но относительно любого поля обычно делаю так: добавляю еще одно поле, допустим old_id, и при сохранении записываю в него значение текущего поле, ну и при каждом сохранении сравниваю, если изменилось- выполняю нужные действия и сохраняю новое значение.

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:46(изменён)

Типа скрытое поле предлагаете?

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:47(изменён)

а когда это вообще возможно?

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:47(изменён)

Бывают случаи)

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:49(изменён)

ну это типа нарушение целостности системы это же Prmary Key и с ID связаны другие объекты И в моем пониманиии, новый ID = новый объект

но всю ситуацию не знаю так что Ok:)

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:50(изменён)

Нет Райнур id не типа документа а одного из полей в нем

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:51(изменён)

Если в before-save-action, можно открыть тот же док через TopElem.Doc.DocID например, и сравнить его TopElem с новым

Участник сообщества
Участник сообщества5 окт. 2024 г., 11:53(изменён)

ясно ну тогда видимо так - продублируй поле и сравнивай дубль с оригиналом

Участник сообщества
Участник сообщества5 окт. 2024 г., 15:57(изменён)

как вариант - включить версионность для данного типа объектов и проверять значение любого поля удобным Вам способом в прошлой версии ну и чистить их с какой-то периодичностью

Участник сообщества
Участник сообщества6 окт. 2024 г., 10:18(изменён)

Этот вариант подршел) спс

Участник сообщества
Участник сообщества6 окт. 2024 г., 14:05(изменён)

на всякий случай хотел уточнить - верно ли понимаю, что срабатывает он при внесении изменений из админ-интерфейса? из приложений/агентов этот метод проигнорируется?

Участник сообщества
Участник сообщества6 окт. 2024 г., 14:07(изменён)

Проверю скажу

Участник сообщества
Участник сообщества6 окт. 2024 г., 15:58(изменён)

там написано - BEFORE-SAVE-ACTION - т.е. это событие экранной формы - будет вызываться только в клиентском интерфейсе.

Участник сообщества
Участник сообщества6 окт. 2024 г., 16:07(изменён)

Спасибо большое 👍

Участник сообщества
Участник сообщества6 окт. 2024 г., 21:51(изменён)

в xms вроде ещё такой вариант проверки должен сработать: if ( TopElem.view.поле_для_сравнения != TopElem.поле_для_сравнения )

Чтобы ответить, необходимо войти в систему