Имя: Пароль:
1C
 
установка программного отбора ПриКомпоновкеРезультата
0 golem14
 
14.08.23
09:13
Установил отбор по организации и подразделению.
Хочу добавить ещё одно подразделение и организацию и засунуть это в группу ИЛИ.
Как создать группу ИЛИ?
https://telegra.ph/PriKomponovkeRezultata-08-14

<code>
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    ЗначениеДата = Дата(2023,03,01,00,00,00);    
    КомпоновкаДанныхКлиентСервер.УстановитьПараметр(КомпоновщикНастроек, "Дата", ЗначениеДата);
    
    НастройкиНовые = КомпоновщикНастроек.ПолучитьНастройки();
    ЗначениеОтбора = Справочники.Организации.НайтиПоНаименованию("РогаИКопыта");
    ЗначениеОтбораПодразделения = Справочники.СтруктураПредприятия.НайтиПоНаименованию("Централизованная служба снабжения и логистики (г. Москва)");
    Использование = Истина;
    
    ДополнительныеПараметры = Новый Структура("ВПользовательскиеНастройки, ЗаменятьСуществующий", Истина, Истина);
    
    
    //ГруппаИЛИ = КомпоновкаДанныхКлиентСервер.ДобавитьГруппуОтбора(НастройкиНовые,ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли);  
    
    
    КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(
        НастройкиНовые,
        Новый ПолеКомпоновкиДанных("Организация"),
        ЗначениеОтбора,
        ВидСравненияКомпоновкиДанных.Равно,
        Использование,
        ДополнительныеПараметры);  
    
    КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(
        НастройкиНовые,
        Новый ПолеКомпоновкиДанных("Подразделение"),
        ЗначениеОтбораПодразделения,
        ВидСравненияКомпоновкиДанных.Равно,
        Использование,
        ДополнительныеПараметры);
    
    КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиНовые);

КонецПроцедуры
</code>
1 golem14
 
15.08.23
11:29
НастройкиНовые = КомпоновщикНастроек.ПолучитьНастройки();  

НастройкиНовые.Отбор.Элементы.Очистить();
ГруппаЭлементовОтбора = НастройкиНовые.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаЭлементовОтбора.Использование = Истина;
ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ГруппаЭлементовОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

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

КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиНовые);
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн