К статье
Практический материал

Отчеты и Аналитика · 11 мин

Как добавить реквизит в отчет 1С

Как добавить реквизит в отчет 1С через настройки варианта, СКД и конфигуратор. Пошаговые инструкции, типичные ошибки и проверка результата.

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

Большинство типовых отчетов в конфигурациях 1С (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия) построены на системе компоновки данных — СКД. Это значит, что состав полей, группировок и отборов можно менять прямо в пользовательском режиме через кнопку «Настройки». Однако доступны только те поля, которые разработчик включил в набор данных схемы компоновки.

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

Как определить, каким способом построен отчет

Перед любыми действиями выясните, на чем основан отчет. Откройте отчет и нажмите кнопку «Настройки» (или «Изменить вариант» в старых интерфейсах). Если открылось окно с вкладками «Отборы», «Поля», «Группировки», «Сортировка» — отчет построен на СКД, и велика вероятность, что реквизит удастся добавить без программирования.

Если при попытке открыть настройки появляется только простая форма с парой параметров (период, организация), а вкладок с полями нет — скорее всего, отчет формируется программно в модуле объекта. В этом случае пользовательская настройка состава колонок невозможна, и добавление реквизита потребует доработки кода и макета.

Третий признак: в режиме настроек есть расширенный вариант с закладкой «Дополнительные поля» или списком доступных полей слева. Это тоже СКД, просто настройки открыты в упрощенном виде. Переключитесь в расширенный режим настройки — обычно это отдельная кнопка или команда «Расширенная настройка» в меню «Ещё».

Есть вкладки «Поля», «Группировки»Отчет на СКД

Пробуйте добавить реквизит через настройки варианта

Реквизит есть в списке доступных полейПоле уже в схеме

Достаточно отметить его флажком в настройках

Реквизита нет в доступных поляхПоле не выгружено в схему

Нужна доработка в конфигураторе

Настроек полей нет вообщеПрограммный отчет

Потребуется изменение модуля и макета

Добавление реквизита через настройки отчета

Самый частый сценарий: реквизит существует в объекте (например, «Комментарий» в документе или «Артикул» у номенклатуры) и включен в схему компоновки, но не выведен в текущий вариант отчета. Откройте отчет, нажмите «Настройки», перейдите на вкладку «Поля» (в некоторых конфигурациях — «Структура» или «Дополнительные поля»).

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

Если нужно вывести реквизит не отдельной колонкой, а рядом с группировкой (например, телефон клиента в строке контрагента), используйте «Дополнительные поля» на закладке «Группировка» — там же задается размещение: вместе, отдельно, в заголовке.

После настройки нажмите «Закрыть и сформировать» и проверьте результат. Чтобы настройка сохранилась для будущих запусков, сохраните её как новый вариант отчета через «Ещё» → «Сохранить вариант отчета» — иначе при следующем открытии отчет вернется к стандартному виду.

Порядок действий в пользовательском режиме
  1. 1
    Откройте отчет и нажмите «Настройки» или «Изменить вариант»
  2. 2
    Перейдите на вкладку «Поля» или «Дополнительные поля»
  3. 3
    Найдите нужный реквизит в списке доступных полей
  4. 4
    Отметьте поле флажком и расположите его в нужном месте списка
  5. 5
    Сформируйте отчет и проверьте результат
  6. 6
    Сохраните настройки как новый вариант отчета

Если реквизита нет в списке доступных полей

Когда нужного поля нет в настройках, причина в том, что запрос набора данных схемы компоновки его просто не выбирает. Например, отчет «Продажи» выбирает номенклатуру и количество, но не выбирает реквизит «Производитель» из карточки товара. Исправить это можно только в конфигураторе.

Откройте конфигуратор, найдите отчет в дереве конфигурации и откройте его основную схему компоновки данных (команда «Открыть схему компоновки данных»). На закладке «Наборы данных» откройте запрос. Добавьте нужное поле в выборку: либо напрямую из таблицы, либо через левое соединение, если реквизит хранится в другом объекте.

После изменения запроса поле обычно появляется на закладке «Настройки» схемы автоматически — СКД подхватывает поля из запроса. Проверьте, что поле не отключено в настройках варианта по умолчанию, и при необходимости добавьте его в выбранные поля типового варианта.

bsl
ВЫБРАТЬ
	Продажи.Номенклатура КАК Номенклатура,
	Продажи.Номенклатура.Артикул КАК Артикул,
	СУММА(Продажи.Количество) КАК Количество
ИЗ
	РегистрНакопления.Продажи.Обороты КАК Продажи
СГРУППИРОВАТЬ ПО
	Продажи.Номенклатура,
	Продажи.Номенклатура.Артикул

Обратите внимание на синтаксис точки: реквизиты ссылочных полей можно вытягивать через точку (Номенклатура.Артикул) без явного соединения. Это работает для обычных реквизитов, но для больших отчетов соединение иногда предпочтительнее по производительности.

Добавление реквизита в программный отчет

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

Откройте модуль объекта отчета и найдите процедуру формирования — обычно она называется «СформироватьОтчет» или похоже. Найдите текст запроса и добавьте нужный реквизит в выборку. Затем откройте макет отчета, добавьте в нужную секцию ячейку с параметром (свойство «Заполнение» — «Параметр») и задайте имя параметра.

В коде после вывода области допишите установку значения параметра из выборки запроса. Сформируйте отчет и убедитесь, что новая колонка заполняется по всем строкам, включая строки с пустым значением реквизита — пустые значения не должны ломать верстку.

Доработка через расширение конфигурации

Если конфигурация находится на полной поддержке, прямое изменение отчета снимет её с поддержки и усложнит обновления. Современный подход — расширение конфигурации: создайте расширение, добавьте в него заимствованный отчет и измените схему компоновки или модуль уже в расширении.

Порядок такой: «Конфигурация» → «Расширения конфигурации» → создать новое. Затем в основной конфигурации через контекстное меню отчета выберите «Добавить в расширение». Далее откройте схему компоновки отчета в расширении и добавьте поле в запрос набора данных тем же способом, что описан выше.

У расширений есть ограничения: изменение схемы компоновки заимствованного отчета поддерживается не во всех версиях платформы, а сложные программные отчеты иногда проще продублировать внешним отчетом. Если платформа не позволяет переопределить нужный механизм, создайте внешний отчет с полной копией схемы и своей доработкой.

Сравнение вариантов доработки

Настройка варианта отчета

Быстро и безопасно, но доступны только поля, уже включенные в схему компоновки

Изменение отчета в конфигураторе

Полная свобода, но снимает объект с поддержки и требует контроля при обновлениях

Расширение конфигурации

Сохраняет поддержку, но имеет ограничения платформы по переопределяемым объектам

Внешний отчет

Не трогает конфигурацию вообще, но требует ручной синхронизации при изменении типового отчета

Проверка результата и типичные ошибки

После добавления реквизита сформируйте отчет на реальных данных за достаточно большой период. Проверьте три вещи: колонка присутствует и заполнена, итоги по числовым полям не изменились, дубли строк не появились. Дубли — частый симптом ошибки: если реквизит добавили через соединение с таблицей, где на одну запись приходится несколько строк (например, несколько значений дополнительного реквизита), строки отчета размножатся и суммы завысятся.

Вторая типичная ошибка — добавление поля в запрос, но не в ресурсы или выбранные поля настройки СКД. В этом случае поле технически есть в схеме, но в отчете не видно. Третья — неправильная группировка: если поле добавлено в секцию детальных записей, а группировка сворачивает данные выше, значения реквизита будут теряться или показывать только первое попавшееся.

Типичные ошибки
01
Соединение с таблицей значений реквизитов без фильтра — строки дублируются, суммы завышаются
02
Поле добавлено в запрос, но не выведено в выбранные поля варианта — в отчете его не видно
03
Не сохранен вариант отчета — при следующем открытии настройки сбрасываются
04
Доработка типового отчета напрямую — изменения теряются при обновлении конфигурации
05
Вывод реквизита на уровне группировки без агрегирования — отображается произвольное значение

Отдельно проверьте производительность: если реквизит вытягивается через точку по нескольким уровням (Документ.Контрагент.ОсновнойДоговор.Валюта), на больших объемах данных отчет может формироваться заметно дольше. В таких случаях лучше использовать явное соединение с нужной таблицей.

Контрольные точки

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

Новая колонка в отчете
Норма

Колонка видна и заполнена по всем строкам, где реквизит задан

Тревожный признак

Колонка пустая или отсутствует — поле не выведено в настройку варианта

Итоги по суммам и количеству
Норма

Итоги совпадают с результатом до доработки

Тревожный признак

Суммы выросли — появились дубли строк из-за соединения

Скорость формирования
Норма

Время формирования сопоставимо с прежним

Тревожный признак

Отчет формируется в разы дольше — проблема в соединениях запроса

Частые вопросы

Почему добавленный реквизит не виден после закрытия и повторного открытия отчета?

Настройки не сохранены как вариант. После изменения полей выполните «Ещё» → «Сохранить вариант отчета» и задайте имя. Если вариант сохранен, но отчет всё равно открывается в старом виде — проверьте, какой вариант назначен по умолчанию в списке вариантов отчета.

Можно ли добавить в отчет дополнительный реквизит объекта?

Да, но сложнее. Дополнительные реквизиты хранятся в отдельной таблице, поэтому в запросе набора данных потребуется соединение с таблицей дополнительных реквизитов с отбором по конкретному свойству. В типовых отчетах на СКД иногда уже есть механизм вывода дополнительных реквизитов через настройки — сначала проверьте список доступных полей.

Почему после добавления поля суммы в отчете удвоились?

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

Как добавить реквизит, чтобы он выводился в шапке группировки, а не отдельной колонкой?

В настройках варианта откройте закладку «Группировка», выделите нужную группировку и перейдите на вложенную закладку «Дополнительные поля». Добавьте реквизит и выберите тип размещения «Вместе» или «В заголовке» — значение появится рядом с названием группы.

Нужно ли снимать конфигурацию с поддержки для добавления поля в отчет?

Если достаточно пользовательских настроек — нет, это штатная возможность. Если требуется изменить запрос схемы компоновки, предпочтительный путь — расширение конфигурации, оно сохраняет поддержку. Прямое изменение типового отчета — крайний вариант, требующий контроля при каждом обновлении.

Почему поле через точку (Номенклатура.Артикул) работает в одном отчете, но не доступно в другом?

Состав доступных полей определяется запросом конкретной схемы компоновки. Если базовое поле (Номенклатура) выбрано в запросе, платформа обычно позволяет обращаться к его реквизитам через точку. Если же поле вычисляемое или схема ограничивает доступные поля, реквизит придется добавить в запрос явно.

Итог

Что важно запомнить

Сначала проверьте настройки варианта отчета — чаще всего реквизит уже есть в схеме и добавляется без программирования. Если поля нет, дорабатывайте схему компоновки через расширение или внешний отчет, не снимая типовую конфигурацию с поддержки. После доработки обязательно сверяйте итоги и проверяйте отсутствие дублей строк.