gifts2017

Выбор типа для управляемого интерфейса

Опубликовал Тимур Мансорунов (solarisman) в раздел Обработки - Универсальные обработки

Разработка представляет из себя две обработки:
Обработка выбора типа из созданного описания типов
Обработка выбора значения с предварительным выбором типа

Выбор типа осуществляется из дерева, почти как в конфигураторе.

Для работы обработок необходимо в библиотеку картинок подключить 4 картинки из архива, так как стандартных картинок для примитивных типов не существует.

Использование обработок:

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

&НаСервере
Функция ПолучитьОписаниеТиповСправочников()
	
	Возврат Справочники.ТипВсеСсылки();
	
КонецФункции	

&НаКлиенте
Процедура ОбработкаВыбораЭлемента(Значение, ДополнительнеПараметры) Экспорт
	
	Объект.Реквизит = Значение;
	
КонецПроцедуры	

&НаКлиенте
Процедура ОбработкаВыбораТипа(Значение, ДополнительнеПараметры) Экспорт
	
	ОписаниеТипов = Значение;
	
КонецПроцедуры	

Обратите внимание, в примере есть добавление все хсправлчников.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ВыборТипаПрикладныхОбъектов
.zip 12,09Kb
16.06.14
16
.zip 12,09Kb 16 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Петр Лунегов (pvlunegov) 03.02.16 16:13
Спасибо за обработку, помогла!
2. Петр Лунегов (pvlunegov) 03.02.16 16:15
У меня был случай, когда на форме было 2 реквизита с выбором типа.
После долгих мучений смог приспособить вашу обработку под свои нужды.
В этом случае (более 1 выбора значения через диалог выбора типа ), хочу заметить код следующий:

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

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

&НаСервере
Функция ПолучитьОписаниеТиповСправочников()
    
    Возврат Справочники.ТипВсеСсылки();
    
КонецФункции 

&НаКлиенте
Процедура ОбработкаВыбораЭлементаСтруктурнаяЕдиница(Значение, ДополнительнеПараметры) Экспорт
    
    Объект.СтруктурнаяЕдиница = Значение;
    
КонецПроцедуры    

&НаКлиенте
Процедура ОбработкаВыбораЭлементаСтруктурнаяЕдиницаПолучатель(Значение, ДополнительнеПараметры) Экспорт
    
    Объект.СтруктурнаяЕдиницаПолучатель = Значение;
    
КонецПроцедуры    


&НаКлиенте
Процедура ОбработкаВыбораТипаСтруктурнаяЕдиница(Значение, ДополнительнеПараметры) Экспорт
    
    ОписаниеТипов = Значение;
    
КонецПроцедуры  

&НаКлиенте
Процедура ОбработкаВыбораТипаСтруктурнаяЕдиницаПолучатель(Значение, ДополнительнеПараметры) Экспорт
    
    ОписаниеТипов = Значение;
    
КонецПроцедуры  
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа