Иногда бывает необходимость получить табличный документ по какому то набору данных. Например, требуется вывести какие то проверочные таблички пользователям или отправить результат запроса почтой. Для таких надобностей создавать специальные отчеты, хранить где-то схему, настройки, не имеет смысла. Получить табличный документ с группировкой из таблицы значений с помощью механизма СКД можно применив эту функцию.
Платные
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование |
Скачано |
Купить файл (только для физ. лиц) |
По подписке PRO
|
Таблица значений в табличный документ (СКД):
.epf 8,81Kb
|
19 |
1 850 руб.
Купить
|
1 SM
Скачать
|
Подписка
PRO — скачивайте любые файлы со
скидкой до 85% из Базы знаний за
2430 руб. в месяц
Оформите подписку на
компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкой
Пример работы на скрине. Текст функции ниже. Обработка с демонстрацией работы приложена. Тестировалась на 8.3.17.1549. Надеюсь будет кому то полезна.

Функция ТаблицаЗначенийВТабличныйДокумент(ТаблицаЗначений, ИменаПолейГруппировки = Неопределено) Экспорт
Схема = Новый СхемаКомпоновкиДанных;
ИсточникДанных = Схема.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "ИсточникДанных1";
ИсточникДанных.ТипИсточникаДанных = "Local";
НаборДанных = Схема.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
НаборДанных.ИмяОбъекта = "ТЗ";
НаборДанных.ИсточникДанных = "ИсточникДанных1";
Настройки = Новый НастройкиКомпоновкиДанных;
Для каждого Колонка Из ТаблицаЗначений.Колонки Цикл
НовоеПоле = НаборДанных.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
НовоеПоле.Поле = Колонка.Имя;
НовоеПоле.ПутьКДанным = Колонка.Имя;
ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Использование = Истина;
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(Колонка.Имя);
КонецЦикла;
ТекущаяГруппировка = Настройки.Структура;
Если ТипЗнч(ИменаПолейГруппировки) = Тип("Массив") И ЗначениеЗаполнено(ИменаПолейГруппировки) Тогда
Для каждого ИмяГруппировки Из ИменаПолейГруппировки Цикл
Если НЕ НаборДанных.Поля.Найти(ИмяГруппировки) = Неопределено Тогда
ГруппировкаДанных = ТекущаяГруппировка.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаДанных.Использование = Истина;
ПолеГруппировки = ГруппировкаДанных.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(ИмяГруппировки);
АвтоВыборПолей = ГруппировкаДанных.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыборПолей = Истина;
ТекущаяГруппировка = ГруппировкаДанных.Структура;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ГруппировкаДанных = ТекущаяГруппировка.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаДанных.Использование = Истина;
АвтоВыборПолей = ГруппировкаДанных.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
АвтоВыборПолей = Истина;
ПараметрВыводаИтогов = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РасположениеПолейГруппировки"));
ПараметрВыводаИтогов.Использование = Истина;
ПараметрВыводаИтогов.Значение = РасположениеПолейГруппировкиКомпоновкиДанных.ОтдельноИТолькоВИтогах;
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = Компоновщик.Выполнить(Схема, Настройки);
ВнешниеНаборы = Новый Структура("ТЗ", ТаблицаЗначений);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.НачатьВывод();
ТабДок = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ПроцессорВывода.ЗакончитьВывод();
Возврат ТабДок;
КонецФункции
ТаблицаЗначений ТабличныйДокумент Функция СКД