Как вывести колонку «Комментарий» в отчете СКД, если она не отображается?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разберем проблему: почему поле «Комментарий» особенное?

Поле Комментарий в большинстве документов 1С имеет тип «Строка неограниченной длины». Для СКД это создает определенные трудности. Во-первых, такие поля нельзя использовать в группировках без предварительного преобразования. Во-вторых, разработчики часто по ошибке пытаются добавить текст в ресурсы, что в корне неверно для строковых данных, не требующих агрегации.

Рассмотрим по порядку все причины и способы их устранения.

Шаг 1. Ограничение длины строки в запросе

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

Чтобы избежать этой проблемы, в тексте запроса или в выражении поля набора данных нам необходимо явно ограничить длину строки. Воспользуемся функцией ВЫРАЗИТЬ. Посмотрим на пример кода в тексте запроса:


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

Этим действием мы превращаем «бесконечную» строку в строку фиксированной длины (250 символов), с которой СКД работает гораздо стабильнее.

Шаг 2. Исключение комментария из списка ресурсов

Выясним еще одну важную деталь. В сообщениях на форуме часто звучит вопрос: «Добавлять ли комментарий в ресурсы?». Ни в коем случае не добавляйте текстовые поля в ресурсы, если вы не планируете использовать для них специфические функции вроде Максимум или Минимум.

Если вы добавили Комментарий на закладку «Ресурсы», СКД будет пытаться рассчитать его итоги по группировкам. Для обычного вывода текста это излишне и часто приводит к тому, что в детальных записях значение пропадает. Удалите поле со вкладки «Ресурсы» и оставьте его только как обычное поле выбора.

Шаг 3. Настройка структуры отчета: Группировки и Детальные записи

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

Предлагаем следующий алгоритм настройки:

  1. В дереве настроек вместо создания группировки по полю Регистратор, попробуем использовать Детальные записи.
  2. Если вам все же нужна группировка по регистратору, убедитесь, что поле Комментарий добавлено в список «Выбранные поля» именно этой группировки.
  3. Проанализируем вложенность: если у вас есть верхнеуровневая группировка (например, Контрагент), а внутри нее — Детальные записи, то Комментарий должен быть выбран на уровне детальных записей.

Как вариант, можно оставить группировку по Регистратору, но в списке выбранных полей для этой группировки вручную добавить Регистратор.Комментарий.

Шаг 4. Сброс кэша пользовательских настроек

Это самый «коварный» момент. Вы могли все настроить правильно в конфигураторе, но в режиме «1С:Предприятие» колонка по-прежнему не видна. Это происходит потому, что система сохраняет настройки варианта отчета для конкретного пользователя.

Выясним, как принудительно обновить форму отчета:

  1. Откройте отчет в режиме пользователя.
  2. Нажмите кнопку Еще в правой верхней части формы.
  3. Выберите пункт Установить стандартные настройки.

Если вы работаете на Управляемых формах (УФ), иногда помогает даже простое переименование синонима отчета или сохранение его как внешнего под другим именем. Это заставляет систему создать новый ключ уникальности настроек и перечитать структуру xml из схемы компоновки данных. Для выявления некорректных или устаревших полей в сохраненных вариантах отчетов можно использовать обработку для проверки неактуальных полей в настройках СКД.

Шаг 5. Проверка ролей полей в наборе данных

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

Шаг 6. Права доступа (RLS)

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

Итоги совместной работы

Мы разобрали комплекс мер по восстановлению видимости колонки. Подведем итог: чтобы колонка «Комментарий» гарантированно появилась в вашем отчете, необходимо выполнить три критических условия: - Использовать ВЫРАЗИТЬ(Комментарий КАК СТРОКА(250)) в запросе. - Убедиться, что поле не является ресурсом. - Выполнить команду Установить стандартные настройки в режиме предприятия.

Соблюдение этих правил позволит вам избежать большинства проблем с выводом текстовой информации в сложных иерархических отчетах СКД.

← На главную