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

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

Почему в СКД не все поля выводятся в 1С 8 и как это исправить

Разбираем, почему в СКД 1С 8 не выводятся все поля: настройки выбранных полей, отборы, ресурсы, роли, вычисляемые поля. Пошаговая диагностика и исправление.

Система компоновки данных (СКД) в 1С 8 — мощный, но капризный инструмент. Одна из самых частых жалоб разработчиков и аналитиков: поле в запросе есть, а в отчёте его нет. При этом СКД не выдаёт ошибку — она просто «молча» не выводит колонку или строку, и найти причину с первого взгляда бывает сложно.

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

Как устроен вывод полей в СКД: где искать проблему

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

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

Маршрут решения

Как выбрать действие

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

Причина 1: поле не добавлено в выбранные поля настроек

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

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

Также проверьте вложенность: если у группировки «Детальные записи» снято автозаполнение и список полей пуст, детальные строки будут выводиться вообще без колонок — внешне это выглядит как «поля пропали».

Как вернуть поле в отчёт
  1. 1
    Откройте настройки отчёта и перейдите на закладку «Выбранные поля»
  2. 2
    Найдите нужное поле в списке доступных полей слева и перенесите его в выбранные
  3. 3
    Повторите проверку для каждой группировки, где поле должно отображаться
  4. 4
    Сформируйте отчёт и убедитесь, что колонка появилась
  5. 5
    Если поле недоступно для выбора — переходите к проверке схемы в конфигураторе

Причина 2: ограничения и роли полей в схеме компоновки

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

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

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

Причина 3: ресурсы и группировки — поле есть, но не на этом уровне

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

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

Проверьте также структуру группировок: если поле добавлено в выбранные поля «подчинённой» группировки, а родительская группировка скрыта или свёрнута настройками вывода, визуально создаётся впечатление пропавших колонок.

Причина 4: вычисляемые поля и поля, недоступные в пользовательском режиме

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

Ещё один тонкий момент — пользовательские поля и настройки в режиме предприятия. Если отчёт построен на основе «Основной схемы компоновки», а пользовательские настройки сохранены в варианте отчёта, старый вариант может не содержать новые поля, добавленные разработчиком позже. После доработки схемы пользователям часто нужно сбросить настройки варианта («Ещё» → «Установить стандартные настройки»), иначе новые поля так и не появятся.

Типичные ошибки
01
Добавили поле в запрос, но забыли обновить настройки варианта отчёта — пользователи видят старую структуру
02
Сняли автозаполнение в группировке и не добавили поля вручную — детальные записи выводятся пустыми
03
Настроили ресурс не для всех группировок — колонка исчезает на некоторых уровнях итогов
04
Использовали поле из правого соединения без обработки NULL — в результате пустые значения приняли за отсутствие поля

Причина 5: поле есть, но значения пустые — это не то же самое

Важно различать «поле не выводится» и «поле выводится пустым». Если колонка есть, но значений нет, проблема обычно в данных или соединениях наборов. Типовые сценарии: левое соединение в запросе не находит соответствия, связь наборов данных настроена по неверным полям, отбор отсекает записи, или поле содержит NULL из-за соединения.

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

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

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

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

Колонка в результате отчёта
Норма

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

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

Колонка есть в детальных записях, но пропадает в итогах — проверьте ресурсы

Значения поля
Норма

Значения совпадают с результатом того же запроса в консоли

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

Пустые значения при заполненных данных — проверяйте связи наборов и соединения

Список доступных полей
Норма

Поле доступно для выбора пользователю

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

Поля нет в списке — снят флажок использования в схеме или поле не в наборе данных

Пошаговый алгоритм диагностики

Чтобы не перебирать причины наугад, действуйте в фиксированном порядке. Это экономит время и позволяет точно локализовать этап, на котором поле «теряется».

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

Порядок диагностики
  1. 1
    Выполните запрос набора данных в консоли — поле должно быть в результате
  2. 2
    Откройте схему СКД: проверьте наличие поля в наборе данных и флажки ограничений
  3. 3
    Проверьте закладку «Ресурсы»: для каких группировок рассчитывается поле
  4. 4
    Проверьте настройки отчёта: выбранные поля на каждом уровне группировок
  5. 5
    В режиме предприятия установите стандартные настройки варианта и сформируйте отчёт заново

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

Итог

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

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

Поле есть в запросе, но его нет в списке доступных полей настроек. Что делать?

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

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

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

Поле выводится в детальных записях, но пустое в итогах. Это ошибка?

Нет, если поле не является ресурсом. Обычные реквизиты не агрегируются в итогах. Чтобы видеть значение в итогах, добавьте поле на закладку «Ресурсы» с нужным выражением (например, Сумма, Максимум или Количество) и укажите группировки, для которых оно рассчитывается.

Может ли отбор скрывать поле целиком, а не только значения?

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

Автозаполнение включено, но часть полей всё равно не появляется. Почему?

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

Как быстро проверить, проблема в схеме или в настройках пользователя?

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