Вопрос

Получить ID -шку из поля при удалении

Коллеги, добрый день!

Есть ли возможность без когда при удалении записи на детали (до этого самого удаления) как-то прочитать и передать в параметр id одного из поля? Например при удалении контакта с детали контакты контрагента, успеть получить и передать в параметр бп id контрагента?

Если только кодом, то можно визуальный пример как прочитать и передать в параметр бп этот id? (я так понимаю только бп в объекте детали с сигналом до удаления)

 

П.С. Почему нет возможности в стандартном бп при удалении смотреть колонки до удаления. Мне кажется, задача повсеместная.

Нравится

7 комментариев
Лучший ответ

Владимир Соколов,

Мне кажется легче в элемент сигнал удаления встроить переключатель (Deliting <-> Deleted). Прям в настройку элемента. Мб оформить как идею?

Очень повсеместная. Но вместо этого приходится писать код в БП объекта на событие Deleting, получая Id и значения полей, и передавая их уже в нормальный БП

Примерно такой код на удаление адреса в контрагенте, например:

Guid UsrAccount = Entity.GetTypedColumnValue<Guid>("UsrAccountId");

var manager = UserConnection.ProcessSchemaManager;
var processSchema = manager.GetInstanceByName("UsrAccountAddressOnDeleteProcess");

var process = processSchema.CreateProcess(UserConnection);

if (processSchema.Parameters.ExistsByName("UsrAccount ")) {
    process.SetPropertyValue("UsrAccount", UsrAccount );
}
process.Execute(UserConnection);

return true;

Владимир Соколов,

Мне кажется легче в элемент сигнал удаления встроить переключатель (Deliting <-> Deleted). Прям в настройку элемента. Мб оформить как идею?

Варфоломеев Данила пишет:

Возможно, понадобится Deleting... Но тогда логично было бы предположить, что этот процесс должен уметь возвращать False, отменяя удаление.

Но и без него, если система может запомнить Id удаляемой записи, значит, может запомнить и остальные поля? 

Владимир Соколов пишет:
значит, может запомнить и остальные поля? 

С точки зрения работы с базой это было бы нелогичным. Зачем вычитывать все поля, если для удаления достаточно первичного ключа?

Хотя, раз во встроенном БП уже реализовано получение значений до удаления, то и в отдельном БП есть смысл в таком.

Добрый день! Вы можете после стартового сигнала на удаление записи, выполнить чтение данные по id удаленной записи. Примечание: эта возможность доступна, если процесс запускается не в фоне. У команды разработки есть в планах поддержать эту функциональность и для фонового режима выполнения. 

Марина Бельмега,

Спасибо за подсказку про фоновый режим. Без нее ни как не мог настроить БП.

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