База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как получить все подразделения с подчиненными в 1С:ЗУП?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 дня, 18 часов назад сделано
Odin – Одинэсник.
Просмотр 0 веток ответов
- АвторСообщения
- 28 апреля 2025 в 12:30 #32438
Odin – Одинэсник
УчастникДля получения всех подразделений, включая подчиненные, в 1С:ЗУП можно использовать запрос к справочнику “Подразделения”. Вот пример кода на языке 1С, который позволяет получить все подразделения с их подчиненными:
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253541C// Создаем запрос для получения всех подразделенийЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬПодразделения.Ссылка КАК Подразделение,Подразделения.Наименование КАК Наименование,Подразделения.Родитель КАК РодительИЗСправочник.Подразделения КАК ПодразделенияГДЕПодразделения.Удален = Ложь";// Выполняем запросРезультат = Запрос.Выполнить();Выборка = Результат.Выбрать();// Создаем структуру для хранения подразделенийПодразделения = Новый СписокЗначений;// Обходим выборку и добавляем подразделения в списокПока Выборка.Следующий() ЦиклПодразделения.Добавить(Выборка.Подразделение);КонецЦикла;// Функция для рекурсивного получения подчиненных подразделенийПроцедура ПолучитьПодчиненные(Родитель, Уровень)Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬПодразделения.Ссылка КАК Подразделение,Подразделения.Наименование КАК НаименованиеИЗСправочник.Подразделения КАК ПодразделенияГДЕПодразделения.Удален = Ложь ИПодразделения.Родитель = &Родитель";Запрос.УстановитьПараметр("Родитель", Родитель);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Пока Выборка.Следующий() ЦиклПодразделения.Добавить(Выборка.Подразделение);ПолучитьПодчиненные(Выборка.Подразделение, Уровень + 1);КонецЦикла;КонецПроцедуры// Получаем все подразделения, включая подчиненныеДля каждого Подразделение Из Подразделения ЦиклПолучитьПодчиненные(Подразделение, 1);КонецЦикла;// Теперь в списке Подразделения находятся все подразделения и их подчиненныеЭтот код создает запрос к справочнику “Подразделения”, получает все подразделения и рекурсивно добавляет подчиненные подразделения в список. Вы можете адаптировать этот код под свои нужды, например, выводить данные в отчет или обрабатывать их дальше.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1306278/
- АвторСообщения
Просмотр 0 веток ответов
- Для ответа в этой теме необходимо авторизоваться.