Имя: Пароль:
1C
1С v8
Отбор в форме выбора справочника
, , ,
0 JuixyJes
 
12.04.19
16:12
Недавно в 1С, помогите пожалуйста)) Имеется справочник Сотрудники, есть реквизит Должность, как сделать отбор по должности при открытии  справочника? Должность берется из другого справочника.
1 user-ok
 
12.04.19
16:30
6.0?
7.5?
7.7?
8.х?

Если 8 - ОФ или УФ?
2 dezss
 
12.04.19
16:31
Показывай код открытия справочника.
3 JuixyJes
 
12.04.19
16:36
(1) 8.3 ОФ
4 HardBall
 
12.04.19
16:48
ФормаСписка = Справочники.Персонал.ПолучитьФормуВыбора();
Отбор = ФормаСписка.Отбор;
  
    
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
                   |    Должности.Ссылка
                   |ИЗ
                   |    Справочник.Должности КАК Должности
                   |ГДЕ
                   |    Должности.Код В (4, 10, 13, 17)";
    Выборка = Запрос.Выполнить().Выбрать();
    
    СписокДолжностей = Новый СписокЗначений;
    
    Пока Выборка.Следующий() Цикл
        СписокДолжностей.Добавить(Выборка.Ссылка);    
    КонецЦикла;
    
    Отбор.Должность.ВидСравнения = ВидСравнения.ВСписке;
    Отбор.Должность.Значение = СписокДолжностей;
    Отбор.Должность.Использование = Истина;
    
        
    РезультатВыбора = ФормаСписка.ОткрытьМодально();
5 JuixyJes
 
12.04.19
17:06
(4)

ФормаСписка = Справочники.Сотрудники.ПолучитьФормуВыбора();
Отбор = ФормаСписка.Отбор;
        
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Должности.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Должности КАК Должности
        |ГДЕ
        |    Должности.Код В(2,3)";
    
        
    Выборка = Запрос.Выполнить().Выбрать();
    СписокДолжностей = Новый СписокЗначений;
        
    Пока Выборка.Следующий() Цикл
        
        СписокДолжностей.Добавить(Выборка.Ссылка);
        
    КонецЦикла;
    
    Отбор.Должность.ВидСравнения = ВидСравнения.ВСписке;
    Отбор.Должность.Значение = СписокДолжностей;
    Отбор.Должность.Использование = Истина;


Поле недоступно для записи (Отбор)
6 sqr4
 
12.04.19
17:07
(5) замени переменную вместо Отбор используй ОтборСписка
7 JuixyJes
 
12.04.19
17:10
(6) Заменила, результат пустой)
8 sqr4
 
12.04.19
17:11
(7) раз заменила, то добавь еще фото в профиль
9 Temai
 
12.04.19
17:12
ФормаСписка.ОтборСписка попробуй
10 sqr4
 
12.04.19
17:14
(9) да ты на запрос погляди в отбор
11 JuixyJes
 
12.04.19
17:17
(10) Совсем ничего не поняла, что мне сделать то?
12 dezss
 
12.04.19
17:17
(11) в (8) написано)
13 JuixyJes
 
12.04.19
17:25
(12) Как только так сразу))
14 JuixyJes
 
12.04.19
17:34
Всем спасибо, проблема решилась вот так.

ФормаСписка = Справочники.Сотрудники.ПолучитьФормуВыбора();
ОтборСписка = ФормаСписка.Отбор;
        
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Должности.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Должности КАК Должности
        |ГДЕ
        |    Должности.Наименование = ""Менеджер""";
    
        
    Выборка = Запрос.Выполнить().Выбрать();
    СписокДолжностей = Новый СписокЗначений;
        
    Пока Выборка.Следующий() Цикл
        
        СписокДолжностей.Добавить(Выборка.Ссылка);
        
    КонецЦикла;
    
    Отбор.Должность.ВидСравнения = ВидСравнения.ВСписке;
    Отбор.Должность.Значение = СписокДолжностей;
    Отбор.Должность.Использование = Истина;
15 JuixyJes
 
12.04.19
17:34
Только возник еще один вопрос, как вызвать эту процедуру только с определенной формы документа?