База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить список подчинённых справочников для «Организации» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 14 часов, 12 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
13 мая 2026 в 16:00 #37144
получить как список все справочники подчиненные справочнику «Организации»
-
13 мая 2026 в 16:00 #37145
В 1С нет встроенного универсального метода, который бы напрямую возвращал список всех подчинённых справочников для заданного справочника, например, «Организации». Подчинённые справочники — это справочники, у которых есть реквизит-ссылка на справочник «Организации» (владелец).
Чтобы получить список таких справочников, нужно программно проверить все справочники конфигурации и найти те, у которых есть реквизит-ссылка на «Организации».
Примерный алгоритм на встроенном языке 1С (8.3):
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839Функция ПолучитьПодчинённыеСправочники(ИмяВладельца)Подчинённые = Новый СписокЗначений;МетаданныеКонфигурации = Метаданные;// Получаем метаданные справочника-владельцаСправочникВладелец = МетаданныеКонфигурации.Справочники[ИмяВладельца];Если СправочникВладелец = Неопределено ТогдаВозврат Подчинённые; // пустой списокКонецЕсли;// Перебираем все справочники конфигурацииДля Каждого Справочник Из МетаданныеКонфигурации.Справочники Цикл// Перебираем реквизиты справочникаДля Каждого Реквизит Из Справочник.Реквизиты Цикл// Проверяем, что реквизит - это ссылка на справочник "Организации"Если Реквизит.Тип = Тип("СправочникСсылка." + ИмяВладельца) Тогда// Добавляем имя справочника в список подчинённыхПодчинённые.Добавить(Справочник.Имя);Прервать; // достаточно одного реквизита-ссылки, чтобы считать справочник подчинённымКонецЕсли;КонецЦикла;КонецЦикла;Возврат Подчинённые;КонецФункции// Использование:ПодчинённыеСправочники = ПолучитьПодчинённыеСправочники("Организации");Для Каждого ИмяСправочника Из ПодчинённыеСправочники ЦиклСообщить(ИмяСправочника);КонецЦикла;Объяснение:
— Функция перебирает все справочники конфигурации.
— Для каждого справочника проверяет реквизиты.
— Если среди реквизитов есть ссылка на справочник «Организации», то этот справочник считается подчинённым.
— Возвращается список имён таких справочников.Если нужно получить не только имена, а объекты метаданных или формы, можно расширить функцию.
Если конфигурация большая, можно оптимизировать перебор.
Там подробно описано, как работать с метаданными и получать информацию о реквизитах и типах.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.