Удаление регистра хозрасчетный по строке с отбором
&НаКлиенте
Процедура ВыполитьКоманду(Команда)
ВыполитьКомандуНажатие();
КонецПроцедуры
&НаСервере
Процедура ВыполитьКомандуНажатие()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Хозрасчетный.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Объект.СсылкаДок);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
НомераСтрок = Новый СписокЗначений;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
НомераСтрок.Добавить(Запись.НомерСтроки);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
НомераСтрок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
Для каждого Ном из НомераСтрок Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Ном.Значение);
КонецЦикла;
НаборЗаписей.Записать();
НомераСтрок.Очистить();
КонецЦикла;
КонецПроцедуры
ПоказатьПишет ошибка
Ошибка |
---|
Недопустимое значение параметра (параметр номер '1')
{ВнешняяОбработка.УдалитьСтрокуИзДокументаБухОперация.Форма.Форма.Форма(46)}: НаборЗаписей.Удалить(Ном.Значение); {ВнешняяОбработка.УдалитьСтрокуИзДокументаБухОперация.Форма.Форма.Форма(4)}: ВыполитьКомандуНажатие(); по причине: Недопустимое значение параметра (параметр номер '1') |
Хочу удалить в выбранном документе операция по выбранному контрагенту все записи.
По теме из базы знаний
- Всякие полезности
- Должно быть NULL в регистре бухгалтерии Хозрасчетный
- Панель #Расширение объекта: Редактор, Права, Поиск, Сторно, Обмен
- Групповое добавление и удаление ролей из списка профилей
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
Найденные решения
(1) В метод Удалить набора записей надо передавать Индекс записи или саму запись. Я бы переделал коллекцию НомераСтрок под массив записей.
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
Показать
(3)
спасибо когда вы написали про массив я сразу понял куда смотреть.
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
ПоказатьНаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
спасибо когда вы написали про массив я сразу понял куда смотреть.
&НаКлиенте
Процедура ВыполитьКоманду(Команда)
ВыполитьКомандуНажатие();
КонецПроцедуры
&НаСервере
Процедура ВыполитьКомандуНажатие()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Хозрасчетный.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Объект.СсылкаДок);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивКУдалению = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивКУдалению.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивКУдалению Цикл
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) В метод Удалить набора записей надо передавать Индекс записи или саму запись. Я бы переделал коллекцию НомераСтрок под массив записей.
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
Показать
(3)
спасибо когда вы написали про массив я сразу понял куда смотреть.
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
ПоказатьНаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивУдалить = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивУдалить.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивУдалить Цикл
//Сообщить(Ном.Значение);
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
спасибо когда вы написали про массив я сразу понял куда смотреть.
&НаКлиенте
Процедура ВыполитьКоманду(Команда)
ВыполитьКомандуНажатие();
КонецПроцедуры
&НаСервере
Процедура ВыполитьКомандуНажатие()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Хозрасчетный.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",Объект.СсылкаДок);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
МассивКУдалению = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
МассивКУдалению.Добавить(Запись);
Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
КонецЕсли;
КонецЦикла;
Для каждого Запись из МассивКУдалению Цикл
НаборЗаписей.Удалить(Запись);
КонецЦикла;
НаборЗаписей.Записать();
КонецЦикла;
КонецПроцедуры
Показать// 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 }
Показать
(1)
МассивЗапКУдалению = Новый Массив;
Для каждого Запись из НаборЗаписей Цикл
Если Запись.СубконтоДт.Контрагенты = Объект.Контрагент Тогда
// было
//НомераСтрок.Добавить(Запись.НомерСтроки);
//Сообщить("Номер строки: "+Запись.НомерСтроки+" контрагент: "+Запись.СубконтоДт.Контрагенты);
// стало
МассивЗапКУдалению.Добавить(Запись);
КонецЕсли;
КонецЦикла;
// было
//НомераСтрок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
//Для каждого Ном из НомераСтрок Цикл
// //Сообщить(Ном.Значение);
// НаборЗаписей.Удалить(Ном.Значение);
//КонецЦикла;
// стало
Для каждого УдалЗапись Из МассивЗапКУдалению Цикл
НаборЗаписей.Удалить(УдалЗапись);
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот