|
Отбор в выборе из списка | ☑ | ||
---|---|---|---|---|
0
apprentice
09.09.17
✎
20:13
|
Доброго времени суток!
Вопрос наверное банален, но все же: Есть документ, у него поле водитель типа СправочникСсылка.РабочийПерсонал; У рабочего персонала есть 2 должности - водитель и грузчик. Хочу чтобы при открытии списка "грузчики" не попадали в список. С формой выбора реализовал, а на список не выходит: &НаСервере Функция ВодителиПолучить() Возврат перечисления.Должности.Водитель; КонецФункции &НаКлиенте Процедура ВодительНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаВыбора= ПолучитьФорму("Справочник.РабочийПерсонал.ФормаВыбора"); ФормаВыбора.Список.Отбор.Элементы.очистить(); //Отбор по должности "Водитель" ЭлементОтбора = ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Должность"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = ВодителиПолучить(); ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ВыбранныйВодитель = ФормаВыбора.ОткрытьМодально(); КонецПроцедуры |
|||
1
AlvlSpb
09.09.17
✎
21:43
|
(0) В перечисления.Должности.Водитель, Водитель предопределенное значение?
|
|||
2
apprentice
09.09.17
✎
22:53
|
(1) да
|
|||
3
AlvlSpb
09.09.17
✎
23:40
|
(2) А что не получается? Не выбирает или форму не открывает? Потому что странно смотрится "ВыбранныйВодитель = ФормаВыбора.ОткрытьМодально();"
Может просто ФормаВыбора.ОткрытьМодально();? |
|||
4
AlvlSpb
09.09.17
✎
23:41
|
Потому что до данного момента все вроде должно работать правильно
|
|||
5
apprentice
10.09.17
✎
00:23
|
Нет, вы не так поняли
Этот код работает верно, только в конце строчку забыл: Объект.Водитель = ВыбранныйВодитель; Это чтобы поле заполнить Проблема в том, что этот код для формы выбора, а я хочу сделать аналогично в форме списка. Пытался как-то так, в результате ничего не меняется(отбор не происходит): &НаКлиенте Процедура ВодительНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаСписка= ПолучитьФорму("Справочник.РабочийПерсонал.ФормаСписка"); ФормаСписка.Список.Отбор.Элементы.очистить(); //Отбор по должности "Водитель" ЭлементОтбора = ФормаСписка.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Должность"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = ВодителиПолучить(); ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ВыбранныйВодитель = ФормаСписка.ОткрытьМодально(); Объект.Водитель = ВыбранныйВодитель; КонецПроцедуры |
|||
6
apprentice
10.09.17
✎
00:24
|
Наверное какую-то базовую вещь не так делаю/понимаю
|
|||
7
AlvlSpb
10.09.17
✎
00:52
|
(5) Все-равно не понимаю
ВыбранныйВодитель = ФормаСписка.ОткрытьМодально(); Объект.Водитель = ВыбранныйВодитель; Как полем выбора может быть модально открытая форма? (6) Других ошибок не вижу (но я и не профи). Раз уж вам категорически не нужны грузчики, попробуйте настроить Список формы списка в свойствах списка (не программно, в форме), укажите в настройках явный фильтр по должности. Заработает? |
|||
8
apprentice
10.09.17
✎
08:39
|
(6)Спасибо огромное! Изменил ПараметрыВыбора, поставил там отбор по должности - все работает
Насчет открыть модально - увидел в другой программе, оттуда перенял. Модально открытая форма, как я понимаю, не является полем выбора. Это просто открытие формы с возвратом выбранного значения. Возвращаемое значение: Тип: Произвольный. Команда закрытия формы. Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено. А вы знаете как по другому не просто открыть форму, но еще и выбранное значение "отловить"? Я пытался, но не нашел( |
|||
9
Филиал-msk
10.09.17
✎
08:59
|
(8) Передать владельца при открытии формы и обработать его событие обработки выбора.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |