Проект

Общее

Профиль

Структура подчиненности (связанные объекты) » История » Версия 1

Версия 1/5 - Следующее » - Текущая версия
Всеволод Дорофеев, 15.09.2025 17:19


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

Добавление Структура подчиненности (связанные документы) в расширении

При добавлении нового реквизита в объект (документ, справочник) может возникнуть задача вывода связанных документов.
Если добавлять в расширение КритерииОтбора.СвязанныеДокументы, тогда в расширение будут добавлены все участвующие объекты.
Можно решить иначе - добавлением кода:

1. Добавляем в расширение процедуру ОбщийМодуль.ВариантыОтчетовПереопределяемый.ОпределитьОбъектыСКомандамиОтчетов

&После("ОпределитьОбъектыСКомандамиОтчетов")
Процедура мн_ОпределитьОбъектыСКомандамиОтчетов(Объекты)

    Объекты.Добавить(Метаданные.Документы.ОрдерНаОтражениеИзлишковТоваров);
    Объекты.Добавить(Метаданные.Документы.ОрдерНаОтражениеНедостачТоваров);

КонецПроцедуры

2. Добавляем в расширение ОбщийМодуль.СтруктураПодчиненностиСлужебный.ИндексТиповСвязанныхОбъектов

&ИзменениеИКонтроль("ИндексТиповСвязанныхОбъектов")
Функция мн_ИндексТиповСвязанныхОбъектов()

    Индекс = Новый Соответствие;

    МетаданныеСвязанныхОбъектов = Метаданные.КритерииОтбора.СвязанныеДокументы;
    ТипыСвязанныхОбъектов = МетаданныеСвязанныхОбъектов.Тип.Типы();
    ТипПараметраКоманды = Метаданные.ОбщиеКоманды.СвязанныеДокументы.ТипПараметраКоманды;

    Для Каждого ТипСвязанногоОбъекта Из ТипыСвязанныхОбъектов Цикл

        Если Не ТипПараметраКоманды.СодержитТип(ТипСвязанногоОбъекта) Тогда
            Индекс.Вставить(ТипСвязанногоОбъекта, Истина);
        КонецЕсли;

    КонецЦикла;
#Вставка 
    //{Проект
      Индекс.Вставить(Тип("ДокументСсылка.ОрдерНаОтражениеНедостачТоваров"), Истина);   
      Индекс.Вставить(Тип("ДокументСсылка.ОрдерНаОтражениеИзлишковТоваров"), Истина);   

    // } Проект .
#КонецВставки 
    Возврат Индекс;

КонецФункции