Как в 1С 8.3 программно определить тип поля формы реквизита составного типа для управляемых форм?
emsir
Егор Ширялин

Как в 1С 8.3 программно определить тип поля формы реквизита составного типа для управляемых форм?

Если у вас на форме есть поле ввода составного типа (зависимое) и вам нужно установить в нем конкретный тип по значению другого поля (ведущее), то этот код для вас:

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

При этом ведущее поле может быть, например, списком выбора. Организовать его можно так:

  1. Создать реквизит формы с типом "Число".
  2. Вывести его на форму. Взвести флаг "РежимВыбораИзСписка" и определить "СписокВыбора"

Комментарии (0)

Для добавление комментария необходимо авторизоваться.

Вход | Регистрация

Самое обсуждаемое
Дисплей покупателя 1С
6 7322 06.03.2018
Антон Моторин [Motan]
Фриланс в 1С
4 2078 08.04.2023
Егор Ширялин [emsir]