Никак не пойму в чем загвоздка.
Есть регистр сведений. Непериодический, Режим записи: независимый, т.е. без регистратора.
Данные выглядят так:
Измерения:
 - Объект (тип: ДокументСсылка)
Ресурсы:
 - Утвержден (Тип: булево)
 - ОсобоеВнимание (тип: булево)
Реквизиты:
 - Ответственный (СправочникСсылка)
 - ДатаИзменения (ДатаВремя)
Движения в регистр пишутся по нажатию некоторой галочки на форме документа.

```1c
    Процедура ЗаписатьСостояниеФлага(ЗначениеФлага) Экспорт

    НаборЗаписей = РегистрыСведений.икЗаказНаПроизводствоУтвержден.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(Ссылка);
    НаборЗаписей.Записать();

    Если ЗначениеФлага Тогда

    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Объект = Ссылка;
    НоваяЗапись.Утвержден = ЗначениеФлага;
    НоваяЗапись.Ответственный = Пользователи.ТекущийПользователь();
    НоваяЗапись.ДатаИзменения = ТекущаяДата();
    НаборЗаписей.Записать(Истина);

    КонецЕсли;

    КонецПроцедуры
```

Так вот... Суть вопроса в следующем - почему не удаляются записи регистра первыми тремя строками этой процедуры?
Точнее не так. Если отладчиком пройтись по строкам, то после выполнения третьей строки "НаборЗаписей.Записать();" НаборЗаписей.Количество() возвращает 0. Но вот сама запись в регистре продолжает свое существование.
И самая неприятная ситуация возникает, когда документ, который является объектом для записи регистра помечается на удаление, а удалиться не может. Потому как эта самая запись в регистре содержит ссылку на него.
Что не так с регистром?
---
Что бы регистр очищался при удалении измерения, у измерения должен стоять признак, что оно ведущее.
---
"Ссылка" точно является ссылкой на документ? Если да, то попробуйте после установки отбора "Прочитать" и "Очистить" НаборЗаписей, а далее уже записать. А то что не удаляется документ, который участвует в этом регистре,...так это нормальное поведение.
---
Ссылка точно является ссылкой на документ. Иначе бы не было проблем с удалением документа.
---
Что бы регистр очищался при удалении измерения, у измерения должен стоять признак, что оно ведущее.
---
Установил признак измерения "Ведущее" у Объекта - ничего не изменилось. Я и раньше пробовал менять этот признак - не помогало.
---
Это при удалении документа должно помочь. Я правильно понял, что код нужен, что бы при удалении документа этот регистр не мешал.
---
Нужно, чтобы при удалении документа запись регистра тоже удалялась.
Удалять документ при установленной галочке и записи регистра нельзя. При снятии галочки удалить запись в регистре.
---
Удаление это физическое удаление или пометка на удаление?
---
Слушайте! Хотел снять скриншоты, чтобы показать как и что, провел сейчас весь цикл попытки пометки / удаления документа и увидел, что признак Ведущее у измерения Объект дало нужный эффект!
Запись регистра теперь удаляется, когда удаляется помеченный документ, который прописан в измерении Объект.
Спасибо! Разобрался.
---
Однако, как вы в таком случае реализуете Удалять документ при установленной галочке и записи регистра нельзя?
---
Ловим событие ПередЗаписью, и смотрим так:

```1c
    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения И ПолучитьЗначениеФлагаЗаказУтвержден() Тогда

    ДействияПриОтменеПроведения(Отказ);

    ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда

    ДействияПриПроведении(Отказ);

    ИначеЕсли РежимЗаписи = РежимЗаписиДокумента.Запись И ПометкаУдаления Тогда

    //Надо удалить записи в регистре сведений икЗаказНаПроизводствоУтвержден
    НаборЗаписей = РегистрыСведений.икЗаказНаПроизводствоУтвержден.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(Ссылка);
    НаборЗаписей.Записать();

    КонецЕсли;
```
---
А зачем вы программно удаляете запись из РС, если платформа это сделает сама после фактического удаления документа?
---
Так как регистр независимый, то и удалять надо ручками.
---
Если удаляемый объект является ведущим измерением РС, запись удалится сама при фактическом удалении объекта.
---
А дальше

```1c
    Процедура ДействияПриОтменеПроведения(Отказ) Экспорт

    МассивБухтНаУдаление = ЭтотОбъект.Продукция.ВыгрузитьКолонку("СерияНоменклатуры");
    // 1. Смотрим, есть ли движения регистра по списку бухт из этого документа другими документами.
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | икСостояниеБухты.ДокументДвижения
    |ИЗ
    | РегистрСведений.икСостояниеБухты КАК икСостояниеБухты
    |ГДЕ
    | икСостояниеБухты.ДокументДвижения ЕСТЬ НЕ NULL
    | И икСостояниеБухты.ДокументДвижения <> &ТекущийДокумент
    | И икСостояниеБухты.Объект В(&МассивБухтНаУдаление)";
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.УстановитьПараметр("МассивБухтНаУдаление", МассивБухтНаУдаление);
    Если Запрос.Выполнить().Выгрузить().Количество() = 0 Тогда
    // 2. Документов нет, можно все серии номенклатуры пометить на удаление.
    Для каждого бухта Из МассивБухтНаУдаление Цикл
    Если НЕ Бухта = Справочники.СерииНоменклатуры.ПустаяСсылка() Тогда
    Бухта.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
    НаборЗаписей = РегистрыСведений.икСостояниеБухты.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Объект.Установить(Бухта.Ссылка);
    НаборЗаписей.Записать(Истина);
    КонецЕсли;
    КонецЦикла;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | икРезервированиеБухты.Ссылка
    |ИЗ
    | Документ.икРезервированиеБухты КАК икРезервированиеБухты
    |ГДЕ
    | икРезервированиеБухты.ДокументОснование = &ДокументОснование";
    Запрос.УстановитьПараметр("ДокументОснование", Ссылка);
    ТабличкаДокументовРезервирования = Запрос.Выполнить().Выгрузить();
    Для Каждого ДокСсылка Из ТабличкаДокументовРезервирования Цикл

    Док = ДокСсылка.Ссылка.ПолучитьОбъект();
    Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    Док.УстановитьПометкуУдаления(Истина);

    КонецЦикла;

    Иначе
    // Запрещаем отменять проведение, если есть движения других документов по бухтам из этого документа.
    ОбщегоНазначения.СообщитьОбОшибке("В документе есть бухты, состояние которых уже изменено другими документами. Изменения запрещаются.", Отказ, "Внимание!");
    КонецЕсли;

    КонецПроцедуры
```
---
Наткнулись на следующее. Документ и регистр добавлены в расширении. В регистре одно измерение ДБизнесПроцессСсылка.ИзКонфигурации ведущее и ресурс ДокументСсылка.НовыйДокументРасширения. Регистр сведений нужен для хранения связи нового документа и бизнес-процесса, т.к. не получилось в расширении добавить реквизит в бизнес-процесс, и доп.реквизитов/сведений для бизнес-процессов не предусмотрено. Помечаем на удаление документ и связанный бизнес-процесс. Встроенная в УТ обработка поиска и удаления объектов не дает удалить этот документ и связанный бизнес-процесс, потому что есть запись в регистре. Решили костылем: при пометке на удаление документа удаляется запись из регистра сведений.
---
Возможно у регистра в настройках Записывать измененные. Набор в первых 3 строках не меняется.
---
А что за настройки регистра? Не знаю, где это искать.
В свойствах регистра такой опции нет.
---
Извините, ввел в заблуждение. Это свойство документа, и влияет на регистры записываемые при проведении.
---
Я бы ради на вашем месте ради интереса проверил будет ли регистр очищаться если перед 3-ей строкой прописать

```1c
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
```

не утверждаю что заработает, но попробовать стоит.
---
Добавил строчку

```1c
    НаборЗаписей.Прочитать();
```

На строчке "Прочитать()" отладчик показывает 1 запись
На строчке "Записать()" показывает 1 запись.
Т.е. не очищается набор.

Попробовал вот так:

```1c
    НаборЗаписей.Прочитать();
    НаборЗаписей.Удалить(0);
    НаборЗаписей.Записать();
```

Остается запись регистра. Хотя показывает, что количество записей в наборе записей = 0.
---
Рабочий код

```1c
    МенеджерЗаписи = РегистрыСведений.РегистрацияПереоценок.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.ДокументОснование = Выборка.ДокументОснование;
    МенеджерЗаписи.Прочитать();
    МенеджерЗаписи.Удалить();
```