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