RDT1C/DataProcessors/ирКонсольЗапросов/Ext/ObjectModule.bsl
Администратор 78068c27a6 .
2016-12-04 00:16:49 +03:00

434 lines
31 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//ирМобильный Перем ирМобильный Экспорт;
//ирМобильный Перем ирОбщий Экспорт;
//ирМобильный Перем ирСервер Экспорт;
//ирМобильный Перем ирКэш Экспорт;
//ирМобильный Перем ирПривилегированный Экспорт;
#Если Клиент Тогда
Перем мОбъектЗапроса Экспорт; // запрос
Перем мКомандаADO Экспорт; // запрос
Перем мСоединениеADO Экспорт; // запрос
Перем мWMIService Экспорт; // запрос
Перем мСтрокаЗапроса;
Перем мРежимРедактора Экспорт;
Перем мСсылка Экспорт;
Перем мРедактируемыйНаборДанных Экспорт;
Перем мРежимОтладки Экспорт;
Перем мКоллекцияДляЗаполнения Экспорт;
Функция ПолучитьНовуюТаблицуПараметров()
ТаблицаПараметров = Новый ТаблицаЗначений;
// Порядок должен соответствовать установленному в табличном поле!
ТаблицаПараметров.Колонки.Добавить("ИмяПараметра");
ТаблицаПараметров.Колонки.Добавить("ЭтоВыражение");
ТаблицаПараметров.Колонки.Добавить("ТипЗначения");
ТаблицаПараметров.Колонки.Добавить("НеИспользоватьОграничениеТипа");
ТаблицаПараметров.Колонки.Добавить("Значение"); // Без колонки ТП
ТаблицаПараметров.Колонки.Добавить("НИмяПараметра"); // Без колонки ТП
Возврат ТаблицаПараметров;
КонецФункции // ПолучитьНовуюТаблицуПараметров()
Процедура ИнициализацияСлужебногоРежима()
ЭтотОбъект.ИспользоватьАвтосохранение = Ложь;
мСтрокаЗапроса = ДеревоЗапросов.Строки.Добавить();
мСтрокаЗапроса.ПараметрыЗапроса = ПолучитьНовуюТаблицуПараметров();
КонецПроцедуры // ИнициализацияСлужебногоРежима
Процедура ДобавитьПараметрыИзЗапроса(пЗапросОтладки, пТаблицаПараметров, ОписаниеТиповЭлементаУправленияПараметра)
МаркерНеверныхПараметров = "Неверные параметры";
ЗапросОтладки = Новый Запрос(пЗапросОтладки.Текст);
ЗапросОтладки.МенеджерВременныхТаблиц = пЗапросОтладки.МенеджерВременныхТаблиц;
Попытка
ПараметрыЗапроса = ЗапросОтладки.НайтиПараметры();
Исключение
Сообщить(ОписаниеОшибки());
ПараметрыЗапроса = Новый Массив;
КонецПопытки;
// Получим значения использованных в тексте параметров
Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
Если пТаблицаПараметров.Найти(ПараметрЗапроса.Имя, "НИмяПараметра") <> Неопределено Тогда
Продолжить;
КонецЕсли;
ИмяПараметра = ПараметрЗапроса.Имя;
СтрокаПараметров = пТаблицаПараметров.Добавить();
СтрокаПараметров.ИмяПараметра = ИмяПараметра;
ирОбщий.ОбновитьКопиюСвойстваВНижнемРегистреЛкс(СтрокаПараметров, "ИмяПараметра");
СтрокаПараметров.ЭтоВыражение = Ложь;
СтрокаПараметров.ТипЗначения = ПараметрЗапроса.ТипЗначения;
ЗначениеПараметраЗапроса = 0;
Если пЗапросОтладки.Параметры.Свойство(ИмяПараметра, ЗначениеПараметраЗапроса) Тогда
ТипЗначенияПараметра = ТипЗнч(ЗначениеПараметраЗапроса);
Если ТипЗначенияПараметра = Тип("Массив") Тогда
СписокЗначений = Новый СписокЗначений;
ПреобразованиеУспешно = Истина;
Для Каждого ЭлементМассива Из ЗначениеПараметраЗапроса Цикл
Если ОписаниеТиповЭлементаУправленияПараметра.СодержитТип(ТипЗнч(ЭлементМассива)) Тогда
СписокЗначений.Добавить(ЭлементМассива);
Иначе
ПреобразованиеУспешно = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПреобразованиеУспешно Тогда
ЗначениеПараметраЗапроса = СписокЗначений;
ТипЗначенияПараметра = ТипЗнч(ЗначениеПараметраЗапроса);
Сообщить("Значение параметра """ + ИмяПараметра + """ было преобразовано из массива в список значений", СтатусСообщения.Внимание);
КонецЕсли;
КонецЕсли;
СтрокаПараметров.Значение = ЗначениеПараметраЗапроса;
Если ТипЗначенияПараметра = Тип("СписокЗначений") Тогда
СтрокаПараметров.ЭтоВыражение = 2;
ИначеЕсли ОписаниеТиповЭлементаУправленияПараметра.СодержитТип(ТипЗначенияПараметра) Тогда
Иначе
СтрокаПараметров.НеИспользоватьОграничениеТипа = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Получим значения установленных параметров
ДополнитьТаблицуПараметровЗапросаПоСтруктуре(пЗапросОтладки.Параметры, пТаблицаПараметров);
КонецПроцедуры // ДобавитьПараметрыИзЗапроса()
Функция ДополнитьТаблицуПараметровЗапросаПоСтруктуре(СтруктураПараметров, пТаблицаПараметров)
Для каждого КлючИЗначение Из СтруктураПараметров Цикл
Если пТаблицаПараметров.Найти(НРег(КлючИЗначение.Ключ), "НИмяПараметра") <> Неопределено Тогда
Продолжить;
КонецЕсли;
ИмяПараметра = КлючИЗначение.Ключ;
СтрокаПараметров = пТаблицаПараметров.Добавить();
СтрокаПараметров.ИмяПараметра = ИмяПараметра;
ирОбщий.ОбновитьКопиюСвойстваВНижнемРегистреЛкс(СтрокаПараметров, "ИмяПараметра");
СтрокаПараметров.ЭтоВыражение = Ложь;
СтрокаПараметров.Значение = КлючИЗначение.Значение;
Если ТипЗнч(КлючИЗначение.Значение) = Тип("СписокЗначений") Тогда
СтрокаПараметров.ЭтоВыражение = 2;
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции
Функция ОткрытьПоОбъектуМетаданных(ПолноеИмяМД) Экспорт
ИнициализацияСлужебногоРежима();
ТекстЗапроса = "ВЫБРАТЬ
| *
|ИЗ
| " + ПолноеИмяМД + " КАК Т";
мСтрокаЗапроса.ТекстЗапроса = ТекстЗапроса;
мСтрокаЗапроса.Запрос = ПолноеИмяМД;
Форма = ЭтотОбъект.ПолучитьФорму();
Форма.Открыть();
Возврат Форма;
КонецФункции
// ТекстЗапроса - Строка - используется только в случае, если сам объект не содержит свойста с текстом (например WMI)
Функция ОткрытьДляОтладки(Запрос, ТипЗапроса = "Обычный", ИмяЗапроса = "Запрос для отладки", Модально = Истина, ТекстЗапроса = "") Экспорт
ИнициализацияСлужебногоРежима();
Если ТипЗнч(Запрос) = Тип("COMОбъект") Тогда
ТипЗапроса = "WQL";
мWMIService = Запрос;
Попытка
Пустышка = Запрос.CommandText;
ЭтоКомандаADO = Истина;
ТипЗапроса = "ADO";
мКомандаADO = Запрос;
Исключение
ЭтоКомандаADO = Ложь;
Попытка
Пустышка = Запрос.ConnectionString;
ЭтоСоединениеADO = Истина;
ТипЗапроса = "ADO";
мСоединениеADO = Запрос;
Исключение
ЭтоСоединениеADO = Ложь;
КонецПопытки;
КонецПопытки;
Иначе
мОбъектЗапроса = Запрос;
ТекстЗапроса = мОбъектЗапроса.Текст;
КонецЕсли;
мСтрокаЗапроса.ТекстЗапроса = ТекстЗапроса;
мСтрокаЗапроса.Запрос = ИмяЗапроса;
мСтрокаЗапроса.ТипЗапроса = ТипЗапроса;
мРежимОтладки = Истина;
Форма = ЭтотОбъект.ПолучитьФорму();
ТаблицаПараметровЗапроса = Форма.ЭлементыФормы.Параметры.Значение;
Если ТипЗнч(Запрос) = Тип("COMОбъект") Тогда
Если ЭтоКомандаADO Тогда
СтруктураПараметров = Новый Структура();
Для Каждого Parameter Из Запрос.Parameters Цикл
КлючПараметра = Parameter.Name;
Если Не ирОбщий.ЛиИмяПеременнойЛкс(КлючПараметра) Тогда
КлючПараметра = "_" + КлючПараметра;
КонецЕсли;
Если Не ирОбщий.ЛиИмяПеременнойЛкс(КлючПараметра) Тогда
КлючПараметра = КлючПараметра + XMLСтрока(СтруктураПараметров.Количество());
КонецЕсли;
Если СтруктураПараметров.Свойство(КлючПараметра) Тогда
ВызватьИсключение "Не удалось назначить параметру уникальное имя";
КонецЕсли;
СтруктураПараметров.Вставить(КлючПараметра, Parameter.Value);
КонецЦикла;
ДополнитьТаблицуПараметровЗапросаПоСтруктуре(СтруктураПараметров, ТаблицаПараметровЗапроса);
КонецЕсли;
Иначе
ДобавитьПараметрыИзЗапроса(Запрос, ТаблицаПараметровЗапроса, Форма.ЭлементыФормы.Параметры.Колонки.Значение.ЭлементУправления.ТипЗначения);
КонецЕсли;
Если Модально Тогда
Возврат Форма.ОткрытьМодально();
Иначе
Форма.Открыть();
КонецЕсли;
КонецФункции
//Параметры:
// Коллекция - ТаблицаЗначений, ДеревоЗначений - если без колонок, то результату разрешается иметь произвольные колонки, иначе они фиксированы
// Запрос - Запрос, *Неопределено - начальный запрос
Функция ОткрытьДляЗаполненияКоллекции(КоллекцияДляЗаполнения, Запрос = Неопределено, ТипЗапроса = "Компоновка", Имя = "Запрос") Экспорт
мКоллекцияДляЗаполнения = КоллекцияДляЗаполнения;
мРежимЗаполненияКоллекции = Истина;
ИнициализацияСлужебногоРежима();
мСтрокаЗапроса.Запрос = Имя;
мСтрокаЗапроса.ТипЗапроса = ТипЗапроса;
Если Запрос <> Неопределено Тогда
ТекстЗапроса = Запрос.Текст;
мСтрокаЗапроса.ТекстЗапроса = ТекстЗапроса;
КонецЕсли;
Форма = ЭтотОбъект.ПолучитьФорму();
Если Запрос <> Неопределено Тогда
ТаблицаПараметровЗапроса = Форма.ЭлементыФормы.Параметры.Значение;
ДобавитьПараметрыИзЗапроса(Запрос, ТаблицаПараметровЗапроса, Форма.ЭлементыФормы.Параметры.Колонки.Значение.ЭлементУправления.ТипЗначения);
КонецЕсли;
Результат = Форма.ОткрытьМодально();
Если Форма.РезультатКоллекция.Количество() > 0 Тогда
Ответ = Вопрос("Хотите заполнить коллекцию полученным результатом?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.ОК Тогда
Возврат Форма.РезультатКоллекция;
КонецЕсли;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция ОткрытьПоПостроителю(Построитель, ИмяЗапроса = "Исполняемый запрос построителя") Экспорт
ИнициализацияСлужебногоРежима();
мСтрокаЗапроса.Запрос = ИмяЗапроса;
ЗапросОтладки = Построитель.ПолучитьЗапрос();
мСтрокаЗапроса.ТекстЗапроса = ЗапросОтладки.Текст;
мСтрокаЗапроса.ТипЗапроса = "Построитель";
Для Каждого ЭлементПараметра Из Построитель.Параметры Цикл
СтрокаПараметров = мСтрокаЗапроса.ПараметрыЗапроса.Добавить();
СтрокаПараметров.ИмяПараметра = ЭлементПараметра.Ключ;
ирОбщий.ОбновитьКопиюСвойстваВНижнемРегистреЛкс(СтрокаПараметров, "ИмяПараметра");
СтрокаПараметров.Значение = ЭлементПараметра.Значение;
Если ТипЗнч(СтрокаПараметров.Значение) = Тип("СписокЗначений") Тогда
СтрокаПараметров.ЭтоВыражение = 2;
СтрокаПараметров.ТипЗначения = СтрокаПараметров.Значение.ТипЗначения;
Иначе
СтрокаПараметров.ЭтоВыражение = Ложь;
СтрокаПараметров.ТипЗначения = Новый ОписаниеТипов(ирОбщий.БыстрыйМассивЛкс(ТипЗнч(СтрокаПараметров.Значение)));
КонецЕсли;
КонецЦикла;
Форма = ЭтотОбъект.ПолучитьФорму();
ДобавитьПараметрыИзЗапроса(ЗапросОтладки, Форма.ЭлементыФормы.Параметры.Значение,
Форма.ЭлементыФормы.Параметры.Колонки.Значение.ЭлементУправления.ТипЗначения);
мРежимОтладки = Истина;
Форма.Открыть();
КонецФункции
Процедура ДобавитьНаборыДанных(Родитель, ПараметрыЗапроса, НаборыДанных)
Для каждого НаборДанных Из НаборыДанных Цикл
лСтрокаЗапроса = Неопределено;
Если ТипЗнч(НаборДанных) = Тип("НаборДанныхЗапросМакетаКомпоновкиДанных") Тогда
лСтрокаЗапроса = Родитель.Строки.Добавить();
лСтрокаЗапроса.Запрос = НаборДанных.Имя;
лСтрокаЗапроса.ТекстЗапроса = НаборДанных.Запрос;
лСтрокаЗапроса.ПараметрыЗапроса = ПараметрыЗапроса.Скопировать();
лСтрокаЗапроса.ТипЗапроса = "Компоновка";
ИначеЕсли ТипЗнч(НаборДанных) = Тип("НаборДанныхОбъединениеМакетаКомпоновкиДанных") Тогда
лСтрокаЗапроса = Родитель.Строки.Добавить();
лСтрокаЗапроса.Запрос = "Объединение - " + НаборДанных.Имя;
лСтрокаЗапроса.ТипЗапроса = "Папка";
ДобавитьНаборыДанных(лСтрокаЗапроса, ПараметрыЗапроса, НаборДанных.Элементы);
КонецЕсли;
Если НаборДанных.ВложенныеНаборыДанных.Количество() > 0 Тогда
Если лСтрокаЗапроса = Неопределено Тогда
лСтрокаЗапроса = Родитель.Строки.Добавить();
лСтрокаЗапроса.Запрос = НаборДанных.Имя;
лСтрокаЗапроса.ТипЗапроса = "Папка";
КонецЕсли;
ДобавитьНаборыДанных(лСтрокаЗапроса, ПараметрыЗапроса, НаборДанных.ВложенныеНаборыДанных);
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ДобавитьНаборыДанных()
Функция ОткрытьПоМакетуКомпоновки(МакетКомпоновки, Модально = Истина, СхемаКомпоновки = Неопределено) Экспорт
//ИнициализацияСлужебногоРежима();
ЭтотОбъект.ИспользоватьАвтосохранение = Ложь;
ДобавитьМакетКомпоновки(ДеревоЗапросов, МакетКомпоновки);
мРежимОтладки = Истина;
Форма = ЭтотОбъект.ПолучитьФорму();
Если Модально Тогда
Возврат Форма.ОткрытьМодально();
Иначе
Форма.Открыть();
КонецЕсли;
КонецФункции
Функция ДобавитьМакетКомпоновки(СтрокаДереваЗапросов, МакетКомпоновки)
ПараметрыЗапроса = ПолучитьНовуюТаблицуПараметров();
ЗаполнитьПараметрыИзМакетаКомпоновки(ПараметрыЗапроса, МакетКомпоновки);
ДобавитьНаборыДанных(СтрокаДереваЗапросов, ПараметрыЗапроса, МакетКомпоновки.НаборыДанных);
Для Каждого ЭлементТела Из МакетКомпоновки.Тело Цикл
Если ТипЗнч(ЭлементТела) = Тип("ВложенныйОбъектМакетаКомпоновкиДанных") Тогда
Если ЭлементТела.КомпоновкаДанных.НаборыДанных.Количество() > 0 Тогда
лСтрокаЗапроса = СтрокаДереваЗапросов.Строки.Добавить();
лСтрокаЗапроса.Запрос = ЭлементТела.Имя;
лСтрокаЗапроса.ТипЗапроса = "Папка";
ДобавитьМакетКомпоновки(лСтрокаЗапроса, ЭлементТела.КомпоновкаДанных);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецФункции
Процедура ЗаполнитьПараметрыИзМакетаКомпоновки(ПараметрыЗапроса, МакетКомпоновки)
Для Каждого Значение Из МакетКомпоновки.ЗначенияПараметров Цикл
СтрокаПараметров = ПараметрыЗапроса.Добавить();
СтрокаПараметров.ИмяПараметра = Значение.Имя;
ирОбщий.ОбновитьКопиюСвойстваВНижнемРегистреЛкс(СтрокаПараметров, "ИмяПараметра");
СтрокаПараметров.Значение = Значение.Значение;
//ПараметрСхемы = Неопределено;
//Если СхемаКомпоновки <> Неопределено Тогда
// ПараметрСхемы = СхемаКомпоновки.Параметры.Найти(Значение.Имя);
//КонецЕсли;
Если ТипЗнч(СтрокаПараметров.Значение) = Тип("СписокЗначений") Тогда
СтрокаПараметров.ЭтоВыражение = 2;
СтрокаПараметров.ТипЗначения = СтрокаПараметров.Значение.ТипЗначения;
//ИначеЕсли Истина
// И ПараметрСхемы <> Неопределено
// И ПараметрСхемы.Выражение <> ""
//Тогда
// СтрокаПараметров.ЭтоВыражение = Истина;
Иначе
СтрокаПараметров.ЭтоВыражение = Ложь;
СтрокаПараметров.ТипЗначения = Новый ОписаниеТипов(ирОбщий.БыстрыйМассивЛкс(ТипЗнч(СтрокаПараметров.Значение)));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция РедактироватьНаборДанныхСхемыКомпоновкиДанных(ВладелецФормы, НаборДанных, Схема) Экспорт
мРежимРедактора = Истина;
мРедактируемыйНаборДанных = НаборДанных;
ИнициализацияСлужебногоРежима();
мСтрокаЗапроса.Запрос = НаборДанных.Имя;
ПараметыСхемы = Схема.Параметры;
Для Каждого ПараметрСхемы Из ПараметыСхемы Цикл
СтрокаПараметров = мСтрокаЗапроса.ПараметрыЗапроса.Добавить();
СтрокаПараметров.ИмяПараметра = ПараметрСхемы.Имя;
ирОбщий.ОбновитьКопиюСвойстваВНижнемРегистреЛкс(СтрокаПараметров, "ИмяПараметра");
СтрокаПараметров.Значение = ПараметрСхемы.Значение;
СтрокаПараметров.ТипЗначения = ПараметрСхемы.ТипЗначения;
Если ПараметрСхемы.Выражение <> "" Тогда
СтрокаПараметров.ЭтоВыражение = Истина;
СтрокаПараметров.Значение = ПараметрСхемы.Выражение;
ИначеЕсли ТипЗнч(ПараметрСхемы.Значение) = Тип("СписокЗначений") Тогда
СтрокаПараметров.ЭтоВыражение = 2;
Иначе
СтрокаПараметров.ЭтоВыражение = Ложь;
КонецЕсли;
КонецЦикла;
мСтрокаЗапроса.ТекстЗапроса = НаборДанных.Запрос;
мСтрокаЗапроса.ТипЗапроса = "Компоновка";
Форма = ЭтотОбъект.ПолучитьФорму(, ВладелецФормы);
Форма.Открыть();
КонецФункции // РедактироватьНаборДанныхСхемыКомпоновкиДанных()
Функция РедактироватьСтруктуруЗапроса(ВладелецФормы, СтруктураЗапроса) Экспорт
мРежимРедактора = Истина;
ИнициализацияСлужебногоРежима();
Если СтруктураЗапроса.Свойство("Имя") Тогда
мСтрокаЗапроса.Запрос = СтруктураЗапроса.Имя;
КонецЕсли;
Если СтруктураЗапроса.Свойство("Ссылка") Тогда
мСсылка = СтруктураЗапроса.Ссылка;
КонецЕсли;
Если СтруктураЗапроса.Свойство("Параметры") Тогда
мСтрокаЗапроса.ПараметрыЗапроса = СтруктураЗапроса.Параметры.Скопировать();
КонецЕсли;
мСтрокаЗапроса.ТекстЗапроса = СтруктураЗапроса.ТекстЗапроса;
Если СтруктураЗапроса.Свойство("ТипЗапроса") Тогда
мСтрокаЗапроса.ТипЗапроса = СтруктураЗапроса.ТипЗапроса;
Иначе
мСтрокаЗапроса.ТипЗапроса = "Построитель";
КонецЕсли;
Форма = ЭтотОбъект.ПолучитьФорму(, ВладелецФормы);
Форма.Открыть();
КонецФункции // РедактироватьСтруктуруЗапроса()
//ирМобильный #Если Клиент Тогда
//ирМобильный Контейнер = Новый Структура();
//ирМобильный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирМобильный Если Не Контейнер.Свойство("ирМобильный", ирМобильный) Тогда
//ирМобильный ПолноеИмяФайлаБазовогоМодуля = ВосстановитьЗначение("ирПолноеИмяФайлаОсновногоМодуля");
//ирМобильный ирМобильный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирМобильный КонецЕсли;
//ирМобильный ирОбщий = ирМобильный.ПолучитьОбщийМодульЛкс("ирОбщий");
//ирМобильный ирКэш = ирМобильный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирМобильный ирСервер = ирМобильный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирМобильный ирПривилегированный = ирМобильный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
//ирМобильный #КонецЕсли
мОбъектЗапроса = Новый Запрос;
мРежимРедактора = Ложь;
мРежимОтладки = Ложь;
// Создадим структуру дерева запросов
ДеревоЗапросов.Колонки.Добавить("Запрос");
ДеревоЗапросов.Колонки.Добавить("ТекстЗапроса");
ДеревоЗапросов.Колонки.Добавить("ПараметрыЗапроса");
ДеревоЗапросов.Колонки.Добавить("СпособВыгрузки", Новый ОписаниеТипов("Число"));
ДеревоЗапросов.Колонки.Добавить("НовыйМенеджерВременныхТаблиц", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("КодОбработкиСтрокиРезультата");
ДеревоЗапросов.Колонки.Добавить("КодПередВыполнениемЗапроса");
ДеревоЗапросов.Колонки.Добавить("КодОбработкиРезультата");
ДеревоЗапросов.Колонки.Добавить("Настройка");
ДеревоЗапросов.Колонки.Добавить("ВыбратьВсеПоля", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("ТипЗапроса", Новый ОписаниеТипов("Строка"));
ДеревоЗапросов.Колонки.Добавить("Длительность", Новый ОписаниеТипов("Число, Строка"));
ДеревоЗапросов.Колонки.Добавить("РазмерРезультата", Новый ОписаниеТипов("Число, Строка"));
ДеревоЗапросов.Колонки.Добавить("ПараметрыWMI");
ДеревоЗапросов.Колонки.Добавить("ПараметрыADO");
ДеревоЗапросов.Колонки.Добавить("СтандартнаяВыгрузкаВДерево", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("АвтовыборкиИтогов", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("ДобавлятьСлужебныеКолонкиРезультата", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("ОбходитьИерархическиеВыборкиРекурсивно", Новый ОписаниеТипов("Булево"));
ДеревоЗапросов.Колонки.Добавить("ВыборкиИтогов");
#КонецЕсли