Автор: maxst22 01.03.21, 17:12
Доброго времени суток.
Такая ситуация: есть рег. сведений "Доверенности" с измерением "ДокументРеализации" (ДокументСсылка.РеализацияТоваровУслуг)
При пометке на удаление документа "Реализация" запись из этого регистра удаляется программно. Код вызывается при соотв. подписке на событие у документа
Набор = РегистрыСведений.м_Доверенности.СоздатьНаборЗаписей();
Набор.Отбор.ДокументРеализации.Установить(ДокСсылка);
Набор.Записать();
Но затем при попытке удалить документ, система цепляется к этому регистру. Если в обработке удаления попытаться открыть ссылку на запись регистра, то ОШИБКА.
Если удалять "монопольно", то все ОК.
Автор: logist 01.03.21, 17:54
Дайте картинку свойств регистра измерения ДокументРеализации
Автор: maxst22 01.03.21, 18:53
logist @ Сегодня, 18:54
,
Автор: logist 02.03.21, 0:47
maxst22, поставьте флаг "Ведущее" и уберите код который делает удаление записи, в таком случае запись будет сама удаляться при удалении документа.
Автор: maxst22 02.03.21, 16:03
logist @ Сегодня, 1:47
,
Спасибо! Получилось!!
А почему тогда в моем варианте так получалось? Ссылки на запись нет, а обработка к ней цепляется... и при попытке открыть выдает ошибку.
Глюк платформы или глюк обработки?
Автор: fly 02.03.21, 17:32
Цитата(maxst22 @ 02.03.21, 16:03)
Глюк платформы или глюк обработки?
ну по логике надо бы как то и Прочитать данные из базы, после модифицировать, и после эти данные записать.
там есть методы
Выбран()
Прочитать()
только там аккуратнее с Регистром сведений, очень уж легко остаться без записей.
Автор: logist 02.03.21, 18:50
Цитата(maxst22 @ 02.03.21, 16:03)
А почему тогда в моем варианте так получалось?
Потому что:
Цитата(maxst22 @ 01.03.21, 17:12)
Код вызывается при соотв. подписке на событие у документа
У документа нет подписки ПометкаУдаления, соответственно вы запихнули этот код в передзаписью или призаписи, или в ПередУдалением, хз, это известно только вам, и что там происходит после этого кода, вполне вероятно запись в этот же регистр...
Цитата(fly @ 02.03.21, 17:32)
ну по логике надо бы как то и Прочитать данные из базы
В данном случае - не надо, по отбору записывается пустой набор, соответственно очищается то, что есть в отборе. Читать надо только для модификации или проверки содержимого