Версия для печати темы (https://pro1c.org.ua/index.php?s=04909923bbac9980bfc28f764b9c09d8&showtopic=47360)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Программный отбор на форме списка

Автор: l2d808 21.08.18, 15:06

1С:Підприємство 8.3 (8.3.12.1440)

Добрый день уважаемое сообщество. Нужна помощь.Конфигурация самописная.
Делаю Отбор на форме списка.По трём реквизитам. При отборе срабатывает только 1 раз. Второй отбор уже не срабатывает.

Код

&НаСервере
Процедура ВстановитиВідбірМодель()
    Если ЗначениеЗаполнено(ВідбірМодель) Тогда
//ТекЭлементОтбора = Список.Отбор.Элементы;
//ТекЭлементОтбора.Очистить();

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

ИначеЕсли ЗначениеЗаполнено(ВідбірПідрозділ) Тогда
//ТекЭлементОтбора = Список.Отбор.Элементы;
//ТекЭлементОтбора.Очистить();

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


ИначеЕсли ЗначениеЗаполнено(ВідбірНадходження) Тогда
//ТекЭлементОтбора = Список.Отбор.Элементы;
//ТекЭлементОтбора.Очистить();

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

Иначе
ТекЭлементОтбора = Список.Отбор.Элементы;
ТекЭлементОтбора.Очистить();
КонецЕсли;
КонецПроцедуры


Так же делаю и по другому реквизиту :
&НаСервере
Процедура ВстановитиВідбірНадходження()
    Если ЗначениеЗаполнено(ВідбірНадходження) Тогда
ТекЭлементОтбора = Список.Отбор.Элементы;
ТекЭлементОтбора.Очистить();

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

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

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


Автор: sava1 21.08.18, 15:48

приСозданииНаСервере, ПриЧтенииНаСервере

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua