Как ограничить выбор в поле ввода 1с
Перейти к содержимому

Как ограничить выбор в поле ввода 1с

  • автор:

Ограничить список выбора в Управляемой форме

В отладчике в Элементы.Этап.СписокВыбора вроде 2 элемента, все ОК.

Но в выпадающем списке все подряд, да еще и задвоения (всего в справочнике 3 элемента)

я уж молчу о том что при нажатии на "стрелочку выбора" обработчики НачалоВыбора и НачалоВыбораИзСписка вообще не срабатывают по точке останова. Это вообще непонятно, какое событие отлавливать?

&НаКлиенте
Процедура ЭтапНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

//СтандартнаяОбработка = Ложь;
//ДанныеВыбора = ПолучитьСписокЭтаповНаСервере();

&НаКлиенте
Процедура ЭтапНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

//СтандартнаяОбработка = Ложь;
//Элемент.СписокВыбора.ЗагрузитьЗначения(ПолучитьСписокЭтаповНаСервере());

теперь новый прикол. Если выбрать значение то в поле пусто))
И при открытии поле пустое.

Я уже использую процедуру:

&НаКлиенте
Процедура ЭтапНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

В выпадающем списке правильные 2 значения.

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

Но оно у меня не работает! Выдает на выбор все 3 элемента. Эта 8.3 еще сырая. (с) банальное действие сделать не могу.
На обычных формах за минуту делается.

1С 8.x : Поле выбора

Распечатать

Программное создание таблицы значений с условным оформлением  13
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме  11
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Форма

Как активизировать, перевести фокус на необходимый элемент на форме?  7
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Как программно установить событие для элемента формы?  7
//Привяжем к нашей таблице вызов процедуры обработки //события » ПередОкончаниемРедактирования» . процедура должна существовать . ДействиеОбработкаВыбора = Новый Действие(» ОбработкаВыбораЗнач» ); ЭлементыФормы .УстановитьДействие(» Пере Реквизит

1С УФ СписокВыбора поля ввода программно

Стоит начать с того, для чего это может понадобится программно заполнять СписокВыбора в поле ввода:

  • Определенная фильтрация выбираемых данных, отличная от того, что предлагает система.
  • Сделать невозможным выбор пользователя тех данных, которые не связаны логически с другими реквизитам формы.

Все эти моменты возникают например, когда один справочник не является подчиненным другому, но связь между ними есть, согласно неким правилам предметной области. Иногда это просто необходимость сделать защиту от ввода некорректных данных пользователем.

Список выбора с правильной фильтрацией помогает пользователю быстрее вводить данные и позволяет отказаться от открытия формы выбора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *