HelpF.pro

Перебрать, выбрать элементы подчиненного справочника

Перебор элементов справочника принадлежащих элементу другого справочника, т.е когда один справочник подчинен другому справочнику.

Код 1C v 8.х
 // Получить выборку по указанному контрагенту. 
Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент);
Пока Выборка.Следующий() Цикл
ОчереднойПодчиненый = Выборка.Ссылка;
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| КонтактныеЛица.Ссылка
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
| КонтактныеЛица.Владелец = &Владелец";

Запрос.УстановитьПараметр("Владелец", Контрагент);

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

Пока Выборка.Следующий() Цикл
ОчереднойПодчиненый = Выборка.Ссылка;
КонецЦикла;


Код 1C v 7.x
  //При работе с подчиненным справочником (например, при переборе или поиске элементов) 
//требуется указать, для какого конкретно элемента-владельца получать подчиненные элементы.
//Для этого предназначена процедура ИспользоватьВладельца(ОбъектВладелец)
//агрегатного типа данных Справочник.

// Пример 1
спр=СоздатьОбъект("Справочник.Модели");
спрМарка=СоздатьОбъект("Справочник.Марки");
спрМарка.НайтиПоНаименованию("BMW");
спр.ИспользоватьВладельца(спрМарка.ТекущийЭлемент());
спр.ВыбратьЭлементы();
Пока спр.ПолучитьЭлемент()=1 Цикл
Сообщение(спр.ТекущийЭлемент().Наименование);
КонецЦикла;

// Пример 2
Спр=СоздатьОбъект("Справочник.Контрагенты");
Попытка
дог=СоздатьОбъект("Справочник.Договоры");
исключение
Предупреждение("В конфигурации нет справочника ДОГОВОРЫ");
возврат;
конецПопытки;
Спр.ВыбратьЭлементы();//перебираем справочник-владелец
Пока спр.ПолучитьЭлемент()=1 Цикл
Если спр.ЭтоГруппа()=1 Тогда
продолжить;//группы не имеют подчиненных элементов
КонецЕсли;
Сообщить("Контрагент "+спр.Наименование+ " его договоры:");
дог.ИспользоватьВладельца(Спр.ТекущийЭлемент());//будем перебирать только
//подчиненные владельцу
дог.ВыбратьЭлементы(); //перебираем только подчиненные конкретному владельцу
Пока дог.получитьЭлемент()=1 Цикл
сообщить("----------"+дог.наименование);
КонецЦикла;
КонецЦикла;

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/305.html