//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирКлиент Экспорт;

#Если Клиент Тогда

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

КонецФункции

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

КонецФункции

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

КонецФункции // ИсследоватьКоллекцию()

//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
//ирПортативный #Если Клиент Тогда
//ирПортативный 	Контейнер = Новый Структура();
//ирПортативный 	Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирПортативный 	Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
//ирПортативный 		ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирПортативный 		ирПортативный.Открыть();
//ирПортативный 	КонецЕсли; 
//ирПортативный #Иначе
//ирПортативный 	ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
//ирПортативный #КонецЕсли
//ирПортативный ирОбщий = ирПортативный.ОбщийМодульЛкс("ирОбщий");
//ирПортативный ирКэш = ирПортативный.ОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ОбщийМодульЛкс("ирСервер");
//ирПортативный ирКлиент = ирПортативный.ОбщийМодульЛкс("ирКлиент");

ирКэш.Получить().ИнициацияОписанияМетодовИСвойств();

#КонецЕсли
