Возвращает пустую таблицу значений результата запроса на основе его текста
// Возвращает пустую таблицу значений результата запроса на основе его текста
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/85
//
// Параметры:
// ТекстЗапроса - Строка
//
// Возвращаемое значение:
// ТаблицаЗначений
//
// Пример:
// ТекстЗапроса = "ВЫБРАТЬ Код,Наименование,Ссылка ИЗ Справочник.Валюты";
// Результат = ПустаяТаблицаПоТекстуЗапроса(ТекстЗапроса);
// //Результат - ТЗ с колонками Код,Наименование,Ссылка соответствующих типов
//
Функция ПустаяТаблицаПоТекстуЗапроса(Знач ТекстЗапроса) Экспорт
ТаблицаЗначений = Новый ТаблицаЗначений;
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
ПакетыЗапросов = СхемаЗапроса.ПакетЗапросов;
КоличествоПакетов = ПакетыЗапросов.Количество();
Если КоличествоПакетов > 0 Тогда
//Определяем последний пакет с типом выборки
ПакетВыборки = Неопределено;
ТекущийИндекс = КоличествоПакетов - 1;
Пока ПакетВыборки = Неопределено И ТекущийИндекс >= 0 Цикл
ТекущийПакет = ПакетыЗапросов.Получить(ТекущийИндекс);
Если ТипЗнч(ТекущийПакет) = Тип("ЗапросВыбораСхемыЗапроса") Тогда
ПакетВыборки = ТекущийПакет;
Иначе
ТекущийИндекс = ТекущийИндекс - 1;
КонецЕсли;
КонецЦикла;
//Перебираем колонки найденного пакета
Если ПакетВыборки <> Неопределено Тогда
Для Каждого КолонкаЗапроса Из ПакетВыборки.Колонки Цикл
Если ТипЗнч(КолонкаЗапроса) = Тип("КолонкаСхемыЗапроса") Тогда
ТаблицаЗначений.Колонки.Добавить(КолонкаЗапроса.Псевдоним, КолонкаЗапроса.ТипЗначения);
ИначеЕсли ТипЗнч(КолонкаЗапроса) = Тип("КолонкаВложеннаяТаблицаСхемыЗапроса") Тогда
// TODO: Нужно доработать. Такая ситуация возникает, когда в запросе указана выборка по типу ИмяТаблицы.ИмяТЧ.(Колонка1, Колонка2) КАК ТЧ
// ТаблицаЗначений.Колонки.Добавить(КолонкаЗапроса.Псевдоним, Тип("ТаблицаЗначений"));
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Возврат ТаблицаЗначений;
КонецФункции
Создание схемы компоновки данных программно
УстановитьСвойстваДинамическогоСписка (БСП)
МассивУзловПоЗначениямСвойств (БСП)
Определние ПустаяСсылка в Запросе
Отформатированный текст запроса
ТекстЗапросаДляИзвлеченияТекста (БСП)
ТекстЗапросаПолногоОбъемаФайлов (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)