![]() |
|
Ограничить список выбора в Управляемой форме | ☑ | ||
---|---|---|---|---|
0
Быдло замкадное
08.05.18
✎
12:24
|
Привет, подскажите как по феншую сделать ограничение в управляемой форме.
Есть поле выбора, тип справочник, хочу ограничить значения выбора программно, заполняю "СписокВыбора" &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Элементы.Этап.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере()); КонецПроцедуры В отладчике в Элементы.Этап.СписокВыбора вроде 2 элемента, все ОК. Но в выпадающем списке все подряд, да еще и задвоения (всего в справочнике 3 элемента) https://s8.hostingkartinok.com/uploads/images/2018/05/a5f0e2861d2a63ed04ee7b909591aa8c.jpg |
|||
1
Fragster
гуру
08.05.18
✎
12:25
|
СтандартнаяОбработка = ложь
|
|||
2
Быдло замкадное
08.05.18
✎
12:26
|
я уж молчу о том что при нажатии на "стрелочку выбора" обработчики НачалоВыбора и НачалоВыбораИзСписка вообще не срабатывают по точке останова... Это вообще непонятно, какое событие отлавливать?
&НаКлиенте Процедура ЭтапНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) //СтандартнаяОбработка = Ложь; //ДанныеВыбора = ПолучитьСписокЭтаповНаСервере(); КонецПроцедуры &НаКлиенте Процедура ЭтапНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) //СтандартнаяОбработка = Ложь; //Элемент.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере()); КонецПроцедуры |
|||
3
Быдло замкадное
08.05.18
✎
12:30
|
(1) добавил, не помогло..
|
|||
4
Fragster
гуру
08.05.18
✎
12:32
|
а для (0) еще у элемента управления надо поставить галку "режим выбора из списка"
|
|||
5
Fragster
гуру
08.05.18
✎
12:32
|
а (1) не смотреть, да :)
|
|||
6
Быдло замкадное
08.05.18
✎
12:40
|
(4) Да! После установки галки и ПриСозданииНаСервере заработало. И точка останова в ЭтапНачалоВыбора!
Спасибо |
|||
7
Быдло замкадное
08.05.18
✎
12:56
|
теперь новый прикол. Если выбрать значение то в поле пусто))
И при открытии поле пустое. Я уже использую процедуру: &НаКлиенте Процедура ЭтапНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДанныеВыбораСписокЗначений = Новый СписокЗначений; ДанныеВыбораСписокЗначений.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере()); ДанныеВыбора = ДанныеВыбораСписокЗначений; КонецПроцедуры В выпадающем списке правильные 2 значения. |
|||
8
Buster007
08.05.18
✎
13:08
|
ограничение выбора накладывается не списком выбора, а в параметрах выбора реквизита, или связях параметров выбора.
костыли это не круто. |
|||
9
Быдло замкадное
08.05.18
✎
13:09
|
нашел тут решение
https://www.forum.mista.ru/topic.php?id=701819 "Вообщем, если кому интересно, нашелся такой рабочий вариант: у поля формы: КнопкаВыпадающегоСписка = истина РежимВыбораИзСписка = ложь для того чтобы строить список значений в момент нажатия на треугольничек срабатывает только одно событие "Автоподбор"(НачалоВыбора и началовыбораизспика не срабатывают) пишем следующее: &НаКлиенте Процедура ВыборЗаказаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Список = Новый СписокЗначений(); СформироватьСписокЗаказовНаСепрвереБезКонтекстаИзЗапроса(Список,Объект.владелец); ДанныеВыбора=список; КонецПроцедуры" Но оно у меня не работает! Выдает на выбор все 3 элемента. Эта 8.3 еще сырая...(с) банальное действие сделать не могу. На обычных формах за минуту делается. |
|||
10
Быдло замкадное
08.05.18
✎
13:10
|
(8) у меня эти значения хранятся в отдельном регистре сведений. А в параметрах выбора только реквизиты документа. Значит нельзя использовать параметры выбора?
|
|||
11
Buster007
08.05.18
✎
13:17
|
можно попробовать это проделать в процедуре ОбработкаПолученияДанныхВыбора() или как-то так. В параметры выбора надо передать значение по которому осуществлять отбор. Дальше сам разберешься
|
|||
12
Быдло замкадное
08.05.18
✎
13:50
|
(11) не пашел похожей процедуры.
Вобщем жесть эти УФ. Пока решения не нашел |
|||
13
Мыш
08.05.18
✎
13:53
|
(12) Модуль менеджера того справочника, значения которого хочешь ограничить.
|
|||
14
Fragster
гуру
08.05.18
✎
14:01
|
(7) кроме режима выбора из списка и установки списка выбора все остальное убери
|
|||
15
Fragster
гуру
08.05.18
✎
14:01
|
(13)(11) это имеет смысл, если подобная конструкция используется более чем в одном поле ввода
|
|||
16
Быдло замкадное
08.05.18
✎
14:28
|
(14) да у меня так и есть. Только надо было Элемент.СписокВыбора использовать а не ДанныеВыбора.
У меня сработал только данный метод: Галка режим выбора из списка &НаКлиенте Процедура ЭтапНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Элемент.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере()); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Элементы.Этап.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере()); КонецПроцедуры Про создании на сервере нужно что бы при открытии документа поле не было пустым... (Без данного кода в старых документах элемент при открытии пустой был.) Это все в 1С:Предприятие 8.3 (8.3.10.2561) Подозреваю что на более поздних платформах и по другому можно. И на 8.2 |
|||
17
Buster007
08.05.18
✎
14:37
|
(15) это конструкция создана для этих случаев и не важно в каком количестве мест это используется. Тем более, как обычно бывает, сегодня только в одном месте, а завтра в 2х. Короче, лепите как хотите )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |