В регистре сведений отловить событие при удалении записи

1. user1916391 10.02.25 17:00 Сейчас в теме
Как в регистре сведений (независимый, непериодический) отловить событие при удалении записи?
По теме из базы знаний
Найденные решения
4. spacecraft 10.02.25 19:46 Сейчас в теме
(1) обработчик ПередЗаписью регистра сведений

Процедура ПередЗаписью(Отказ, Замещение)
	
	Если Замещение И Выгрузить().Количество() = 0 Тогда
		//Это удаление записей
	КонецЕсли;
	
КонецПроцедуры

Только нужно учитывать, что МенеджерЗаписи при перезаписи всегда делает 2 записи. Сначала запись пустого набора (как раз попадает в условие удаление записи), затем записывает уже с данными.
erazh; VyacheslavShilov; +2 Ответить
2. SlavaKron 10.02.25 17:05 Сейчас в теме
(1) ПередЗаписью пустого набора в модуле набора.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 10.02.25 17:05 Сейчас в теме
(1) ПередЗаписью пустого набора в модуле набора.
3. Denis_CFO 49 10.02.25 17:06 Сейчас в теме
(1)
событие при удалении записи

Любое изменение регистра (и не только) нужно зафиксировать.
Фиксация события происходит записью изменений таблицы.

Смотрите в сторону ПриЗаписи или ПередЗаписью.
4. spacecraft 10.02.25 19:46 Сейчас в теме
(1) обработчик ПередЗаписью регистра сведений

Процедура ПередЗаписью(Отказ, Замещение)
	
	Если Замещение И Выгрузить().Количество() = 0 Тогда
		//Это удаление записей
	КонецЕсли;
	
КонецПроцедуры

Только нужно учитывать, что МенеджерЗаписи при перезаписи всегда делает 2 записи. Сначала запись пустого набора (как раз попадает в условие удаление записи), затем записывает уже с данными.
erazh; VyacheslavShilov; +2 Ответить
5. R_o_n_n_y 70 18.11.25 13:21 Сейчас в теме
Была задача: в качестве ресурса в регистре есть ссылка на Прикрепленный файл, необходимо при очистке регистра их удалять тоже.
Использовал альтернативный метод (если есть форма списка регистра). Использовал событие Списка "СписокПередУдалением" для формирования массива файлов к удалению и событие списка "СписокПослеУдаления" для удаления:

&НаКлиенте
Перем МассивФайловКУдалению;

&НаСервере
Процедура СписокПослеУдаленияНаСервере(МассивФайловКУдалению)
	
	Если МассивФайловКУдалению.Количество() > 0 Тогда
		Для А = 0 По МассивФайловКУдалению.Количество() - 1 Цикл
			СпрО = МассивФайловКУдалению[А].ПолучитьОбъект();
			СпрО.Удалить();
		КонецЦикла;		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура СписокПослеУдаления(Элемент)
	
	СписокПослеУдаленияНаСервере(МассивФайловКУдалению);
	
КонецПроцедуры

&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
	
	МассивСтр = Элемент.ВыделенныеСтроки;
	МассивФайловКУдалению = СписокПередУдалениемНаСервере(МассивСтр);
	
КонецПроцедуры

&НаСервере
Функция СписокПередУдалениемНаСервере(МассивСтр)
	
	МассивФайлов = Новый Массив;
	Для Каждого ЭлМассива из МассивСтр Цикл
				
		Запись = РегистрыСведений.Сообщения.СоздатьМенеджерЗаписи();
		ЗаполнитьЗначенияСвойств(Запись, ЭлМассива);
		Запись.Прочитать();
		Если ЗначениеЗаполнено(Запись.ПрикрепленныйФайл) Тогда
			МассивФайлов.Добавить(Запись.ПрикрепленныйФайл);
		КонецЕсли;
	КонецЦикла;
	Возврат МассивФайлов;
	
КонецФункции
Показать
6. westline3 11.01.26 17:38 Сейчас в теме
(5) был близок к этому варианту в итоге применил ваш код с минимальными изменениями.
Для отправки сообщения требуется регистрация/авторизация

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