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

Процедура ЗаполнитьСписокВыбораРежимаЗапуска(Знач СписокВыбораРежимаЗапуска) Экспорт 
	
	СписокВыбораРежимаЗапуска.Добавить(РежимЗапускаКлиентскогоПриложения.Авто);
	СписокВыбораРежимаЗапуска.Добавить(РежимЗапускаКлиентскогоПриложения.ОбычноеПриложение);
	СписокВыбораРежимаЗапуска.Добавить(РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение);

КонецПроцедуры

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

КонецПроцедуры

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

КонецПроцедуры

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

КонецПроцедуры

Функция СсылкиПользователей() Экспорт 
	
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("Ссылка");
	Результат.Колонки.Добавить("ИдентификаторПользователяИБ");
	ОбъектМД = Метаданные.Справочники.Найти("Пользователи");
	Если ОбъектМД <> Неопределено Тогда
		#Если Сервер И Не Сервер Тогда
			ОбъектМД = Метаданные.Справочники.Пользователи;
		#КонецЕсли
		Если ОбъектМД.Реквизиты.Найти("ИдентификаторПользователяИБ") <> Неопределено Тогда
			Запрос = Новый Запрос;
			Запрос.Текст = "
			|ВЫБРАТЬ
			|	Пользователи.Ссылка КАК Ссылка,
			|	Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ
			|ИЗ
			|	Справочник.Пользователи КАК Пользователи
			|";
			Результат = Запрос.Выполнить().Выгрузить();
		КонецЕсли; 
	КонецЕсли; 
	Возврат Результат;
	
КонецФункции

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