Имя: Пароль:
1C
1С v8
8.3.УФ.Отбор в динамическом списке по строковому полю.Задать доступные значения
0 SeiOkami
 
02.07.14
13:00
День добрый!
Собственно, есть форма списка документа. В динамическом списке указан свой запрос, где я, в зависимости от разных условий, получаю строковое поле, которое может быть только тремя значениями (либо "Новый", либо "В работе", либо же "Завершен"). Всё норм, но когда пользователь пытается наложить отбор по этому полю, то ему приходится вручную вводить текст. Можно ли (как, например, в полях СКД) задать "доступные значения", из которых уже пользователь выберет нужное.
1 SeiOkami
 
02.07.14
13:22
уп
2 SeiOkami
 
02.07.14
13:49
up
3 SeiOkami
 
02.07.14
14:27
ап
4 SeiOkami
 
02.07.14
14:47
Неужели никто вообще не знает?
5 Drac0
 
02.07.14
14:48
Пусть отбор делают через реквизит формы ,в котором уже можно указать доступные значения.
6 toys
 
02.07.14
14:52
ну так список на форму кинь...или через стандартный отбор хочешь?
7 mikecool
 
02.07.14
15:04
заведи перечисление, будь мужиком!
8 SeiOkami
 
02.07.14
15:05
(5), в смысле добавить реквизит формы и программно при его изменении устанавливать отбор? А как-то без кода и лишних полей можно?
9 SeiOkami
 
02.07.14
15:05
(6), как раз таки через стандартный отбор хочу
10 SeiOkami
 
02.07.14
15:18
гоп
11 SeiOkami
 
03.07.14
08:15
вверх
12 SeiOkami
 
03.07.14
08:50
help
13 SeiOkami
 
03.07.14
09:19
Неужели настройками никак такое не реализовать?
14 SeiOkami
 
03.07.14
12:30
безнадёга
15 SeiOkami
 
04.07.14
14:54
подниму ещё разок. ну а вдруг
16 PRO100 NigGaZ
 
04.07.14
15:33
Перечисление, или реквизиты формы списка с выпадающим списком, там 3 значения, при выборе из списка устанавливаешь программно отбор!? может быть так...
17 PRO100 NigGaZ
 
04.07.14
15:33
реквизит*
18 PRO100 NigGaZ
 
04.07.14
15:40
[code]
&НаСервере
Процедура УстановитьОтборПоСостояниюСервер()
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Состояние", Состояние, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Состояние));
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗаполнитьСписокВыбораОтбораПоСостояниюСервер(Элементы.ОтборСостояние.СписокВыбора);
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаполнитьСписокВыбораОтбораПоСостояниюСервер(СписокВыбора)
    СтандартнаяОбработка = Истина;
    СписокВыбора.Добавить("ВсеОткрытые", "Новый");
КонецПроцедуры
[/code]
19 PRO100 NigGaZ
 
04.07.14
15:40
[CODE]Не получается CODE :([/CODE]
20 PRO100 NigGaZ
 
04.07.14
15:42
корощпе наверное так проще не надо руками вводить, но отбор только один, если портатить еще 10 минут то можно и множественный запилить с этими тремя статусами )))
21 SeiOkami
 
04.07.14
16:11
Просто суть в том, что по кнопке "Найти" и в стандартной форме редактирования отборов не будут выпадать доступные значения. А это не удобно...

В общем, если других вариантов нет, то я сделал так (мало ли кому понадобится):
Добавил в запросе ДС необязательный (в фигурных кавычках) параметр "Состояние". Вывел на форму поле, у которой путь данных "Список.Параметры[2].Значение" и еще флажок с путём к данным "Список.Параметры[2].Использование" Выходит, что пользователи напрямую редактируют значение параметра ДС и никакого кода не нужно)
Основная теорема систематики: Новые системы плодят новые проблемы.