Перейти к основному содержимому

Печать, макеты и отчёты 1С

Разработчику
Загрузка эмулятора 1С…

Как пользователь получает результат

После ввода данных в 1С нужны печатные формы (счёт, накладная) и отчёты (остатки, продажи). Платформа предлагает несколько уровней сложности:

ПодходКогда использовать
Макет + табличный документФиксированная печатная форма по шаблону
Отчёт с запросом в модулеПростая выборка и вывод
СКД (система компоновки данных)Гибкие отчёты с полями и группировками
Динамический списокИнтерактивный список на форме без отдельного отчёта

Макет и табличный документ

Макет — объект метаданных (или общий макет) с именованными областями: Шапка, Строка, Подвал. Области рисуют в редакторе макетов как таблицу ячеек с параметрами &ИмяПоля.

Табличный документ — результат вывода: лист для экрана, печати или экспорта в PDF/XLSX.

&НаСервере
Функция СформироватьПечатнуюФорму(ДокументСсылка)
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьОбщийМакет("ПечатьСчета"); // или Макет из отчёта

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Номер = ДокументСсылка.Номер;
ОбластьШапка.Параметры.Дата = ДокументСсылка.Дата;
ТабДок.Вывести(ОбластьШапка);

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
Для Каждого СтрокаТЧ Из ДокументСсылка.Товары Цикл
ОбластьСтрока.Параметры.Товар = СтрокаТЧ.Номенклатура;
ОбластьСтрока.Параметры.Количество = СтрокаТЧ.Количество;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;

Возврат ТабДок;
КонецФункции

На клиенте табличный документ показывают через ПоказатьЗначение или помещают в поле табличного документа на форме.

Несколько областей

Сложные формы комбинируют области: шапка один раз, строка в цикле, подвал с итогами после цикла. Имена областей должны совпадать с макетом.


Простой отчёт

Объект метаданных Отчёт может содержать:

  • схему компоновки (СКД) или
  • модуль с процедурой СформироватьОтчет / обработчиком компоновки.

Минимальный программный отчёт:

  1. Выполнить Запрос.
  2. Обойти результат или Выгрузить() в ТаблицаЗначений.
  3. Заполнить макет или вывести в табличный документ.

Для учебных задач этого достаточно; в типовых конфигурациях чаще СКД.


СКД — система компоновки данных

СКД отделяет источник данных (запрос, объект) от макета представления (поля, группировки, диаграммы).

Основные узлы схемы:

УзелРоль
Набор данныхЗапрос или объект с полями
СвязиСоединение наборов
Ресурсы / измеренияПоля для группировки и итогов
НастройкиОтборы, порядок, условное оформление
МакетыМакет компоновки результата

Пользователь в режиме «1С:Предприятие» может менять отборы и состав полей, если отчёт это разрешает. Разработчик настраивает схему в конфигураторе и при необходимости дополняет кодом модуля отчёта.

С чего начать СКД
Создайте отчёт → «Схема компоновки данных» → набор данных «Запрос» → конструктор запроса → перетащите поля в ресурсы и группировки → проверьте в режиме 1С:Предприятие.


Динамический список

Динамический список — реквизит формы, который показывает список объектов (документов, справочников) с отбором и сортировкой без загрузки всех строк в память.

Используется на формах списков и рабочих мест:

  • основная форма списка справочника;
  • панель «последние документы»;
  • подбор номенклатуры с отбором.

Настройка в редакторе формы: реквизит типа ДинамическийСписок, привязка к основной таблице, поля, условное оформление, пользовательские отборы.

Программный отбор (упрощённо):

&НаСервере
Процедура УстановитьОтборПоОрганизации(Организация)
Список = СписокДокументов; // реквизит формы — динамический список
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
Список.Отбор, "Организация", Организация, ВидСравненияКомпоновкиДанных.Равно);
КонецПроцедуры

В учебных конфигурациях имена общих модулей могут отличаться — ориентируйтесь на свойства Отбор динамического списка в справке.


Сравнение подходов

ЗадачаИнструмент
Печать счёта по образцуМакет + табличный документ
Остатки на дату с группировкой по складуСКД или запрос + макет
Список документов за месяц на формеДинамический список
Выгрузка в ExcelТабличныйДокумент.Записать / сохранение из СКД

Связанные материалы


Практика 15 минут

  1. Создайте общий макет с областями Шапка и Строка.
  2. Выведите в табличный документ две строки из ТаблицаЗначений.
  3. Откройте любой типовой отчёт на СКД в конфигураторе и найдите набор данных-запрос.

Лаборатория — печать и отчёт (70 минут)

Этап 1 — макет накладной (30 мин)

  1. Общие макетыПечатьПоступления → табличный макет.
  2. Область Шапка — параметры Номер, Дата, Склад.
  3. Область СтрокаТовар, Количество, Цена.
  4. В модуле менеджера документа — экспортная функция Печать(МассивОбъектов, …) по шаблону из раздела «Макет и табличный документ» выше.
  5. Команда печати на форме документа.

Этап 2 — отчёт СКД «Остатки» (30 мин)

  1. ОтчётыОстаткиТоваров → схема компоновки.
  2. Набор данных — запрос к РегистрНакопления.ОстаткиТоваров.Остатки.
  3. Поля: номенклатура, склад, количество остатка.
  4. Группировка по складу, итог по количеству.
  5. Проверка в 1С:Предприятие с отбором по складу.

Этап 3 — динамический список (10 мин)

На форме списка ПоступлениеТоваров включите пользовательский отбор по дате и складу — сохраните настройку списка как вариант.

Итог практикума: из одной учебной конфигурации 1121.md получаете печать документа, аналитический отчёт и настраиваемый список.


Проверка себя

  • Чем параметр области макета отличается от реквизита формы?
  • Когда макета достаточно, а когда нужна СКД?
  • Зачем динамический список вместо ТаблицаЗначений на форме списка документов?

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").