База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать процедуру печати табличного документа 1С с 7 колонками? › Ответ в теме: Как создать процедуру печати табличного документа 1С с 7 колонками?
Процедура печати табличного документа из 7 колонок с использованием макета в 1С обычно строится так: сначала загружаем макет, затем формируем табличный документ, заполняем его данными, выводим макет с параметрами и показываем результат. Ниже пример процедуры на языке 1С:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Процедура ПечатьТабличногоДокумента(ИсточникДанных) // ИсточникДанных - это, например, выборка из запроса или массив структур с 7 колонками // Получаем макет из конфигурации (предполагается, что макет с именем "МакетТабличногоДокумента" уже создан) Макет = ПолучитьМакет("МакетТабличногоДокумента"); // Создаем компоновщик настроек компоновки данных КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных(); // Загружаем настройки по умолчанию из макета КомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию); // Получаем настройки компоновки данных Настройки = КомпоновщикНастроек.ПолучитьНастройки(); // Если нужно, можно заполнить параметры компоновки, например, передать источник данных // Здесь предполагается, что источник данных уже настроен в макете или в настройках компоновки // Создаем компоновщик макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); // Выполняем компоновку макета с настройками МакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки); // Создаем процессор компоновки данных ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных(); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); // Создаем табличный документ для вывода результата ТабДок = Новый ТабличныйДокумент(); // Создаем процессор вывода результата компоновки в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент(); ПроцессорВывода.УстановитьДокумент(ТабДок); // Выводим данные в табличный документ ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); // Настраиваем отображение табличного документа ТабДок.ОтображатьЗаголовки = Истина; ТабДок.ОтображатьСетку = Истина; ТабДок.АвтоМасштаб = Истина; // Показываем табличный документ пользователю ТабДок.Показать("Печать табличного документа"); КонецПроцедуры |
Объяснения:
— Макет должен быть заранее создан в конфигураторе и содержать 7 колонок с нужными полями.
— ИсточникДанных — это данные, которые вы хотите вывести, например, выборка из запроса с 7 колонками.
— Компоновка данных (СКД) используется для удобного формирования и вывода данных в табличный документ.
— Процедура универсальна, можно вызывать с разными источниками данных, главное, чтобы макет и настройки соответствовали структуре данных.
Если нужен пример с конкретным заполнением табличного документа без СКД, то вот упрощенный вариант:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Процедура ПечатьТабличногоДокументаБезСКД(Данные) // Данные - массив структур с 7 полями: Колонка1, Колонка2, ..., Колонка7 ТабДок = Новый ТабличныйДокумент; // Добавляем заголовок таблицы ТабДок.ВывестиСтроку("Колонка1 | Колонка2 | Колонка3 | Колонка4 | Колонка5 | Колонка6 | Колонка7"); Для Каждого Строка Из Данные Цикл СтрокаТабДок = Строка(Строка.Колонка1) + " | " + Строка(Строка.Колонка2) + " | " + Строка(Строка.Колонка3) + " | " + Строка(Строка.Колонка4) + " | " + Строка(Строка.Колонка5) + " | " + Строка(Строка.Колонка6) + " | " + Строка(Строка.Колонка7); ТабДок.ВывестиСтроку(СтрокаТабДок); КонецЦикла; ТабДок.Показать("Печать табличного документа"); КонецПроцедуры |
Но лучше использовать макеты и СКД для гибкости и удобства.