Вход | Регистрация

1С:Предприятие ::

Метки: 

Отбор в списке.

Я
   antihacker
 
29.06.18 - 09:08
Всем привет !

Вот работающий отбор.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

        СтандартнаяОбработка = Ложь;
        Список.Отбор.Элементы.Очистить();
        
        //рррр = Параметры.АБП;

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

        КонецЕсли;

КонецПроцедуры

Но в справочнике есть предопределенный элемент кодом "000". И он отпадает. Но этот элемент всегда должен быть доступен. Есть какой нить вариант по проще кроме произвольного запроса в отборе ?
 
  Рекламное место пустует
   sechs
 
1 - 29.06.18 - 09:15
Добавить в отбор группу ИЛИ
   antihacker
 
2 - 29.06.18 - 09:24
Это как ?  Че то не понял.
   sechs
 
3 - 29.06.18 - 09:36
Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"))

Дальше сам.
   antihacker
 
4 - 29.06.18 - 09:49
Вроде так

        СтандартнаяОбработка = Ложь;
        Список.Отбор.Элементы.Очистить();
        
        //рррр = Параметры.АБП;

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

        КонецЕсли;

ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

//далее добавляем первое условие отбора

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

Не работает. Если убрать отборы по "АБП" и "Программа", то работает как то не понятно. Показывает "000", но остальные нету.
   aleks_default
 
5 - 29.06.18 - 09:54
СНАЧАЛА добавить группу а потом В НЕЕ добавить свои отборы
   aleks_default
 
6 - 29.06.18 - 09:55
Ты что с Урала?
   antihacker
 
7 - 29.06.18 - 10:09
ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;

        
        //рррр = Параметры.АБП;

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

        КонецЕсли;


            ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            ГруппаОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код");
            ГруппаОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            ГруппаОтбора.Использование = Истина;
            ГруппаОтбора.ПравоеЗначение = "000";
   antihacker
 
8 - 29.06.18 - 10:10
Опять не работает.
  aleks_default, С Юга.
   aleks_default
 
9 - 29.06.18 - 10:11
(8) Читай еще раз внимательно вторую часть предложения в (5)
   antihacker
 
10 - 29.06.18 - 10:13
Все разобрался.
        СтандартнаяОбработка = Ложь;
        Список.Отбор.Элементы.Очистить();  
        
        ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
        ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;

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

        КонецЕсли;


            ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код");
            ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            ЭлементОтбора.Использование = Истина;
            ЭлементОтбора.ПравоеЗначение = "000";
 
 
   antihacker
 
11 - 29.06.18 - 10:14
Спасибо тебе большущий !
   aleks_default
 
12 - 29.06.18 - 10:15
Давай не тупи больше, земеля
   antihacker
 
13 - 29.06.18 - 10:17
ОК !


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует