Функция для получения дерева подчиненности (связанные объекты)
Разработка - Универсальные функции
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Набор функций можно встроить, например, в ОбщийМодуль и получить массив документов подчинения. иногда выводит документов больше, чем штатный механизм.

На примере в черной рамочке это все один документ Заказ клиента, выведенный 1С в дерево. Снизу то, что выводит мой механизм. Да, он медленнее, чем штатный. Кто захочет оптимизировать - берите, делайте.
Старт функции
Функция ПолучитьДеревоПодчиненности(_ссылка) экспорт
Кусочек кода для заполнения счета-фактуры на аванс для УПД
ПлатежноРасчетныеДокументы.Очистить();
мПКО=новый массив;
мБн=новый массив;
для каждого стр из СписокОснований цикл
м=HelmerСервер.ПолучитьДеревоПодчиненности(стр.Значение);//массив подчин док
Для каждого стр1 из м цикл
Если ТипЗнч(стр1)=тип("ДокументСсылка.ПоступлениеБезналичныхДенежныхСредств") тогда
мБн=HelmerСервер.ПолучитьДеревоПодчиненности(стр1);
п=ПлатежноРасчетныеДокументы.Добавить(); //оплата
п.НомерПлатежноРасчетногоДокумента=стр1.НомерВходящегоДокумента;
п.ДатаПлатежноРасчетногоДокумента=стр1.ДатаВходящегоДокумента;
п.док=стр1;
ИначеЕсли ТипЗнч(стр1)=тип("ДокументСсылка.ПриходныйКассовыйОрдер") тогда
мПКО=HelmerСервер.ПолучитьДеревоПодчиненности(стр1);
п=ПлатежноРасчетныеДокументы.Добавить(); //оплата
п.НомерПлатежноРасчетногоДокумента=ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(стр1.Номер);
п.ДатаПлатежноРасчетногоДокумента=стр1.Дата;
п.док=стр1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
С совместимостью конфигураций не стал заморачиваться. Еще раз - будет работать там, где есть возможность построить запрос

Просьба не писать неконструктивную критику в ветке публикации, типа да, я делал и у меня круче! Если есть чем поделиться - делись кодом, пойдет на пользу общества. стоимость такая - беру за потраченное время на оформление публикации. В инете много воды на эту тему - а рабочих вариантов для своих нужд я не нашел.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.4.14.181
Вступайте в нашу телеграмм-группу Инфостарт