Как удалить строку табличной части справочника программно (1С:Программисту 8.3)

Удаление строки табличной части справочника выполняется по индексу:
ОбъектСпр.ДополнительныеРеквизиты.Удалить(ИндексЭлементаКоллекции);
Индекс предварительно нужно получить

Пример:

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

КолЗамен = 0;
// организуем выборку из справочника
ВыборкаСправочника = Справочники.ШтатноеРасписание.Выбрать();
Пока ВыборкаСправочника.Следующий() Цикл
// получаем объект по ссылке
ОбъектСпр = ВыборкаСправочника.ПолучитьОбъект();

// запрос строится так, чтобы получить строку со значением конкретного реквизита табличной части справочника
Запрос.УстановитьПараметр("Ссылка", ВыборкаСправочника.Ссылка);

// в цикле находим строку табличной части
Результат = Запрос.Выполнить();
ВыборкаЗапроса = Результат.Выбрать();

Если ВыборкаЗапроса.Следующий() Тогда

// ОчищаемаяСтрока - ссылка на конкретную строку ТЧ справочника
ОчищаемаяСтрока = ОбъектСпр.ДополнительныеРеквизиты.Найти(ВыборкаЗапроса.Значение);

// получаем индекс
ИндексЭлементаКоллекции = ОбъектСпр.ДополнительныеРеквизиты.Индекс(ОчищаемаяСтрока);

// удаляем строку ТЧ по индексу
ОбъектСпр.ДополнительныеРеквизиты.Удалить(ИндексЭлементаКоллекции);

КолЗамен = КолЗамен + 1;

// записываем изменения
ОбъектСпр.Записать();
КонецЕсли;

КонецЦикла;

2 thoughts on “Как удалить строку табличной части справочника программно (1С:Программисту 8.3)

  1. В старой школе при удаление элементов коллекции удаляемые элементы заносились в массив, а затем обходя этот массив удаляли нужные записи…

    • Угу. То, как все сейчас, лично мне не очень-то нравится. Но приходится мириться.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *