Открытие формы выбора с отбором

Razlagutt 30 2 2

Приведен пример открытия формы выбора с отбором по контрагенту и по периоду, как для управляемых форм так и для обычных.

Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 и более ранних версий - также ОткрытьФормуМодально). Применение альтернативного способа, с получением формы и ее последующим открытием с помощью метода ПолучитьФорму, не рекомендуется.
Подробности

Пример 1 (Управляемые формы). Открыть форму выбора документов корректировок реализаций с отбором по полю формы "Контрагент" типа "СправочникСсылка.Контрагенты" и по полю формы "Период" типа "СтандартныйПериод".

Элементы.СписокДокументов - Табличная часть формы, в которой будет отрабатывать событие "ОбработкаВыбора" после того как будут выбраны документы из формы выбора.

&НаКлиенте
Процедура Подбор(Команда)
	
    НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;

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

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

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
    ПараметрыОтбора.Вставить("РежимВыбора",Истина);
    ПараметрыОтбора.Вставить("МножественныйВыбор",Истина);

    ОткрытьФорму("Документ.КорректировкаРеализации.ФормаВыбора", ПараметрыОтбора, Элементы.СписокДокументов); 
	
КонецПроцедуры

Пример 2 (Обычные формы). Открыть форму выбора документов корректировок реализаций с отбором по полю формы "Контрагент" типа "СправочникСсылка.Контрагенты" и по полю формы "Период" типа "СтандартныйПериод".

ЭлементыФормы.СписокДокументов - Табличная часть формы, в которой будет отрабатывать событие "ОбработкаВыбора" после того как будут выбраны документы из формы выбора.

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

См. также

Открыть форму выбора с отбором (УФ)

ПриВыбореИсполнителя (БСП)

ЗадатьДействиеПриВыбореМакетаПечатнойФормы (БСП)

Установить отбор пользовательских настроек динамического списка

Отбор при начале выбора

Открытие активизация формы

БлокирующаяФормаОткрыта (БСП)

Открытие формы с последующим вызовом формы завершения

ПараметрыОткрытия (БСП)

Модератору