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