Как получить вышестоящее подразделение в иерархии? Бухгалтерия предприятия 8.3

1. mvl_dimir 24.01.22 10:55 Сейчас в теме
Когда я вытаскиваю подразделение, то он берет то, что указано у сотрудника в карточке, а хотелось бы к этом добавить еще и вышестоящее подразделение. Пример: Участок 4(вышестоящее), КНС п. Сиверский-2(нижестоящее).
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. qazaas 24.01.22 10:59 Сейчас в теме
Обратись к стандартному реквизиту "Родитель" -> Подразделение.Родитель
3. Vladimir-R 171 24.01.22 11:16 Сейчас в теме
Вышестоящее на 1 уровень или все вышестоящие или вышестоящее на самом верхнем уровне?
4. mvl_dimir 24.01.22 11:19 Сейчас в теме
(3)На самом верхнем уровне. Гляньте скрин, там Участок 4 самое вышестоящее, остальные внутри него лежат
5. laperuz 47 24.01.22 11:23 Сейчас в теме
(4) Так у вас на скрине всего 2 уровня. А если будет 3 уровня и выбрано подразделение 3 уровня, вам нужен 2 уровень, 1 уровень или оба?
7. mvl_dimir 24.01.22 11:25 Сейчас в теме
(5)Оба уровня, меня интересуют все возможные варианты по иерархии. В данном примере, у меня всего два уровня, в будущем не планируется их увеличение, но было бы полезно узнать про все.
8. laperuz 47 24.01.22 11:27 Сейчас в теме
(7) Тогда вам должен подойти метод ПолноеНаименование() для элемента справочника, если конечно вам нужно в виде строки. Если именно элементы нужны, то рекурсия/цикл.
voyagerkonstantin; Vladimir-R; +2 Ответить
9. Vladimir-R 171 24.01.22 14:03 Сейчас в теме
(7) либо (8) либо запрос
ТекущийЭлементПодразделения = ЭлементПодразделение;

Запрос = Новый Запрос("ВЫБРАТЬ 
                      | Подразделение.Родитель, 
                      | Подразделение.Родитель.Родитель, 
                      | Подразделение.Родитель.Родитель.Родитель, 
                      | Подразделение.Родитель.Родитель.Родитель.Родитель, 
                      | Подразделение.Родитель.Родитель.Родитель.Родитель.Родитель 
                      |ИЗ 
                      | Справочник.Подразделение КАК Подразделение 
                      |
                      |ГДЕ 
                      | Подразделение.Ссылка = &ТекущийЭлементПодразделения";

Пока Истина Цикл
    Запрос.УстановитьПараметр("ТекущийЭлементПодразделения", ТекущийЭлементПодразделения); 
    Результат = Запрос.Выполнить(); 
    Если Результат.Пустой() Тогда 
        Прервать; 
    КонецЕсли; 
    Выборка = Результат.Выбрать(); 
    Выборка.Следующий(); 
    Для НомерКолонки = 0 По Результат.Колонки.Количество() - 1 Цикл 
        ТекущийЭлементПодразделения = Выборка[НомерКолонки]; 
        Если ТекущийЭлементПодразделения = Справочники.Подразделение.ПустаяСсылка() Тогда 
            Прервать; 
        Иначе 
            Сообщить(ТекущийЭлементПодразделения); 
        КонецЕсли; 
    КонецЦикла; 

    Если ТекущийЭлементПодразделения = Справочники.Подразделение.ПустаяСсылка() Тогда 
        Прервать; 
    КонецЕсли;
КонецЦикла;
Показать
10. tusv 212 24.01.22 15:11 Сейчас в теме
(7)Можно запросом с итогом по иерархии
ВЫБРАТЬ
	ПодразделенияОрганизаций.Ссылка КАК Ссылка
ИЗ
	Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
ГДЕ
	ПодразделенияОрганизаций.Ссылка = &Ссылка
ИТОГИ ПО
	ПодразделенияОрганизаций.Ссылка ТОЛЬКО ИЕРАРХИЯ
kabantus; Ziggurat; romanstor; alsegor; Diego_Iv; jdfox; Honey12n; +7 Ответить
6. qazaas 24.01.22 11:23 Сейчас в теме
Можно так попробовать, ну или на крайний случай запросом

НужноеПодразделение = ТекПодразделение;
Пока НужноеПодразделение.Родитель <> Справочники.Подразделения.ПустаяСсылка() Цикл
     НужноеПодразделение = НужноеПодразделение.Родитель;
КонецЦикла;
11. mvl_dimir 26.01.22 11:20 Сейчас в теме
Всем спасибо, буду пробовать и обязательно отпишусь о результате!
12. JinAir7460 22.02.24 10:13 Сейчас в теме
(11) не отписался)
user930053; Lada_68; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот