Имя: Пароль:
1C
1С v8
Как правильно при пометке на удаление документа удалять записи независимого регистра ?
,
0 Румата
 
14.12.18
09:25
Есть Независимый, Непериодический регистр сведений, который заполняется в документе через табличное поле с типом значения этого же регистра. Одно из измерений регистра - тот самый документ в котором добавляются записи в этот регистр.

Как при пометке на удаление документа удалять все записи из регистра в измерении "Документ" которого находится помечаемый на удаление документ ?
1 Ёпрст
 
14.12.18
09:36
В модуле дока пропиши в предопределенной проце очистку записей регистра
2 catena
 
14.12.18
09:37
(0)Сделай измерение ведущим и "оносамо"
3 RomanYS
 
14.12.18
09:40
(2) при пометке на удаление?
4 Румата
 
14.12.18
09:43
(catena) Сделал, не получилось. При пометке удаления записи не очищаются.
5 Румата
 
14.12.18
09:44
(Ёпрст) А в какой предопределенной процедуре сделать ?
6 Ёпрст
 
14.12.18
09:47
Обработкаудаленияпроведения
7 Ёпрст
 
14.12.18
09:48
Надеюсь, что записи регистра нужны вам только у проведенного документа.
8 Ёпрст
 
14.12.18
09:50
Если нет, то в модуле дока пропиши в проце ПередУдалением
9 catena
 
14.12.18
09:50
(3)Прошу прощения))
10 Румата
 
14.12.18
09:50
(Ёпрст) Спасибо, пошел пробовать !
11 НЕА123
 
14.12.18
09:52
ПриЗаписи()
12 catena
 
14.12.18
09:53
(11)Почему не ПередЗаписью()?
13 НЕА123
 
14.12.18
09:55
(12)
да, да. Вы правы. ПередЗаписью()
14 unregistered
 
14.12.18
10:00
(0) Если необходимо чистить регистр именно при пометке на удаление, то см. (11) - в событии ПриЗаписи объекта.

Если же достаточно того, чтобы записи удалялись при окончательном удалении помеченного на удаление документа, то см. (2) - записи независимых регистров сведений очищаются при окончательном удалении объектов, чьи ссылки являются значением ведущих измерений.

(12) > Почему не ПередЗаписью()?

ИМХО, тут не принципиально. ПередЗаписью и ПриЗаписи объекта происходит в одной транзакции. Разница критична только в том случае, если запись в регистр зависит режима записи и режима проведения. В ПриЗаписи этой информации нет (хотя при желании её можно туда передать через ДополнительныеСвойства объекта, куда запихать нужную информацию в ПередЗаписью).
15 НЕА123
 
14.12.18
10:06
16 Румата
 
14.12.18
10:42
Сделал так :

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если ПометкаУдаления=Истина Тогда
        НаборЗаписей = РегистрыСведений.Монтаж.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Документ.Установить(Ссылка);
        НаборЗаписей.Записать();
    КонецЕсли;
КонецПроцедуры

Вроде работает ...
Закон Брукера: Даже маленькая практика стоит большой теории.