Функция для получения дерева подчиненности (связанные объекты)

27.01.26

Разработка - Универсальные функции

Обработка с набором функций, чтобы получить список документов подчинения (дерево документов) в виде массива. Работает там, где есть в конфигурации КритерииОтбора.СвязанныеДокументы.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Функция для получения дерева подчиненности (связанные объекты)
.epf 7,83Kb
0 4 200 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Набор функций можно встроить, например, в ОбщийМодуль и получить массив документов подчинения. иногда выводит документов больше, чем штатный механизм.

 

 

На примере в черной рамочке это все один документ Заказ клиента, выведенный 1С в дерево. Снизу то, что выводит мой механизм. Да, он медленнее, чем штатный. Кто захочет оптимизировать - берите, делайте.

Старт функции

Функция ПолучитьДеревоПодчиненности(_ссылка) экспорт

Кусочек кода для заполнения счета-фактуры на аванс для УПД

 

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

С совместимостью конфигураций не стал заморачиваться. Еще раз - будет работать там, где есть возможность построить запрос

 

 

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

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.4.14.181

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    3672    Abysswalker    9    

45

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    6865    DeerCven    15    

59

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    50061    dimanich70    83    

170

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7429    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    62980    atdonya    31    

70

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9276    ke.92@mail.ru    17    

68
Для отправки сообщения требуется регистрация/авторизация