Почему не меняются заголовки полей в шапке отчета 1С СКД при наличии сохраненных пользовательских вариантов?

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

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

Проблема: Некорректное отображение заголовков полей в шапке отчета

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

Мы видим, что попытки изменить заголовок поля, например, на закладке Выбранные поля, не дают ожидаемого результата. Отчет продолжает выводить системное имя поля, игнорируя заданное нами короткое и понятное наименование. Это создает путаницу и мешает создать удобный для пользователя интерфейс отчета.

Основная причина: Влияние сохраненных пользовательских вариантов отчета

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

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

Решение проблемы с заголовками: Удаление пользовательских вариантов отчета

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

  1. Откройте отчет в режиме «1С:Предприятие». Запустите 1С:Предприятие и откройте отчет, в котором возникла проблема с заголовками.
  2. Найдите меню «Еще». В верхней части формы отчета найдите кнопку «Еще» (иногда она может называться «Все действия» или быть представлена в виде иконки с тремя точками).
  3. Выберите пункт «Выбрать варианты». В выпадающем меню выберите пункт «Выбрать варианты». Откроется список доступных вариантов отчета.
  4. Идентифицируйте ненужный вариант. В появившемся списке найдите вариант, который, предположительно, был сохранен пользователем и мешает работе настроек. Это может быть вариант с произвольным именем, отличающимся от «Основной».
  5. Вызовите контекстное меню. Наведите курсор на выбранный вариант и нажмите правую кнопку мыши.
  6. Выберите «Удалить». В контекстном меню выберите команду «Удалить».
  7. Подтвердите удаление. Система запросит подтверждение. Подтвердите удаление варианта.
  8. Переформируйте отчет. После удаления варианта попробуйте переформировать отчет. Вы должны увидеть, что заголовки полей теперь отображаются согласно настройкам, сделанным в конфигураторе.

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

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

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

  1. Настройка заголовков на закладке «Выбранные поля» (Конфигуратор и режим «1С:Предприятие»). Это наиболее очевидный способ. В конструкторе СКД, на закладке Выбранные поля, вы можете выбрать нужное поле и в колонке Заголовок вручную ввести желаемый текст. Аналогично, в режиме «1С:Предприятие», через меню «Еще» → «Изменить вариант» на закладке Поля можно вызвать контекстное меню для поля и выбрать «Установить заголовок».

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

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

  4. Группировка полей. Для более сложной организации полей в шапке отчета мы можем добавить группировочное поле и поместить в него требуемые поля. Это позволяет создавать многоуровневые заголовки. Вложенность таких группировок не ограничена. Свойство Расположение группировочного поля (например, «Вместе с детальными записями», «Только в заголовках») влияет на вид группировки в шапке.

  5. Получение полей в запросе. Это один из наиболее надежных и правильных подходов. Вместо того чтобы полагаться на настройки СКД для переименования полей, лучше всего задавать псевдонимы непосредственно в тексте запроса. Например, вместо того чтобы выбирать Проживание.ФизЛицо.Фамилия, мы можем написать в запросе: Проживание.ФизЛицо.Фамилия КАК Фамилия. Таким образом, поле уже будет называться Фамилия на уровне набора данных, и СКД будет использовать это имя по умолчанию. Это минимизирует риски перекрытия настроек пользовательскими вариантами и делает отчет более предсказуемым.

Работа с вычисляемыми полями и ресурсами: Особенности вывода и расчета итогов

После успешного решения проблемы с заголовками, часто возникает следующий вопрос: как работать с вычисляемыми полями, по которым нужно получить итоги? Представим, что у нас есть вычисляемое поле, которое корректно выводится в отчет как обычная колонка. Однако, когда мы пытаемся добавить его на закладку Ресурсы и установить выражение, например, Сумма(...), чтобы посчитать итог, эта колонка неожиданно пропадает из отчета.

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

  1. Создание вычисляемого поля. Прежде всего, убедимся, что вычисляемое поле создано корректно на закладке Вычисляемые поля. Укажем для него Выражение и Тип значения.

  2. Добавление в ресурсы. Чтобы по вычисляемому полю можно было посчитать итоги, его необходимо добавить в список ресурсов на закладке Ресурсы конструктора схемы компоновки данных.

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

  4. Указание группировок для расчета. В свойстве Рассчитывать по... для ресурса мы можем указать, для каких группировок будет рассчитываться этот ресурс. Если это свойство не заполнено, выражение будет использоваться для всех группировок и общих итогов.

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

  6. Причины отсутствия вычисляемого поля в отчете (когда оно ресурс):

    • Не добавлено в макет отчета. Хотя мы добавили его в ресурсы, оно должно быть также выбрано для вывода в соответствующей группировке или в общих итогах на закладке Выбранные поля.
    • Неправильно задан «Путь к данным». Проверьте, что имя вычисляемого поля, используемое в ресурсе, соответствует имени на закладке Вычисляемые поля.
    • Выражение вычисляемого поля содержит синтаксические ошибки. Или, что не допускается, использует другие вычисляемые поля, которые не определены или определены некорректно.
    • Неправильно указан тип значения или формат поля. Для числовых агрегатных функций тип значения поля должен быть числовым.
    • Настроены ограничения видимости или доступности поля. Проверьте условное оформление и настройки видимости.
    • Проблемы с обновлением данных или перезагрузкой отчета. Иногда требуется полная перезагрузка конфигуратора или сброс настроек отчета.
    • Отсутствие данных, удовлетворяющих условию вычисления. Если поле вычисляется только при определенных условиях, и эти условия не выполняются, оно будет пустым.
  7. Обработка пустых значений. Если вычисляемое поле может быть пустым или не иметь числового значения (например, если оно возвращает строку или Неопределено), это может влиять на расчет итогов. Агрегатные функции, такие как Сумма, работают с числовыми значениями и могут игнорировать нечисловые. Если необходимо посчитать, например, количество непустых значений, используйте функции Количество или КоличествоРазличных. Для полей, которые могут быть и цифрой, и пустым, можно использовать выражение вида ЕСТЬNULL(ВашеПоле, 0), чтобы гарантировать числовое значение для агрегации.

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

Управление пользовательскими вариантами отчетов и их влияние

Чтобы глубже понять, как пользовательские настройки влияют на отчет, давайте рассмотрим различные виды настроек в СКД:

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

  2. «ПользовательскиеНастройки»: Это список настроек, которыми пользователь может управлять в режиме «1С:Предприятие». Они применяются дополнительно к основному варианту отчета. Именно эти настройки часто являются причиной «неповиновения» отчета, когда они перекрывают изменения, сделанные разработчиком в конфигураторе.

  3. «ФиксированныеНастройки»: Это дополнительные настройки, которые задаются программно и которыми пользователь не может управлять. Они имеют самый высокий приоритет и не могут быть изменены пользователем.

Мы уже рассмотрели, как удалить ненужный вариант через интерфейс пользователя. Программно варианты можно удалить методом ВариантыОтчетов.УдалитьВариантОтчета(), что может быть полезно при централизованном управлении пользовательскими настройками.

Иногда, особенно при использовании «Библиотеки стандартных подсистем» (БСП), варианты отчета, настроенные в конфигураторе, могут быть не видны в пользовательском режиме. Это происходит, если не заполнено описание варианта отчета в соответствующем глобальном модуле или есть проблемы с правами доступа.

Использование условного оформления для шапки отчета

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

Чтобы применить условное оформление к заголовкам, необходимо подняться на уровень Таблица или Отчет в настройках СКД на закладке Настройки (в разделе Условное оформление) и там определить правила. Это позволит нам динамически изменять вид заголовков в зависимости от определенных условий.

Рекомендации по получению данных: Запрос vs. Настройки СКД

Мы выяснили, что наиболее надежный способ обеспечить корректное отображение заголовков и избежать конфликтов с пользовательскими настройками — это получать вложенные поля непосредственно в запросе СКД. Например, вместо того чтобы выбирать Проживание.ФизЛицо.КК, Проживание.ФизЛицо.Фамилия, Проживание.ФизЛицо.Имя и затем переименовывать их в настройках, гораздо эффективнее сразу в запросе задать им нужные псевдонимы:


ВЫБРАТЬ
    Проживание.ФизЛицо.КК КАК КодКлиента,
    Проживание.ФизЛицо.Фамилия КАК Фамилия,
    Проживание.ФизЛицо.Имя КАК Имя
ИЗ
    Документ.Проживание КАК Проживание

Этот подход имеет несколько преимуществ:

Также важно помнить, что в СКД недоступна секция ИТОГИ языка запросов 1С. Все агрегации и расчеты итогов должны выполняться средствами самой СКД через механизм ресурсов.

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

← На главную