ДобавитьСтраницыФормыПодбораКонтактов (БСП)

Автор: 1С
ОбщийМодуль.Взаимодействия
БСП

Добавить страницы формы подбора контактов. Динамически формирует общие формы "Адресная книга" и "Подбор контактов" согласно возможным типам контактов.

// Динамически формирует общие формы "Адресная книга" и "Подбор контактов" согласно возможным типам контактов.
//
Процедура ДобавитьСтраницыФормыПодбораКонтактов(Форма) Экспорт
	
	ОписаниеТипаДинамическийСписок = Новый ОписаниеТипов("ДинамическийСписок");
	
	ДобавляемыеРеквизиты = Новый Массив;
	МассивОписанийВозможныхКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
	
	// Создадим динамические списки.
	Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
		Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
			Продолжить;
		КонецЕсли;
		
		ДобавляемыеРеквизиты.Добавить(
			Новый РеквизитФормы("Список_" + ЭлементМассиваОписания.Имя ,ОписаниеТипаДинамическийСписок));
		
	КонецЦикла;
	
	Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
	// Установим в динамические списки основные таблицы и обязательное использование реквизита ЭтоГруппа.
	Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
		Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
			Продолжить;
		КонецЕсли;
		
		Форма["Список_" + ЭлементМассиваОписания.Имя].ОсновнаяТаблица = "Справочник." + ЭлементМассиваОписания.Имя;
		
	КонецЦикла;
	
	Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
		Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
			Продолжить;
		КонецЕсли;
		
		Если НЕ ЭлементМассиваОписания.ЕстьВладелец  Тогда
			
			ЭлементСтраница = Форма.Элементы.Добавить(
				"Страница_" + ЭлементМассиваОписания.Имя,Тип("ГруппаФормы"),Форма.Элементы.СтраницыСписки);
			ЭлементСтраница.Вид                  = ВидГруппыФормы.Страница;
			ЭлементСтраница.ОтображатьЗаголовок  = Истина;
			ЭлементСтраница.Заголовок            = ЭлементМассиваОписания.Представление;
			ЭлементСтраница.Группировка          = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
			
		КонецЕсли;
		
		ЭлементТаблица = Форма.Элементы.Добавить("Таблица_" + ЭлементМассиваОписания.Имя,
			Тип("ТаблицаФормы"),
			Форма.Элементы[?(ЭлементМассиваОписания.ЕстьВладелец,
			"Страница_" + ЭлементМассиваОписания.ИмяВладельца,
			"Страница_" + ЭлементМассиваОписания.Имя)]);
		ЭлементТаблица.ПутьКДанным = "Список_" + ЭлементМассиваОписания.Имя;
		ЭлементТаблица.УстановитьДействие("Выбор", "Подключаемый_СписокСправочникаВыбор");
		ЭлементТаблица.АвтоМаксимальнаяВысота = Ложь;
		ЭлементТаблица.АвтоМаксимальнаяШирина = Ложь;
		Если Форма.ИмяФормы = "ОбщаяФорма.ВыборКонтакта" Тогда
			ЭлементТаблица.РежимВыделения = РежимВыделенияТаблицы.Одиночный;
			ЭлементТаблица.УстановитьДействие("ПриАктивизацииСтроки","Подключаемый_СписокКонтактыПриАктивизацииСтроки");
		КонецЕсли;
		Если ЭлементМассиваОписания.ЕстьВладелец Тогда
			Форма.Элементы["Таблица_" + ЭлементМассиваОписания.ИмяВладельца].УстановитьДействие(
				"ПриАктивизацииСтроки","Подключаемый_СписокВладелецПриАктивизацииСтроки");
			ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
				Форма["Список_" + ЭлементМассиваОписания.Имя], "Владелец", Неопределено, , , Истина);
			ЭлементТаблица.Высота = 5;
			Форма.Элементы["Таблица_" + ЭлементМассиваОписания.ИмяВладельца].Высота = 5;
		Иначе
			ЭлементТаблица.Высота = 10;
		КонецЕсли;
		
		КолонкаСсылка = Форма.Элементы.Добавить(
			"Колонка_" + ЭлементМассиваОписания.Имя + "_Ссылка",Тип("ПолеФормы"),ЭлементТаблица);
		КолонкаСсылка.Вид = ВидПоляФормы.ПолеВвода;
		КолонкаСсылка.ПутьКДанным = "Список_" + ЭлементМассиваОписания.Имя + ".Ссылка";
		КолонкаСсылка.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
		
	КонецЦикла;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ЗаполнитьКонтактыПоПредмету (БСП)

Обработка подбора в управляемой форме

Вызов формы подбора в управляемой форме

УстановитьТекущимКонтакт (БСП)

РассылкаОтчетовПодборДопОтчета (БСП)

ЗаполнитьНайденныеКонтакты (БСП)

АвтоПодборАдреса (БСП)

КонтактПослеЗаписи (БСП)

СоздатьКонтакт (БСП)

TurboConf - расширение Конфигуратора 1С