|
Отбор в списке. | ☑ | ||
---|---|---|---|---|
0
antihacker
29.06.18
✎
09:08
|
Всем привет !
Вот работающий отбор. &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Список.Отбор.Элементы.Очистить(); //рррр = Параметры.АБП; Если Параметры.Свойство("Программа") Тогда ЭтотОбъект.вхПрограмма = Параметры.Программа; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Программа"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение =Параметры.Программа; КонецЕсли; Если Параметры.Свойство("АБП") Тогда ЭтотОбъект.вхАБП = Параметры.АБП; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АБП"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Параметры.АБП; КонецЕсли; КонецПроцедуры Но в справочнике есть предопределенный элемент кодом "000". И он отпадает. Но этот элемент всегда должен быть доступен. Есть какой нить вариант по проще кроме произвольного запроса в отборе ? |
|||
1
sechs
29.06.18
✎
09:15
|
Добавить в отбор группу ИЛИ
|
|||
2
antihacker
29.06.18
✎
09:24
|
Это как ? Че то не понял.
|
|||
3
sechs
29.06.18
✎
09:36
|
Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"))
Дальше сам. |
|||
4
antihacker
29.06.18
✎
09:49
|
Вроде так
СтандартнаяОбработка = Ложь; Список.Отбор.Элементы.Очистить(); //рррр = Параметры.АБП; Если Параметры.Свойство("Программа") Тогда ЭтотОбъект.вхПрограмма = Параметры.Программа; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Программа"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение =Параметры.Программа; КонецЕсли; Если Параметры.Свойство("АБП") Тогда ЭтотОбъект.вхАБП = Параметры.АБП; ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АБП"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Параметры.АБП; КонецЕсли; ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; //далее добавляем первое условие отбора //ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = "000"; Не работает. Если убрать отборы по "АБП" и "Программа", то работает как то не понятно. Показывает "000", но остальные нету. |
|||
5
aleks_default
29.06.18
✎
09:54
|
СНАЧАЛА добавить группу а потом В НЕЕ добавить свои отборы
|
|||
6
aleks_default
29.06.18
✎
09:55
|
Ты что с Урала?
|
|||
7
antihacker
29.06.18
✎
10:09
|
ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ; //рррр = Параметры.АБП; Если Параметры.Свойство("Программа") Тогда ЭтотОбъект.вхПрограмма = Параметры.Программа; ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ГруппаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Программа"); ГруппаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ГруппаОтбора.Использование = Истина; ГруппаОтбора.ПравоеЗначение =Параметры.Программа; КонецЕсли; Если Параметры.Свойство("АБП") Тогда ЭтотОбъект.вхАБП = Параметры.АБП; ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ГруппаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АБП"); ГруппаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ГруппаОтбора.Использование = Истина; ГруппаОтбора.ПравоеЗначение = Параметры.АБП; КонецЕсли; ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ГруппаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код"); ГруппаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ГруппаОтбора.Использование = Истина; ГруппаОтбора.ПравоеЗначение = "000"; |
|||
8
antihacker
29.06.18
✎
10:10
|
Опять не работает.
aleks_default, С Юга. |
|||
9
aleks_default
29.06.18
✎
10:11
|
(8) Читай еще раз внимательно вторую часть предложения в (5)
|
|||
10
antihacker
29.06.18
✎
10:13
|
Все разобрался.
СтандартнаяОбработка = Ложь; Список.Отбор.Элементы.Очистить(); ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ; Если Параметры.Свойство("Программа") Тогда ЭтотОбъект.вхПрограмма = Параметры.Программа; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Программа"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение =Параметры.Программа; КонецЕсли; Если Параметры.Свойство("АБП") Тогда ЭтотОбъект.вхАБП = Параметры.АБП; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("АБП"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Параметры.АБП; КонецЕсли; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = "000"; |
|||
11
antihacker
29.06.18
✎
10:14
|
Спасибо тебе большущий !
|
|||
12
aleks_default
29.06.18
✎
10:15
|
Давай не тупи больше, земеля
|
|||
13
antihacker
29.06.18
✎
10:17
|
ОК !
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |