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