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