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