Добрый день! Появилась необходимость выборочно удалить записи из зависимого РС "НачальныеОстаткиОтпусков".
Если установить отбор по регистратору, то обработка очищает все записи по этому документу. Необходимо же устанавливать отбор по сотруднику, чтобы происходила замена записей по всем регистраторам конкретного сотрудника.

```1c
    &НаКлиенте
    Процедура Команда1(Команда)
    Команда1НаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура Команда1НаСервере()

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | НачальныеОстаткиОтпусков.Сотрудник КАК Сотрудник,
    | НачальныеОстаткиОтпусков.Регистратор КАК Регистратор
    |ИЗ
    | РегистрСведений.НачальныеОстаткиОтпусков КАК НачальныеОстаткиОтпусков
    |ГДЕ
    | НачальныеОстаткиОтпусков.Сотрудник = &Сотрудник
    |
    |СГРУППИРОВАТЬ ПО
    | НачальныеОстаткиОтпусков.Сотрудник,
    | НачальныеОстаткиОтпусков.Регистратор";
    Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
    Выборка = Запрос.Выполнить().Выбрать();

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

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

    КонецЦикла;

    Сообщить("Очистка завершена ");

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

Но при попытке выполнить обработку выходит сообщение "{ВнешняяОбработка.УдалитьРСОстаткиОтпусков.Форма.Форма.Форма(28)}: Поле объекта не обнаружено (Сотрудник)
  НаборЗаписей.Отбор.Сотрудник.Установить(Выборка.Сотрудник);"

Подскажите, пожалуйста, что здесь делаю неправильно?
---
Отбор подчиненного регистра можно установить только по регистратору.

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

    ТЗ = НаборЗаписей.Выгрузить();

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

    НаборЗаписей.Загрузить(ТЗ);
    НаборЗаписей.Записать();
```
---
Отбор подчиненного регистра можно установить только по регистратору.

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

    ТЗ = НаборЗаписей.Выгрузить();

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

    НаборЗаписей.Загрузить(ТЗ);
    НаборЗаписей.Записать();
```
---
спасибо!
---
Добрый день, стоит попробовать сначала получить список регистраторов с этим сотрудником и отдельно вычистить его в движениях каждого регистратора.
Либо через SQL - там можно очистить записи с конкретным значением
---
Удаляйте циклом. На сотрудника вы отбор наложить не можете, т.к. в подчиненном регистре можно записывать только набором по регистратору.

Читаете весь набор, в цикле проходите, записи с нужным сотрудником удаляете.
Не забывайте, что при удалении записи из набора происходит сдвиг итератора цикла, самый простой способ помещать удаляемые записи в массив, потом обходить этот массив и удалять из набора.
---
Ошибка выходит из за группировки, на верхнем уровне - сотрудник пустой
---
Не путайте с итогами, тут верхнего/нижнего уровня нет и сотрудник не пустой. Ошибка не на отсутствие Сотрудник в выборке, а на отсутствие Сотрудник в отборе.
---
Если допустимо ездить на готовом велосипеде, а не изобретать собственный: https://infostart.ru/public/304463/
---
НаборЗаписей.Отбор.Сотрудник.Установить(Выборка.Сотрудник) - мне кажется, или в отборе сотрудник из выборки?
---
Из выборки Сотрудник не подтягивается
---
У Отбор в данном случае нет свойства Сотрудник. А вот Выборка.Сотрудник в данном случае вполне себе есть и ее значение равно Объект.Сотрудник