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