Имя: Пароль:
1C
1С v8
УФ. Поле со списком значений
0 Slon747
 
23.02.21
17:26
Нужно в поле заполнять список значений справочника "Пользователи".
Создал на форме реквизит МенеджерДоговоров с типом "Список значений".
На закладке Объект указал тип значения "СправочникСсылка.Пользователи".
Добавил элемент формы Поле и указал ПутьКДанным - МенеджерДоговоров.
Но в режиме Предприятия при добавлении элемента в список значения вываливаются все типы (булево, число, документы и пр).
Почему так?
1 ДедМорроз
 
23.02.21
19:47
Если на форме нужно заполнять список,то это таблица формы с источником данных список значений,а никак не поле.
2 Fedor-1971
 
24.02.21
09:27
(0) Походу, СписокЗначений таки не имеет типа у элементов, вот тебя и плющит
Попробуй перезапустить 1С под отладчиком и посмотри на ОграничениеТипов у списка значений
3 Slon747
 
24.02.21
09:58
(1)(2) Но в обычных формах можно добавить поле ввода с типом "Список значений", указать тип справочника и в него добавлять данные, уже с отбором по этому справочнику.
В УФ так нельзя?
4 Федя Тяпкин
 
24.02.21
10:01
(0) В ПриСозданииНаСервере() как то так
ЭтаФорма.Отчет.Контрагент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
5 Slon747
 
24.02.21
10:12
(4) Попробовал, не помогает:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ЭтаФорма.МенеджерДоговоров.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Пользователи");
    
КонецПроцедуры

Также пробовал в ПриОткрытии на клиенте:
Элементы.МенеджерДоговоров.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Пользователи");

Все равно нет ограничения типа.
6 Федя Тяпкин
 
24.02.21
10:15
(5) код рабочий. попробуй не ЭтаФорма.ПолеСписка а ЭтаФорма.РеквизитФормы.ПолеСписка
7 Slon747
 
24.02.21
10:23
(6) Не понял. У меня и Поле называется МенеджерДоговоров и реквизит формы тоже так называется.

Также пробовал НачалоВыбора:

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

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

Код отрабатывает, но отбора по типу нет.
8 Федя Тяпкин
 
24.02.21
10:27
https://prnt.sc/105ftov
Для этого примера код такой:
ЭтаФорма.Отчет.Контрагент.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Контрагенты");
9 Slon747
 
24.02.21
10:48
(8) Не пойму.
У меня основной реквизит Объект.
Но реквизит МенеджерДоговоров находится не в ветке Объект, а на том же уровне.
10 Saval1986
 
24.02.21
11:19
(0) Вам нужно просто чтобы МенеджерДоговоров выбирался из списка?
11 vicof
 
24.02.21
11:32
(9) Значит это реквизит формы, а не реквизит объекта.
12 Slon747
 
24.02.21
11:51
Всё заработало.
Похоже, проблема была в том, что при открытии у меня восстанавливаются значения реквизитов формы из настроек.
Т.к. там был тип Справочник, а не СписокЗначений, то сбоило.