///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

#Область ПрограммныйИнтерфейс

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Функция РегистрироватьПоказателиПроизводительности() Экспорт
	Возврат Ложь;
КонецФункции

#Область ТехническаяПоддержка

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

// Текст информации для технической поддержки.
// см. СтандартныеПодсистемыСервер.ИнформацияДляПоддержки, СтандартныеПодсистемыКлиент.ИнформацияДляПоддержки.
//
// Параметры:
//  ИнформацияДляПоддержки - см. СтандартныеПодсистемыКлиентСервер.НоваяИнформацияДляПоддержки.
//
// Возвращаемое значение:
//  Строка - текст информации для технической поддержки.
//
Функция ТекстИнформацииДляПоддержки(ИнформацияДляПоддержки) Экспорт
	
	Результат = Новый Массив;
	
	ШаблонОсновнойИнформации = НСтр(
		"ru = '%1, %2
		|Платформа 1С:Предприятие: %3 %4
		|Библиотека стандартных подсистем: %5'");
	
	ОсновнаяИнформация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		ШаблонОсновнойИнформации,
		ИнформацияДляПоддержки.НазваниеПрограммы,
		ИнформацияДляПоддержки.ВерсияПрограммы,
		ИнформацияДляПоддержки.ВерсияПриложения,
		ИнформацияДляПоддержки.ТипПлатформы,
		ИнформацияДляПоддержки.ВерсияБСП);
	
	Результат.Добавить(ОсновнаяИнформация);
	Результат.Добавить("");
	
	ШаблонСистемнойИнформации = НСтр(
		"ru = 'Системная информация
		|Версия ОС: %1
		|Процессор: %2
		|Оперативная память: %3'");
	
	СистемнаяИнформация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		ШаблонСистемнойИнформации,
		ИнформацияДляПоддержки.ВерсияОС,
		ИнформацияДляПоддержки.Процессор,
		ИнформацияДляПоддержки.ОперативнаяПамять);
	
	Результат.Добавить(СистемнаяИнформация);
	
	Если ЗначениеЗаполнено(ИнформацияДляПоддержки.ИнформацияПрограммыПросмотра) Тогда
		
		ИнформацияПрограммыПросмотра = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Приложение: %1'"), ИнформацияДляПоддержки.ИнформацияПрограммыПросмотра);
		
		Результат.Добавить(ИнформацияПрограммыПросмотра);
		
	КонецЕсли;
	
	Результат.Добавить("");
	
	ШаблонДополнительнойИнформации = НСтр(
		"ru = 'Дополнительная информация
		|Имя COM-соединителя: %1
		|Базовая конфигурация: %2
		|Полноправный пользователь: %3
		|Учебная платформа: %4
		|Конфигурация изменена: %5'");
	
	ДополнительнаяИнформация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		ШаблонДополнительнойИнформации,
		ИнформацияДляПоддержки.ИмяCOMСоединителя,
		ИнформацияДляПоддержки.ЭтоБазоваяКонфигурация,
		ИнформацияДляПоддержки.ЭтоПолноправныйПользователь,
		ИнформацияДляПоддержки.ЭтоУчебнаяПлатформа,
		ИнформацияДляПоддержки.КонфигурацияИзменена);
	
	Результат.Добавить(ДополнительнаяИнформация);
	Результат.Добавить("");
	
	Возврат СтрСоединить(Результат, Символы.ПС);
	
КонецФункции

#КонецОбласти

#КонецОбласти
