```1c
    &НаКлиенте
    Процедура ВыполитьКоманду(Команда)
    ВыполитьКомандуНажатие();
    КонецПроцедуры

    &НаСервере
    Процедура ВыполитьКомандуНажатие()

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

    Выборка = Запрос.Выполнить().Выбрать();

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

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

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

Пишет ошибка ОшибкаНедопустимое значение параметра (параметр номер '1')
{ВнешняяОбработка.УдалитьСтрокуИзДокументаБухОперация.Форма.Форма.Форма(46)}: НаборЗаписей.Удалить(Ном.Значение);
{ВнешняяОбработка.УдалитьСтрокуИзДокументаБухОперация.Форма.Форма.Форма(4)}: ВыполитьКомандуНажатие();

по причине:
Недопустимое значение параметра (параметр номер '1')

Хочу удалить в выбранном документе операция по выбранному контрагенту все записи.
---
В метод Удалить набора записей надо передавать Индекс записи или саму запись. Я бы переделал коллекцию НомераСтрок под массив записей.
```1c
    Пока Выборка.Следующий() Цикл

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

    МассивУдалить = Новый Массив;

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

    Для каждого Запись из МассивУдалить Цикл
    //Сообщить(Ном.Значение);
    НаборЗаписей.Удалить(Запись);
    КонецЦикла;
    НаборЗаписей.Записать();
    КонецЦикла;
```
---
спасибо когда вы написали про массив я сразу понял куда смотреть.

```1c
    &НаКлиенте
    Процедура ВыполитьКоманду(Команда)
    ВыполитьКомандуНажатие();
    КонецПроцедуры

    &НаСервере
    Процедура ВыполитьКомандуНажатие()

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

    Выборка = Запрос.Выполнить().Выбрать();

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

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

    МассивКУдалению = Новый Массив;

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

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

    МассивУдалить = Новый Массив;

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

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

```1c
    &НаКлиенте
    Процедура ВыполитьКоманду(Команда)
    ВыполитьКомандуНажатие();
    КонецПроцедуры

    &НаСервере
    Процедура ВыполитьКомандуНажатие()

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

    Выборка = Запрос.Выполнить().Выбрать();

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

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

    МассивКУдалению = Новый Массив;

    Для каждого Запись из НаборЗаписей Цикл
    Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
    МассивКУдалению.Добавить(Запись);
    Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
    КонецЕсли;
    КонецЦикла;
    Для каждого Запись из МассивКУдалению Цикл
    НаборЗаписей.Удалить(Запись);
    КонецЦикла;
    НаборЗаписей.Записать();
    КонецЦикла;
    КонецПроцедуры
```
---
```1c
    // 1C@bk62.biz GAB 2022.07.14 {
    МассивЗапКУдалению = Новый Массив;
    // 1C@bk62.biz GAB 2022.07.14 }
    Для каждого Запись из НаборЗаписей Цикл
    Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
    // 1C@bk62.biz GAB 2022.07.14 {
    // было
    //НомераСтрок.Добавить(Запись.НомерСтроки);
    //Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
    // стало
    МассивЗапКУдалению.Добавить(Запись);
    // 1C@bk62.biz GAB 2022.07.14 }
    КонецЕсли;
    КонецЦикла;
    // 1C@bk62.biz GAB 2022.07.14 {
    // было
    //НомераСтрок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
    //Для каждого Ном из НомераСтрок Цикл
    // //Сообщить(Ном.Значение);
    // НаборЗаписей.Удалить(Ном.Значение);
    //КонецЦикла;
    // стало
    Для каждого УдалЗапись Из МассивЗапКУдалению Цикл
    НаборЗаписей.Удалить(УдалЗапись);
    КонецЦикла;
    // 1C@bk62.biz GAB 2022.07.14 }
```
---
```1c
    МассивЗапКУдалению = Новый Массив;
    Для каждого Запись из НаборЗаписей Цикл
    Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
    // было
    //НомераСтрок.Добавить(Запись.НомерСтроки);
    //Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
    // стало
    МассивЗапКУдалению.Добавить(Запись);
    КонецЕсли;
    КонецЦикла;
    // было
    //НомераСтрок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
    //Для каждого Ном из НомераСтрок Цикл
    // //Сообщить(Ном.Значение);
    // НаборЗаписей.Удалить(Ном.Значение);
    //КонецЦикла;
    // стало
    Для каждого УдалЗапись Из МассивЗапКУдалению Цикл
    НаборЗаписей.Удалить(УдалЗапись);
    КонецЦикла;
```
---
Ищи подписку на событие при записи/удалении регистра, в которой идёт перенаправление на использование внешней обработки.
---
"Собака" в сообщении автоматически его скрывает.