Имя: Пароль:
1C
1С v8
УФ Ограничение типа
,
0 Невский Александр
 
03.03.12
21:26
Переношу обработку с обычных форм на упраляемые, толстый клиент.
В обычных формах написано ПриОткрытии обработки

   Типы = Новый Массив;
   ВидыТипов = Новый Структура("Справочники,Документы");
   Для каждого КлючИЗначение Из ВидыТипов Цикл
       Для каждого ОбъектМетаданных Из Метаданные[КлючИЗначение.Ключ] Цикл
           Если ОбъектМетаданных.ТабличныеЧасти.Количество() Тогда
               Типы.Добавить(Тип(СтрЗаменить(ОбъектМетаданных.ПолноеИмя(),".","Ссылка.")));
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   
   ЭлементыФормы.СсылкаИсточника.ОграничениеТипа = Новый ОписаниеТипов(Типы);

В управляемых формах выполняется этот же блок - массив Типы заполняется, но ОграничениеТипа не срабатывает - почему-то после выполнения - пусто (в обычных формах - все нормально срабатывает).

Дополнительно - в управляемых формах ссылается на Объект.СсылкаИсточника (и там и там - ее тип - "ЛюбаяСсылка")

Подскажите - почему не работает, и как можно сделать так, чтобы заработало?
1 a_alenkin
 
03.03.12
21:53
В управляемых формах нет ЭлементыФормы
Есть просто Элементы
2 Невский Александр
 
03.03.12
22:25
(1) Да это понятно, естественно в УФ у меня написано Элементы (этот кусок я скопировал из обработки с обычными формами)
Вопрос в том, что на форме есть элемент. ссылается на реквизит обработки - СсылкаИсточник. ее тип - Любая ссылка

Но при открытии формы в обработке с обычными формами тип ограничивается
ЭлементыФормы.СсылкаИсточника.ОграничениеТипа = Новый ОписаниеТипов(Типы);

А в управляемых формах нет - предлагает выбрать все типы, попадающие под тип - "Любая ссылка". а как видно из примера - нужны только документы и справочники
3 Невский Александр
 
03.03.12
22:26
Несмотря на то, что в процедуре при создании формы прописано
Элементы.СсылкаИсточника.ОграничениеТипа = Новый ОписаниеТипов(Типы);

Подскажите - как сделать ограничение типа в УФ?
4 Невский Александр
 
04.03.12
10:02
ап
5 experimentator76
 
04.03.12
11:38
(0) сам не проверял - лениво
попробуй тип не любая ссылка а составной из Д и С
6 a_alenkin
 
04.03.12
11:58
(4) точно делал - но не помню как - мне на форуме здесь и подсказали
исходников найти не могу
на днях придется заново делать - если что выложу)))
помню токо что там все очень просто
7 a_alenkin
 
04.03.12
12:00
вроде надо присваивать пустое значение составного типа - попробуй так
8 Невский Александр
 
04.03.12
13:46
А как задать то?

Пишу вот так -    

Типы = Новый Массив;
Типы.Добавить("СправочникСсылка");
Типы.Добавить("ДокументСсылка");
Элементы.СсылкаИсточника.ДоступныеТипы = Новый ОписаниеТипов(Типы);

Не получается
9 jump if zero
 
04.03.12
14:03
Типы = Новый Массив;
    Для Каждого ТипЗ ИЗ Справочники.ТипВсеСсылки().Типы() Цикл
         Типы.Добавить( ТипЗ);
     КонецЦикла;
     Для Каждого ТипЗ ИЗ Документы.ТипВсеСсылки().Типы() Цикл
         Типы.Добавить( ТипЗ);
    КонецЦикла;
   
    Элементы.Реквизит1.ОграничениеТипа = Новый ОписаниеТипов(Типы);
10 Невский Александр
 
04.03.12
14:09
Почему-то все равно все ссылки дает
Может на форме надо какие-нибудь настройки у элемента сделать?
11 Невский Александр
 
04.03.12
14:15
Все получилось :)