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