Как установить тип для реквизита "произвольного" типа

15. KRubtsov 02.10.12 19:06 Сейчас в теме
Действительно, проверил только что!
Код вида:
Если Элемент.Имя = "НаименованиеПоследнегоСправочника" Тогда
СЗ = ВернутьСписокОбъектов("Справочник");
Элемент.Значение = ЭтаФорма.ВыбратьИзСписка(СЗ, Элемент);
Если Элемент.Значение = Неопределено Тогда
ЭлементыФормы.ГруппаСправочника.Значение = "";
ЭлементыФормы.ГруппаСправочника.Доступность = Ложь;
Иначе
НомСкобки = Найти(Элемент.Значение,"(");
ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка."+Лев(Элемент.Значение,НомСкобки-1));
ЭлементыФормы.ГруппаСправочника.ОграничениеТипа = ОписаниеТипа;
ЭлементыФормы.ГруппаСправочника.Значение = ОписаниеТипа.ПривестиЗначение();
ЭлементыФормы.ГруппаСправочника.Доступность = Истина;
КонецЕсли;
ИначеЕсли Элемент.Имя = "НаименованиеПоследнегоДокумента" Тогда
СЗ = ВернутьСписокОбъектов("Документ");
..................
работает только если у реквизита (у меня это реквизит обработки) ГруппаСправочника.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
16. DmitriiKopasov 13 29.06.16 20:15 Сейчас в теме
А как тоже самое сделать для колонки табличной части. При том, что в каждой строке тип значения должен быть разный?
17. user590331_dimon.karpov 19.09.16 17:49 Сейчас в теме
Вот вариант:
ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.Контрагенты"); // вместо СправочникСсылка.Контрагенты ваше значение 
	ЭлементыФормы.ПолучательПСТретьеЛицо.ОграничениеТипа = ОписаниеТипа; //вместо ПолучательПСТретьеЛицо ваш реквизит
	ЭлементыФормы.ПолучательПСТретьеЛицо.Значение = ОписаниеТипа.ПривестиЗначение()


Надеюсь кому поможет
Nikola_N; InJey; IVKuzmin; pbahushevichG; user1943146; cleaner_it; user1636219; maksa2005; Tolpinski; adhocprog; Ziggurat; sr5; bashta.aleksey; realsevere; Prad2002; json; sarp; wowik; user830833; roket; Oleg.Myslinsky; sergio199; +22 Ответить
18. pavlo 18.01.17 13:05 Сейчас в теме
А как бы назначить тип полю формы произвольного типа для УФ?
Метода Значение там нет.

Вообще не могу толком сделать что то типа отбора в СКД.
Есть ТЧ у справочника, там есть счет, некое поле (реквизит по которому фильтр), условие (это сз типа В списке), а потом поле формы типа произвольный в каждой строке в представлении этой ТЧ. Так вот при выборе "в списке" нужно как то сделать это поле списком значений с ограниченным типом справочников на выбор. Иначе если условие Равно, то просто это поле ТЧ пусть будет типом самого типа реквизита для выбора одного элемента.
Так вот назначить тип не получается. А потом еще как то это хранить в БД нужно.
35. _DaFNa_ 20.03.23 08:35 Сейчас в теме
Может быть, кому-то поможет:
УФ у реквизита произвольного типа
Галку Выбирать Тип ставим, в Режим выбора из списка убираем

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


(18)
Anatolia; user1839716; +2 Ответить
19. Женя.Улыбнись 01.09.09 17:44 Сейчас в теме
Как программно установить тип (например "СправочникСсылка.Фирмы") для реквизита, имеющего тип "произвольный" ?

спасибо!
20. Душелов 4021 01.09.09 18:03 Сейчас в теме
Заполнить его пустой ссылкой справочники "Фирмы", к примеру...
adhocprog; grigpm; bashta.aleksey; inf012; odin-7610; +5 Ответить
21. Женя.Улыбнись 01.09.09 19:08 Сейчас в теме
Сработало, Душелов!

....
inf012; ДахаМузыка; +2 Ответить
22. Borisych 500 02.09.09 01:02 Сейчас в теме
или через ОписаниеТипов или через ПривестиЗначение
23. Душелов 4021 02.09.09 02:16 Сейчас в теме
(4) Согласен. Вариантов много.
24. WKBAPKA 215 02.09.09 14:43 Сейчас в теме
2(1): только после вот такой вот установики типа реквизита, при нажатии кнопки "Очистить" пользователю прийдется выбирать тип реквизита из специального списка.
Правильно делать надо так, если это реквизит формы:

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

вот тогда при очистке значения реквизита не будет необходимости заново выбирать тип реквизита
user787833; adhocprog; sr5; viktor_and_ko; Pank_in; Дмитрий74Чел; +6 Ответить
25. Женя.Улыбнись 03.09.09 12:08 Сейчас в теме
(6): спасибо за подробный пример, но в итоге тип значения остается по прежнему строковым, при том что ОписаниеТипа установилось как надо (((
Плюс ко всему в поле ввода ничего не получается вести кнопка выбора срабатывает впустую, вручную ни одного символа не получается ввести...

приведите еще пример пожалуйста...
26. WKBAPKA 215 03.09.09 13:42 Сейчас в теме
Так ведь сработало, как написал Дешелов?!
27. Женя.Улыбнись 03.09.09 15:04 Сейчас в теме
(8) сработало частично, установилось значение элемента фирмы, но по прежнему не допускает открыть форму списка справочника для перевыбора.

присваивал как пустую ссылку, так и конкретное значение. Перебрал много вариантов:

1.
Фирма=Справочники.Фирмы.найтипокоду("00000001").Ссылка;
ЭлементыФормы.фирма.Значение = Фирма;
2.
Фирма=Справочники.Фирмы.найтипокоду("00000001");
ЭлементыФормы.фирма.Значение = Фирма;
....

Реквизиты Доступность и Только Просмотр проверял...
но доступа к списку справочника почему то нет (((
навреное потому, что тип значения поля ввода на самой форме продолжает оставаться строковым....

P.S. я скоро от этого с ума сойду, помогите плиз !!! )))
28. WKBAPKA 215 03.09.09 18:03 Сейчас в теме
это реквизит формы или табличной части?
29. Женя.Улыбнись 03.09.09 18:59 Сейчас в теме
это реквизит формы отчета
30. WKBAPKA 215 03.09.09 19:17 Сейчас в теме
ЭлементыФормы.Организация.Значение = ОписаниеТипа.ПривестиЗначение(ЭлементыФормы.Организация.Значение)

попробуй вот так
31. Женя.Улыбнись 04.09.09 15:13 Сейчас в теме
попробовал, по прежнему "ЭлементыФормы.Организация.Значение " остается быть текстовым ...

может где то в стандартной конфиге есть несложный пример, где произвольному типу задается конкретный тип и с ним можно работать пользователю непосредственно на форме ?
32. Женя.Улыбнись 04.09.09 17:05 Сейчас в теме
всё стало получаться, когда я поменял тип "произвольный" на Составной "СправочникСсылка.Фирма, СписокЗначений"

вот код при котором всё стало работать...

перем СЗ;
Процедура Флажок1ПриИзменении(Элемент)
	если ЭлементыФормы.Флажок.Значение=Истина тогда
		Фирма=справочники.фирма.ПустаяСсылка();
	иначе
		Фирма=СЗ;
	конецесли;
КонецПроцедуры

сз=новый списокзначений;
ОписаниеТипаФирма = Новый ОписаниеТипов("СправочникСсылка.Фирма,СписокЗначений"); 
ЭлементыФормы.Фирма.ОграничениеТипа = ОписаниеТипаФирма; 
Показать


PS только в случая интерактивного очищения, тип остается таким, каким был перед очищением. Но в это меня устраивает.
alwiz3; dynamicsystems; +2 Ответить
33. Tangram 162 14.02.19 22:17 Сейчас в теме
Пардон, не в ту тему написал...
34. sokol_6630 3 31.10.21 13:54 Сейчас в теме
Сработало:
ОписаниеТипа = Новый ОписаниеТипов("СправочникСсылка.Контрагенты"); // вместо СправочникСсылка.Контрагенты ваше значение
ЭлементыФормы.ПолучательПСТретьеЛицо.ОграничениеТипа = ОписаниеТипа; //вместо ПолучательПСТретьеЛицо ваш реквизит
ЭлементыФормы.ПолучательПСТретьеЛицо.Значение = ОписаниеТипа.ПривестиЗначение()
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот