Множественный выбор (1Cv82)

Материал из КинтВики
Версия от 10:14, 7 октября 2010; Павел Лазарев (обсуждение | вклад) (Новая страница: «Категория:Примеры кода 1С ==Что нужно для организации множественного выбора (или подбор...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Что нужно для организации множественного выбора (или подбора)

  • Установить свойство "РежимВыбора" для нужной таблицы формы, например:
ЭтаФорма.Элементы.СписокПроцессов.РежимВыбора = Истина
  • Установить свойство формы "ЗакрыватьПриВыборе" в ложь:
ЭтаФорма.ЗакрыватьПриВыборе = Ложь;
  • Желательно установить свойство формы "РежимОткрытияОкна"
форма.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;


Пример

Вызывающая форма:

  • нужно установить обработчик события формы "ОбработкаВыбора"


&НаКлиенте
Процедура ДобавитьСвязаннуюЗадачуВыполнить()
	Если НЕ ЗаписатьНовыйПроцесс("Для добавления связанных задач необходимо записать задачу.") Тогда Возврат; КонецЕсли;
	ВыбратьЗадачуДляУстановкиСвязи("ДобавитьСвязаннуюЗадачу");
КонецПроцедуры


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


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

Вызываемая форма:

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

См. также

пример