Требуется удалить записи из РС РеестрКадровыхПриказов, в регистре десятки тысяч строк, требуется удалить строки по конкретному сотруднику.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеестрКадровыхПриказов.Организация КАК Организация,
    | РеестрКадровыхПриказов.Сотрудник КАК Сотрудник
    |ИЗ
    | РегистрСведений.РеестрКадровыхПриказов КАК РеестрКадровыхПриказов
    |ГДЕ
    | РеестрКадровыхПриказов.Сотрудник = &Сотрудник;

    Запрос.УстановитьПараметр("Сотрудник", Сотрудник);

    РезультатЗапроса = Запрос.Выполнить();
    Пока Выборка.Следующий() Цикл

    СтарыйПеренос = Выборка.Регистратор.ПолучитьОбъект();
    НаборЗаписей = РегистрыСведений.РеестрКадровыхПриказов.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(СтарыйПеренос.Ссылка);
    НаборЗаписей.Прочитать();
```
---
Просто обойдите записи набора записей регистра. Если в записи набора сотрудник - тот который надо удалить, добавьте запись в массив. Потом обойдите массив и удалите записи из набора. Запишите набор.

```1c
    ...
    РезультатЗапроса = Запрос.Выполнить();
    Пока Выборка.Следующий() Цикл

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

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

    Для Каждого СтрЗаписи Из МассивКУдалению Цикл
    НаборЗаписей.Удалить(СтрЗаписи);
    КонецЦикла;

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
```1c
    Выбрать * Из РегистрСведений.РеестрКадровыхПриказов ГДЕ НЕ Сотрудник = &Сотрудник ИТОГИ ПО Регистратор

    Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаРегистратор = РезультатЗапроса.Выбрать(ОбходРезультатаЗапросаПоГруппировкам);

    Пока ВыборкаРегистратор.Следующи() Цикл

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

    Выборка = ВыборкаРегистратор.Выбрать();

    Пока Выборка.Следующий() Цикл
    ЗаполнитьЗначенияСвойств(НЗ.Добавить(), Выборка);
    КонецЦикла;
    НЗ.Записать();
    КонецЦикла;
```
---
директора удалить решил?
---
Добрый день! Не понимаю зачем запрос, но по условию задачи можно написать:
НаборЗаписей = РегистрыСведений.РеестрКадровыхПриказов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Сотрудник);
НаборЗаписей.Записать();
---
автору поста нужно оставить всех сотрудников вместо одного, у вас запишется набор записей по конкретному сотруднику, которого на самом деле нужно исключить
---
мне кажется, вы ошибаетесь) запишется пустая запись по этому сотруднику, что значит - затруться все записи по этому сотруднику, главное ставить отбор.
---
автор поста может проверить на копии базы) и я тоже могу ошибаться, давно с НЗ не работала )
---
В РС по одному сотруднику есть два регистратора, на самом деле, в запросе есть условие на регистратор

```1c
    ГДЕ
    | РеестрКадровыхПриказов.Сотрудник = &Сотрудник
    | И РеестрКадровыхПриказов.Регистратор.Номер = "xxx"";
```

Удалит нужно записи по одному регистратору.
---
Как я предполагаю, в этих документах есть записи и по другим сотрудникам, поэтому нужен запрос

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеестрКадровыхПриказов.Организация КАК Организация,
    | РеестрКадровыхПриказов.Сотрудник КАК Сотрудник,
    | РеестрКадровыхПриказов.Регистратор КАК Регистратор
    |ИЗ
    | РегистрСведений.РеестрКадровыхПриказов КАК РеестрКадровыхПриказов
    |ГДЕ
    | РеестрКадровыхПриказов.Сотрудник = &Сотрудник;

    Запрос.УстановитьПараметр("Сотрудник", Сотрудник);

    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

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

Как то так, возможны ошибки в коде, писал на коленке
---
НаборЗаписей.Отбор.Регистратор.Установить(Сотрудник);

Объясните, пожалуйста, эту строку Регистратор - Сотрудник
---
прошу прощения, написал неправильно, так правильно:
НаборЗаписей.Отбор.Сотрудник.Установить(Сотрудник)
---
Есть только отбор по регистратору, добавить отбор по сотруднику либо нельзя, либо я не умею
---
Чушь советует. У подчиненного регистра отбор может быть ТОЛЬКО по регистратору.
---
Вы правы, не обратил внимания.
---
Да, этот вариант не подходит, вариант решения написал выше с помощью запроса.
---
Просто обойдите записи набора записей регистра. Если в записи набора сотрудник - тот который надо удалить, добавьте запись в массив. Потом обойдите массив и удалите записи из набора. Запишите набор.

```1c
    ...
    РезультатЗапроса = Запрос.Выполнить();
    Пока Выборка.Следующий() Цикл

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

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

    Для Каждого СтрЗаписи Из МассивКУдалению Цикл
    НаборЗаписей.Удалить(СтрЗаписи);
    КонецЦикла;

    НаборЗаписей.Записать();

    КонецЦикла;
```
---
МассивКУдалению = Новый Массив;
Алгоритм с МассивомКУдалению не раз меня выручал. Удобная штука.
---
helpf.pro/faq/view/882.html
---
helpf.pro/faq/view/882.html
Спасибо, но в моем случает зависимый регистр.
---
Удалить из документа-регистратора не предлагать?
---
предлагать
---
Тогда предлагаю найти в табличной части этого сотрудника, удалить его и провести документ. Это всё штатно, если нет запрета редактирования или не хватает прав
---
воспользоваться расширением "Инструменты разработчика"?
---
Регистратор - ПереносДанных, чтобы изменить/удалить запись ИР не требуется, если я правильно мысль поняла
---
если есть возможность из регистратора удалить запись, то ИР не нужен :)
но лично мне удобней напрямую из регистра удалять ненужные записи не перепроводя регистратор.
---
Всегда найдётся тот, кто проведёт после тебя. И наступит облом.
---
в теории да, но если права на редактирование документа только у меня, то нет :) если речь про перенос данных
а так есть дата запрета редактирования документов, которую тоже править могу только я :)