Отчеты и Аналитика · 11 мин
Как добавить реквизит в отчет 1С
Как добавить реквизит в отчет 1С через настройки варианта, СКД и конфигуратор. Пошаговые инструкции, типичные ошибки и проверка результата.
Задача добавить реквизит в отчет 1С возникает в двух ситуациях: когда нужного поля нет в готовом отчете и его надо вывести через пользовательские настройки, и когда реквизита вообще нет в схеме компоновки данных и требуется доработка конфигурации. Первый случай решается в режиме предприятия за несколько минут без программирования, второй требует доступа к конфигуратору и понимания структуры запроса отчета.
Большинство типовых отчетов в конфигурациях 1С (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия) построены на системе компоновки данных — СКД. Это значит, что состав полей, группировок и отборов можно менять прямо в пользовательском режиме через кнопку «Настройки». Однако доступны только те поля, которые разработчик включил в набор данных схемы компоновки.
Ниже разобраны оба сценария: пользовательская настройка без изменения конфигурации и доработка отчета в конфигураторе. Отдельно рассмотрены отчеты, построенные не на СКД, а программно, — для них порядок действий отличается.
Как определить, каким способом построен отчет
Перед любыми действиями выясните, на чем основан отчет. Откройте отчет и нажмите кнопку «Настройки» (или «Изменить вариант» в старых интерфейсах). Если открылось окно с вкладками «Отборы», «Поля», «Группировки», «Сортировка» — отчет построен на СКД, и велика вероятность, что реквизит удастся добавить без программирования.
Если при попытке открыть настройки появляется только простая форма с парой параметров (период, организация), а вкладок с полями нет — скорее всего, отчет формируется программно в модуле объекта. В этом случае пользовательская настройка состава колонок невозможна, и добавление реквизита потребует доработки кода и макета.
Третий признак: в режиме настроек есть расширенный вариант с закладкой «Дополнительные поля» или списком доступных полей слева. Это тоже СКД, просто настройки открыты в упрощенном виде. Переключитесь в расширенный режим настройки — обычно это отдельная кнопка или команда «Расширенная настройка» в меню «Ещё».
Пробуйте добавить реквизит через настройки варианта
Достаточно отметить его флажком в настройках
Нужна доработка в конфигураторе
Потребуется изменение модуля и макета
Добавление реквизита через настройки отчета
Самый частый сценарий: реквизит существует в объекте (например, «Комментарий» в документе или «Артикул» у номенклатуры) и включен в схему компоновки, но не выведен в текущий вариант отчета. Откройте отчет, нажмите «Настройки», перейдите на вкладку «Поля» (в некоторых конфигурациях — «Структура» или «Дополнительные поля»).
В списке доступных полей найдите нужный реквизит — используйте строку поиска, если полей много. Отметьте его флажком или перетащите в список выбранных полей. Порядок полей в списке определяет порядок колонок в отчете: перемещайте поле кнопками со стрелками или перетаскиванием.
Если нужно вывести реквизит не отдельной колонкой, а рядом с группировкой (например, телефон клиента в строке контрагента), используйте «Дополнительные поля» на закладке «Группировка» — там же задается размещение: вместе, отдельно, в заголовке.
После настройки нажмите «Закрыть и сформировать» и проверьте результат. Чтобы настройка сохранилась для будущих запусков, сохраните её как новый вариант отчета через «Ещё» → «Сохранить вариант отчета» — иначе при следующем открытии отчет вернется к стандартному виду.
- 1Откройте отчет и нажмите «Настройки» или «Изменить вариант»
- 2Перейдите на вкладку «Поля» или «Дополнительные поля»
- 3Найдите нужный реквизит в списке доступных полей
- 4Отметьте поле флажком и расположите его в нужном месте списка
- 5Сформируйте отчет и проверьте результат
- 6Сохраните настройки как новый вариант отчета
Если реквизита нет в списке доступных полей
Когда нужного поля нет в настройках, причина в том, что запрос набора данных схемы компоновки его просто не выбирает. Например, отчет «Продажи» выбирает номенклатуру и количество, но не выбирает реквизит «Производитель» из карточки товара. Исправить это можно только в конфигураторе.
Откройте конфигуратор, найдите отчет в дереве конфигурации и откройте его основную схему компоновки данных (команда «Открыть схему компоновки данных»). На закладке «Наборы данных» откройте запрос. Добавьте нужное поле в выборку: либо напрямую из таблицы, либо через левое соединение, если реквизит хранится в другом объекте.
После изменения запроса поле обычно появляется на закладке «Настройки» схемы автоматически — СКД подхватывает поля из запроса. Проверьте, что поле не отключено в настройках варианта по умолчанию, и при необходимости добавьте его в выбранные поля типового варианта.
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура,
Продажи.Номенклатура.Артикул КАК Артикул,
СУММА(Продажи.Количество) КАК Количество
ИЗ
РегистрНакопления.Продажи.Обороты КАК Продажи
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура,
Продажи.Номенклатура.АртикулОбратите внимание на синтаксис точки: реквизиты ссылочных полей можно вытягивать через точку (Номенклатура.Артикул) без явного соединения. Это работает для обычных реквизитов, но для больших отчетов соединение иногда предпочтительнее по производительности.
Добавление реквизита в программный отчет
Если отчет формируется кодом в модуле объекта (типично для печатных форм и старых отчетов), схема компоновки отсутствует. Доработка состоит из трех шагов: добавить поле в запрос модуля, добавить колонку или параметр в табличный макет и вывести значение при формировании.
Откройте модуль объекта отчета и найдите процедуру формирования — обычно она называется «СформироватьОтчет» или похоже. Найдите текст запроса и добавьте нужный реквизит в выборку. Затем откройте макет отчета, добавьте в нужную секцию ячейку с параметром (свойство «Заполнение» — «Параметр») и задайте имя параметра.
В коде после вывода области допишите установку значения параметра из выборки запроса. Сформируйте отчет и убедитесь, что новая колонка заполняется по всем строкам, включая строки с пустым значением реквизита — пустые значения не должны ломать верстку.
Доработка через расширение конфигурации
Если конфигурация находится на полной поддержке, прямое изменение отчета снимет её с поддержки и усложнит обновления. Современный подход — расширение конфигурации: создайте расширение, добавьте в него заимствованный отчет и измените схему компоновки или модуль уже в расширении.
Порядок такой: «Конфигурация» → «Расширения конфигурации» → создать новое. Затем в основной конфигурации через контекстное меню отчета выберите «Добавить в расширение». Далее откройте схему компоновки отчета в расширении и добавьте поле в запрос набора данных тем же способом, что описан выше.
У расширений есть ограничения: изменение схемы компоновки заимствованного отчета поддерживается не во всех версиях платформы, а сложные программные отчеты иногда проще продублировать внешним отчетом. Если платформа не позволяет переопределить нужный механизм, создайте внешний отчет с полной копией схемы и своей доработкой.
Сравнение вариантов доработки
Быстро и безопасно, но доступны только поля, уже включенные в схему компоновки
Полная свобода, но снимает объект с поддержки и требует контроля при обновлениях
Сохраняет поддержку, но имеет ограничения платформы по переопределяемым объектам
Не трогает конфигурацию вообще, но требует ручной синхронизации при изменении типового отчета
Проверка результата и типичные ошибки
После добавления реквизита сформируйте отчет на реальных данных за достаточно большой период. Проверьте три вещи: колонка присутствует и заполнена, итоги по числовым полям не изменились, дубли строк не появились. Дубли — частый симптом ошибки: если реквизит добавили через соединение с таблицей, где на одну запись приходится несколько строк (например, несколько значений дополнительного реквизита), строки отчета размножатся и суммы завысятся.
Вторая типичная ошибка — добавление поля в запрос, но не в ресурсы или выбранные поля настройки СКД. В этом случае поле технически есть в схеме, но в отчете не видно. Третья — неправильная группировка: если поле добавлено в секцию детальных записей, а группировка сворачивает данные выше, значения реквизита будут теряться или показывать только первое попавшееся.
Отдельно проверьте производительность: если реквизит вытягивается через точку по нескольким уровням (Документ.Контрагент.ОсновнойДоговор.Валюта), на больших объемах данных отчет может формироваться заметно дольше. В таких случаях лучше использовать явное соединение с нужной таблицей.
Как проверить результат
Колонка видна и заполнена по всем строкам, где реквизит задан
Колонка пустая или отсутствует — поле не выведено в настройку варианта
Итоги совпадают с результатом до доработки
Суммы выросли — появились дубли строк из-за соединения
Время формирования сопоставимо с прежним
Отчет формируется в разы дольше — проблема в соединениях запроса
Частые вопросы
Почему добавленный реквизит не виден после закрытия и повторного открытия отчета?
Настройки не сохранены как вариант. После изменения полей выполните «Ещё» → «Сохранить вариант отчета» и задайте имя. Если вариант сохранен, но отчет всё равно открывается в старом виде — проверьте, какой вариант назначен по умолчанию в списке вариантов отчета.
Можно ли добавить в отчет дополнительный реквизит объекта?
Да, но сложнее. Дополнительные реквизиты хранятся в отдельной таблице, поэтому в запросе набора данных потребуется соединение с таблицей дополнительных реквизитов с отбором по конкретному свойству. В типовых отчетах на СКД иногда уже есть механизм вывода дополнительных реквизитов через настройки — сначала проверьте список доступных полей.
Почему после добавления поля суммы в отчете удвоились?
Почти всегда причина в соединении запроса с таблицей, где на одну исходную строку приходится несколько записей. Добавьте в соединение условие, ограничивающее выбор одной строкой (например, отбор по конкретному виду реквизита), либо выносите такое поле в отдельный набор данных с объединением на уровне СКД.
Как добавить реквизит, чтобы он выводился в шапке группировки, а не отдельной колонкой?
В настройках варианта откройте закладку «Группировка», выделите нужную группировку и перейдите на вложенную закладку «Дополнительные поля». Добавьте реквизит и выберите тип размещения «Вместе» или «В заголовке» — значение появится рядом с названием группы.
Нужно ли снимать конфигурацию с поддержки для добавления поля в отчет?
Если достаточно пользовательских настроек — нет, это штатная возможность. Если требуется изменить запрос схемы компоновки, предпочтительный путь — расширение конфигурации, оно сохраняет поддержку. Прямое изменение типового отчета — крайний вариант, требующий контроля при каждом обновлении.
Почему поле через точку (Номенклатура.Артикул) работает в одном отчете, но не доступно в другом?
Состав доступных полей определяется запросом конкретной схемы компоновки. Если базовое поле (Номенклатура) выбрано в запросе, платформа обычно позволяет обращаться к его реквизитам через точку. Если же поле вычисляемое или схема ограничивает доступные поля, реквизит придется добавить в запрос явно.
Что важно запомнить
Сначала проверьте настройки варианта отчета — чаще всего реквизит уже есть в схеме и добавляется без программирования. Если поля нет, дорабатывайте схему компоновки через расширение или внешний отчет, не снимая типовую конфигурацию с поддержки. После доработки обязательно сверяйте итоги и проверяйте отсутствие дублей строк.