kostya77 @ Сегодня, 7:39
,
Попробуйте через "ГруппаЭлементовОтбораКомпоновкиДанных" если список у вас не произвольный запрос
Пример:
Гр_Отбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
Гр_Отбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
НовЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовЭлементОтбора.Родитель = Гр_Отбора;
НовЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПолеКомп_1");
НовЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
НовЭлементОтбора.Использование = Истина;
НовЭлементОтбора.ПравоеЗначение = Знач_1;
С условием:
ДатаДокумента >= НачалоПериода И ДатаДокумента <= КонецПериода
P.S. Модно без группы а сразу "ЭлементОтбораКомпоновкиДанных" т.к. условие "И" для условий действует по умолчанию
Р.P.S. Правда нужно дописывать форму журнала (Смотреть переданные параметры ПриОткрытии)
P.P.P.S. Кто может - предложите лучше... Самому интересно стало.
Варианты:
- В цикле скрыть/удалить ненужное - непроизводительно
- "НайтиСтроки" - вид сравнения ТОЛЬКО =
- "ПостроительЗапроса"
Пример:
&НаСервере
Процедура ОтборВТЗНаСервере()
ПостроительЗапр = Новый ПостроительЗапроса;
ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабЗнач);
т_Отбор = ПостроительЗапр.Отбор.Добавить("Кол_1");
т_Отбор.ВидСравнения = ВидСравнения.Больше;
т_Отбор.Значение = 1000;
т_Отбор.Использование = Истина;
ПостроительЗапр.Выполнить();
ТабРезультат = Построитель.Результат.Выгрузить();
КонецПроцедуры
- сдалать ДинамическийСписок на основе ПроизвольногоЗапроса (назначить его программно и задать текст и свои параметры)
Если есть БСПмФорма = ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(мФорма.Список, "ПометкаУдаления", Истина, ВидСравненияКомпоновкиДанных.Равно, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный, Новый УникальныйИдентификатор);
//Если нет БСП то используем велосипед//Вызывающий код
мФорма = ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
УстановитьПользовательскийОтборДинамическогоСписка(мФорма.Список, "ПометкаУдаления", Ложь, ВидСравненияКомпоновкиДанных.Равно);
&НаКлиенте
Процедура УстановитьПользовательскийОтборДинамическогоСписка(Список, ИмяПоля, Значение, ВидСравнения);
Для Каждого ЭлементОтбора Из Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
Если ТипЗнч(ЭлементОтбора) = Тип("ОтборКомпоновкиДанных") Тогда
ПользовательскийОтбор = ЭлементОтбора.Элементы;
НовыйЭлементОтбора = Неопределено;
Для Каждого СуществующийЭлементОтбора Из ПользовательскийОтбор Цикл
Если СуществующийЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля) Тогда
НовыйЭлементОтбора = СуществующийЭлементОтбора;
Прервать;
КонецЕсли;
КонецЦикла;
Если СуществующийЭлементОтбора = Неопределено Тогда
НовыйЭлементОтбора = ПользовательскийОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
КонецЕсли;
НовыйЭлементОтбора.ВидСравнения = ВидСравнения;
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
НовыйЭлементОтбора.ПравоеЗначение = Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры;
Сообщение отредактировал AnryMc - 12.09.23, 13:43