Добавить страницы формы подбора контактов. Динамически формирует общие формы "Адресная книга" и "Подбор контактов" согласно возможным типам контактов.
// Динамически формирует общие формы "Адресная книга" и "Подбор контактов" согласно возможным типам контактов.
//
Процедура ДобавитьСтраницыФормыПодбораКонтактов(Форма) Экспорт
ОписаниеТипаДинамическийСписок = Новый ОписаниеТипов("ДинамическийСписок");
ДобавляемыеРеквизиты = Новый Массив;
МассивОписанийВозможныхКонтактов = ВзаимодействияКлиентСервер.ОписанияКонтактов();
// Создадим динамические списки.
Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
Продолжить;
КонецЕсли;
ДобавляемыеРеквизиты.Добавить(
Новый РеквизитФормы("Список_" + ЭлементМассиваОписания.Имя ,ОписаниеТипаДинамическийСписок));
КонецЦикла;
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
// Установим в динамические списки основные таблицы и обязательное использование реквизита ЭтоГруппа.
Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
Продолжить;
КонецЕсли;
Форма["Список_" + ЭлементМассиваОписания.Имя].ОсновнаяТаблица = "Справочник." + ЭлементМассиваОписания.Имя;
КонецЦикла;
Для каждого ЭлементМассиваОписания Из МассивОписанийВозможныхКонтактов Цикл
Если ЭлементМассиваОписания.Имя = "Пользователи" Тогда
Продолжить;
КонецЕсли;
Если НЕ ЭлементМассиваОписания.ЕстьВладелец Тогда
ЭлементСтраница = Форма.Элементы.Добавить(
"Страница_" + ЭлементМассиваОписания.Имя,Тип("ГруппаФормы"),Форма.Элементы.СтраницыСписки);
ЭлементСтраница.Вид = ВидГруппыФормы.Страница;
ЭлементСтраница.ОтображатьЗаголовок = Истина;
ЭлементСтраница.Заголовок = ЭлементМассиваОписания.Представление;
ЭлементСтраница.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
КонецЕсли;
ЭлементТаблица = Форма.Элементы.Добавить("Таблица_" + ЭлементМассиваОписания.Имя,
Тип("ТаблицаФормы"),
Форма.Элементы[?(ЭлементМассиваОписания.ЕстьВладелец,
"Страница_" + ЭлементМассиваОписания.ИмяВладельца,
"Страница_" + ЭлементМассиваОписания.Имя)]);
ЭлементТаблица.ПутьКДанным = "Список_" + ЭлементМассиваОписания.Имя;
ЭлементТаблица.УстановитьДействие("Выбор", "Подключаемый_СписокСправочникаВыбор");
ЭлементТаблица.АвтоМаксимальнаяВысота = Ложь;
ЭлементТаблица.АвтоМаксимальнаяШирина = Ложь;
Если Форма.ИмяФормы = "ОбщаяФорма.ВыборКонтакта" Тогда
ЭлементТаблица.РежимВыделения = РежимВыделенияТаблицы.Одиночный;
ЭлементТаблица.УстановитьДействие("ПриАктивизацииСтроки","Подключаемый_СписокКонтактыПриАктивизацииСтроки");
КонецЕсли;
Если ЭлементМассиваОписания.ЕстьВладелец Тогда
Форма.Элементы["Таблица_" + ЭлементМассиваОписания.ИмяВладельца].УстановитьДействие(
"ПриАктивизацииСтроки","Подключаемый_СписокВладелецПриАктивизацииСтроки");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Форма["Список_" + ЭлементМассиваОписания.Имя], "Владелец", Неопределено, , , Истина);
ЭлементТаблица.Высота = 5;
Форма.Элементы["Таблица_" + ЭлементМассиваОписания.ИмяВладельца].Высота = 5;
Иначе
ЭлементТаблица.Высота = 10;
КонецЕсли;
КолонкаСсылка = Форма.Элементы.Добавить(
"Колонка_" + ЭлементМассиваОписания.Имя + "_Ссылка",Тип("ПолеФормы"),ЭлементТаблица);
КолонкаСсылка.Вид = ВидПоляФормы.ПолеВвода;
КолонкаСсылка.ПутьКДанным = "Список_" + ЭлементМассиваОписания.Имя + ".Ссылка";
КолонкаСсылка.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
КонецЦикла;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ЗаполнитьКонтактыПоПредмету (БСП)
Обработка подбора в управляемой форме
Вызов формы подбора в управляемой форме
УстановитьТекущимКонтакт (БСП)
РассылкаОтчетовПодборДопОтчета (БСП)