Версия для печати темы (https://pro1c.org.ua/index.php?s=8e3f814851e30144ff28d0b5927c75b1&showtopic=64986)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Удаление записи регистра сведений

Автор: 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 * ,
Спасибо! Получилось!! rulez.gif

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

Автор: 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) *
ну по логике надо бы как то и Прочитать данные из базы

В данном случае - не надо, по отбору записывается пустой набор, соответственно очищается то, что есть в отборе. Читать надо только для модификации или проверки содержимого

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua