|   |   | 
| 
 | Отбор в списке. | ☑ | ||
|---|---|---|---|---|
| 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 | 
        ОК !     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |