Имя: Пароль:
1C
1С v8
Отбор информации в 1С 8.3.
,
0 Direx53
 
17.07.17
14:32
Добрый день.Есть динамический список(который находится на форме), в котором есть поле Дата(Берется из регистра сведений).Необходимо сделать выборку по дате путем периода.Я сделал это так: Создал два дополнительных реквизита с типом дата, после разместил их на форме, а так же сделал кнопку "Применить период".На данную кнопку я сделал команду, ну а в команду бахнул такой код:

&НаКлиенте
Процедура ПрименитьПериод(Команда)

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

Т.е.получается, что пользователь выбирает период, после жмет на кнопку, и данные должны отфильтроваться.Подскажите, что я не так делаю, и если есть предложения, как сделать все вот это по другому, готов выслушать их.
1 butterbean
 
17.07.17
14:43
в настройке дин. списка  делаешь отбор по дате типа Дата >= ДатаНач и Дата <= ДатаКон, а своей командой устанавливаешь эти параметры ДатаНач и ДатаКон
2 Direx53
 
17.07.17
14:54
butterbean, несколько не понял где в настройке дин. списка это сделать, ведь если выставить "Дата", то там нет сравнимых полей, ни ДатаНач, ни ДатаКон.
3 НЕА123
 
17.07.17
15:02
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Интервал
4 НЕА123
 
17.07.17
15:04
(3)
сторно.
5 НЕА123
 
17.07.17
15:09
у ГруппаОтбора есть Использование, Применение
6 Direx53
 
17.07.17
15:46
(3)
На данный код ругается,{ОбщаяФорма.ВыборАналитикиРасходов.Форма(131)}: Поле объекта не обнаружено (Интервал)
7 singlych
 
17.07.17
15:49
(0) перепутал Меньше и Больше
8 Имитация работы
 
17.07.17
15:51
(0) Если пользователь нажмет на кнопку дважды с разными периодами, что будет в результате отбора?
9 Волшебник
 
модератор
17.07.17
15:57
(0) Не надо было "бахать". Надо было умно написать.
10 Direx53
 
17.07.17
16:02
(7)
Не помогло
11 Direx53
 
17.07.17
16:02
(8)
Ничего не произойдет
12 Direx53
 
17.07.17
16:03
(9)
Ну чтож, жду вашего предложения кода
13 ejikbeznojek
 
17.07.17
16:43
(0) А ты на том списке можешь щёлкнуть правой кнопой мышки и установить отбор?
14 Direx53
 
17.07.17
16:48
(13)
Да, смогу, но задача была именно в том, чтобы вводился интервал в отдельных полях, чтобы постоянно не делать лишних движений.
15 Имитация работы
 
17.07.17
19:25
(12) Сильно. Так какой результирующий отбор будет наложен  после нажатия, изменения периода и повторного нажатия, бахальщик?
16 Волшебник
 
модератор
17.07.17
19:56
(12) Если список динамический, то он формируется запросом. Условие на период надо наложить в запросе.