Как изменить название и заголовок отчета на СКД в 1С 8.3 без создания собственной формы

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

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

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

Причина проблемы: почему не работают стандартные свойства метаданных

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

Проанализируем пошагово все варианты решения этой задачи в зависимости от условий работы вашей конфигурации.

Решение 1. Изменение представления варианта отчета в конфигураторе (Основной способ)

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

  1. Откройте конфигуратор вашей базы данных и найдите нужный отчет в дереве метаданных.
  2. Откройте Схему компоновки данных (обычно это макет с именем ОсновнаяСхемаКомпоновкиДанных).
  3. Перейдите на вкладку Настройки (в нижней части окна конструктора СКД).
  4. В верхнем окне настроек обратите внимание на табличную часть Варианты отчетов. По умолчанию там всегда присутствует как минимум один вариант (обычно с именем Основной).
  5. Выберите нужный вариант отчета и дважды кликните по колонке Представление (или нажмите правой кнопкой мыши и выберите «Свойства»).
  6. Введите новое понятное название отчета в поле Представление.
  7. Сохраните схему компоновки данных и обновите конфигурацию базы данных.

Этот способ напрямую управляет тем, под каким именем вариант отчета регистрируется в системе и как он подписывается при открытии стандартной формы.

Важный нюанс: Кэширование пользовательских настроек

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

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

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

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

Решение 2. Управление именами в конфигурациях на БСП (справочник «Варианты отчетов»)

В современных типовых конфигурациях (таких как ERP, Комплексная автоматизация, Управление торговлей, Бухгалтерия предприятия и др.) за вывод отчетов отвечает подсистема БСП «Варианты отчетов». БСП хранит информацию обо всех отчетах в специальном справочнике. Изменение схемы в конфигураторе не всегда автоматически обновляет этот справочник у существующих пользователей.

Разберем, как изменить название отчета напрямую в пользовательском режиме без внесения изменений в конфигуратор:

  1. Зайдите в базу под учетной записью с правами администратора.
  2. Откройте меню Функции для технического специалиста (ранее — «Все функции»).
  3. В разделе Справочники найдите и откройте справочник Варианты отчетов (или Панели отчетов в зависимости от версии БСП).
  4. Найдите ваш отчет по его старому названию или по имени объекта метаданных.
  5. Откройте карточку варианта отчета и измените поле Наименование на нужное вам.
  6. Запишите изменения. Теперь во всех панелях отчетов и в заголовке формы будет выводиться новое имя.

Если вам требуется жестко прописать правила интеграции отчета в БСП на уровне программного кода конфигурации, используйте общий модуль ВариантыОтчетовПереопределяемый. В процедуре НастроитьВариантыОтчетов вы можете задать свойства отчета программно:


Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
    
    // Пример настройки описания встроенного отчета
    РезультатНастройки = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.МойОтчетСКД);
    РезультатНастройки.ОпределитьНастройкиВариантов = Истина;
    
КонецПроцедуры

Решение 3. Изменение печатного заголовка внутри самого отчета

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

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

Решение 4. Динамическое программное изменение заголовка

Что делать, если заголовок отчета должен формироваться динамически в зависимости от условий выполнения (например, содержать текущую дату, имя пользователя или выбранную организацию), а формы у отчета по-прежнему нет? В этом случае мы можем применить программную установку параметров вывода в модуле объекта отчета.

Рассмотрим пример реализации. Откройте Модуль объекта вашего отчета и переопределите обработчик события ПриКомпоновкеРезультата:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    // 1. Получаем текущие настройки компоновщика
    ТекущиеНастройки = КомпоновщикНастроек.ПолучитьНастройки();
    
    // 2. Формируем динамический текст заголовка
    ТекстЗаголовка = "Отчет по продажам за " + Формат(ТекущаяДата(), "ДФ='MMMM yyyy ""г.""'");
    
    // 3. Находим параметр вывода "Заголовок" и устанавливаем его значение
    ПараметрЗаголовок = ТекущиеНастройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Title"));
    Если ПараметрЗаголовок <> Неопределено Тогда
        ПараметрЗаголовок.Значение = ТекстЗаголовка;
        ПараметрЗаголовок.Использование = Истина;
    КонецЕсли;
    
    // 4. Загружаем измененные настройки обратно в компоновщик
    КомпоновщикНастроек.ЗагрузитьНастройки(ТекущиеНастройки);
    
КонецПроцедуры

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

Решение 5. Особенности для внешних отчетов (Файлы *.erf)

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

Для изменения отображаемого имени внешнего отчета вам потребуется отредактировать функцию регистрации в модуле объекта отчета:


Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОПанелиАдминистрирования();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
    ПараметрыРегистрации.Наименование = "Продажи и списание товаров (Новое название)";
    
    // Определение команд
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Продажи и списание товаров (Новое название)'");
    НоваяКоманда.Идентификатор = "ПродажиИСписаниеТоваров";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипЗапускаОткрытиеФормы();
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

  1. Перейдите в раздел Администрирование -> Печатные формы, отчеты и обработки -> Дополнительные отчеты и обработки.
  2. Найдите ваш отчет в списке и откройте его карточку.
  3. Нажмите кнопку Обновить из файла и выберите ваш модифицированный файл отчета.
  4. Нажмите Записать и закрыть. Только после этого БСП перезапишет информацию в справочнике вариантов отчетов, и пользователи увидят актуальное название.

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

← На главную