Created
October 7, 2019 14:28
-
-
Save a-sitnikov/ff13d0a62e24640c1bfd9ce7c2122c54 to your computer and use it in GitHub Desktop.
Вывести все таблицы запроса в табличный документ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Процедура ВывестиВсеТаблицыЗапроса(ТабДок, Запрос, ВременныеТаблицы, НеВыводитьПоУмолчанию) Экспорт | |
МассивРезультатов = Запрос.ВыполнитьПакет(); | |
Макет = Новый ТабличныйДокумент; | |
Область = Макет.Область(1, 1,); | |
Область.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр; | |
Область.Параметр = "Имя"; | |
Область.Шрифт = Новый Шрифт(,, Истина); | |
ОбластьИмя = Макет.ПолучитьОбласть(1,, 1); | |
ОбластьПустая = Макет.ПолучитьОбласть(2,, 2); | |
ИндекстВТ = 0; | |
ИндексРезультата = 1; | |
ВТПометки = Новый Соответствие; | |
Для каждого СтрокаТЗ из ВременныеТаблицы Цикл | |
ВТПометки.Вставить(СтрокаТЗ.Имя, СтрокаТЗ.Пометка); | |
КонецЦикла; | |
ВременныеТаблицы.Очистить(); | |
Для каждого ВТ из Запрос.МенеджерВременныхТаблиц.Таблицы Цикл | |
НоваяСтрока = ВременныеТаблицы.Добавить(); | |
НоваяСтрока.Имя = ВТ.ПолноеИмя; | |
Если ВТПометки[НоваяСтрока.Имя] = Неопределено Тогда | |
НоваяСтрока.Пометка = (НеВыводитьПоУмолчанию[ВТ.ПолноеИмя] <> Истина); | |
Иначе | |
НоваяСтрока.Пометка = ВТПометки[НоваяСтрока.Имя]; | |
КонецЕсли; | |
КонецЦикла; | |
ТабДок.Очистить(); | |
Для каждого Результат из МассивРезультатов Цикл | |
Если Результат.Колонки.Количество() = 1 | |
И Результат.Колонки[0].Имя = "Количество" Тогда | |
ВТ = Запрос.МенеджерВременныхТаблиц.Таблицы[ИндекстВТ]; | |
Имя = ВТ.ПолноеИмя; | |
ИндекстВТ = ИндекстВТ + 1; | |
НайденныеСтроки = ВременныеТаблицы.НайтиСтроки(Новый Структура("Имя", Имя)); | |
Если НЕ НайденныеСтроки[0].Пометка Тогда | |
Продолжить; | |
КонецЕсли; | |
Таблица = ВТ.ПолучитьДанные().Выгрузить(); | |
Иначе | |
Имя = "Результат " + ИндексРезультата; | |
Таблица = Результат.Выгрузить(); | |
ИндексРезультата = ИндексРезультата + 1; | |
КонецЕсли; | |
ОбластьИмя.Параметры.Имя = Имя; | |
ТабДок.Вывести(ОбластьИмя); | |
ВывестиТаблицу(ТабДок, Таблица); | |
ТабДок.Вывести(ОбластьПустая); | |
КонецЦикла; | |
КонецПроцедуры |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment