Отбор в динамическом списке

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Гость 31.01.12 15:41
Можно ли в динамическом списке программно установить отбор по нескольким полям (с использованием логических условий И, ИЛИ и т.д.)

Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = Истина;
Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = "000000001";
По теме из базы знаний
Найденные решения
3. SPID 31.01.12 16:36 Сейчас в теме
(2) mkostya,
Это не для динамических списков вроде.

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

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

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


Или что то типо того, писал по памяти.
user1484583; GonziK_KIV; Кениец; maxunov95; grfsd; myoker; fortran; NN2P; Igor Igorevich; marku; gglvov; Alexey55; +12 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. mkostya 30 31.01.12 16:01 Сейчас в теме
Основная таблица для Список Справочник.Корпуса
Основная таблица для СписокПомещений Справочник.Помещения

В форме списка справочника корпуса
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Если Элементы.Список.ТекущаяСтрока <> Неопределено Тогда
УстановитьОтборУСпискаНаРавенство(СписокПомещений.Отбор,Новый ПолеКомпоновкиДанных("Владелец"),Элементы.Список.ТекущаяСтрока);
//или ОбщегоНазначенияКлиентСервер.УстановитьОтборУСпискаНаРавенство(СписокПомещений.Отбор,Новый ПолеКомпоновкиДанных("Владелец"),Элементы.Список.ТекущаяСтрока);
КонецЕсли;
КонецПроцедуры


// Устанавливает отбор у отбора системы компоновки данных.
//
// Пример использования:
// ОбщегоНазначенияКлиентСервер.УстановитьОтборУСпискаНаРавенство(
// Список.Отбор,
// Новый ПолеКомпоновкиДанных("ИмяСвойства"),
// ЗначениеОтбора);
//
&НаКлиенте
Процедура УстановитьОтборУСпискаНаРавенство(ОтборСКД,
знач ЛевоеЗначение,
знач ПравоеЗначение) Экспорт

ЭлементыОтбора = ОтборСКД.Элементы;
ЭлементОтбораДанных = Неопределено;

Для Каждого ЭлементОтбора Из ЭлементыОтбора Цикл
Если ЭлементОтбора.ЛевоеЗначение = ЛевоеЗначение Тогда
Если ЭлементОтбораДанных = Неопределено Тогда
ЭлементОтбораДанных = ЭлементОтбора;
Иначе
ЭлементОтбора.Использование = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Если ЭлементОтбораДанных = Неопределено Тогда
ЭлементОтбораДанных = ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = ЛевоеЗначение;
КонецЕсли;

ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = ПравоеЗначение;
ЭлементОтбораДанных.Использование = Истина;

КонецПроцедуры
trigor; black_doctor; tgr123; +3 Ответить
3. SPID 31.01.12 16:36 Сейчас в теме
(2) mkostya,
Это не для динамических списков вроде.

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

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

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


Или что то типо того, писал по памяти.
user1484583; GonziK_KIV; Кениец; maxunov95; grfsd; myoker; fortran; NN2P; Igor Igorevich; marku; gglvov; Alexey55; +12 Ответить
4. valeriy-vm 32 15.08.12 11:03 Сейчас в теме
спс помогло
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)