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