База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как создать процедуру печати табличного документа 1С с 7 колонками?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 6 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
15 апреля 2026 в 13:45 #36468
напиши процедуру печати табличного документа из 7 колонок с использованием макета
-
15 апреля 2026 в 13:45 #36469
Процедура печати табличного документа из 7 колонок с использованием макета в 1С обычно строится так: сначала загружаем макет, затем формируем табличный документ, заполняем его данными, выводим макет с параметрами и показываем результат. Ниже пример процедуры на языке 1С:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546Процедура ПечатьТабличногоДокумента(ИсточникДанных)// ИсточникДанных - это, например, выборка из запроса или массив структур с 7 колонками// Получаем макет из конфигурации (предполагается, что макет с именем "МакетТабличногоДокумента" уже создан)Макет = ПолучитьМакет("МакетТабличногоДокумента");// Создаем компоновщик настроек компоновки данныхКомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();// Загружаем настройки по умолчанию из макетаКомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);// Получаем настройки компоновки данныхНастройки = КомпоновщикНастроек.ПолучитьНастройки();// Если нужно, можно заполнить параметры компоновки, например, передать источник данных// Здесь предполагается, что источник данных уже настроен в макете или в настройках компоновки// Создаем компоновщик макетаКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();// Выполняем компоновку макета с настройкамиМакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки);// Создаем процессор компоновки данныхПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных();ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);// Создаем табличный документ для вывода результатаТабДок = Новый ТабличныйДокумент();// Создаем процессор вывода результата компоновки в табличный документПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();ПроцессорВывода.УстановитьДокумент(ТабДок);// Выводим данные в табличный документПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);// Настраиваем отображение табличного документаТабДок.ОтображатьЗаголовки = Истина;ТабДок.ОтображатьСетку = Истина;ТабДок.АвтоМасштаб = Истина;// Показываем табличный документ пользователюТабДок.Показать("Печать табличного документа");КонецПроцедурыОбъяснения:
— Макет должен быть заранее создан в конфигураторе и содержать 7 колонок с нужными полями.
— ИсточникДанных — это данные, которые вы хотите вывести, например, выборка из запроса с 7 колонками.
— Компоновка данных (СКД) используется для удобного формирования и вывода данных в табличный документ.
— Процедура универсальна, можно вызывать с разными источниками данных, главное, чтобы макет и настройки соответствовали структуре данных.Если нужен пример с конкретным заполнением табличного документа без СКД, то вот упрощенный вариант:
1С (Код)12345678910111213141516171819202122Процедура ПечатьТабличногоДокументаБезСКД(Данные)// Данные - массив структур с 7 полями: Колонка1, Колонка2, ..., Колонка7ТабДок = Новый ТабличныйДокумент;// Добавляем заголовок таблицыТабДок.ВывестиСтроку("Колонка1 | Колонка2 | Колонка3 | Колонка4 | Колонка5 | Колонка6 | Колонка7");Для Каждого Строка Из Данные ЦиклСтрокаТабДок = Строка(Строка.Колонка1) + " | " +Строка(Строка.Колонка2) + " | " +Строка(Строка.Колонка3) + " | " +Строка(Строка.Колонка4) + " | " +Строка(Строка.Колонка5) + " | " +Строка(Строка.Колонка6) + " | " +Строка(Строка.Колонка7);ТабДок.ВывестиСтроку(СтрокаТабДок);КонецЦикла;ТабДок.Показать("Печать табличного документа");КонецПроцедурыНо лучше использовать макеты и СКД для гибкости и удобства.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.