Почему не отображаются варианты отчета СКД в типовой конфигурации 1С и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Понимание архитектуры БСП

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

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

Способ 1: Принудительное обновление через запуск системы

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

  1. Закройте все сеансы работы с информационной базой.
  2. Запустите 1С:Предприятие с параметром командной строки: /C ЗапуститьОбновлениеИнформационнойБазы.
  3. Система при старте выполнит процедуры обновления, в том числе перерегистрацию предопределенных вариантов отчетов, найденных в конфигураторе.

Способ 2: Использование модуля объекта (программная настройка)

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


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

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

Способ 3: Работа в управляемых формах (для версий, где БСП не управляет отчетом автоматически)

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


Процедура _СменаВариантаНастройки(Элемент)
    Для каждого Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
        Если Элемент.Текст = Настройка.Представление Тогда
            КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки);
            КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("ТекущийВариантОтчета", Настройка.Имя);
            НастроитьКомпоновщик(); // Процедура обновления данных
            Прервать;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

Итоговые рекомендации

Чтобы работа с отчетами приносила удовольствие, а не головную боль:

Помните: если вы что-то изменили в структуре СКД и изменения не отобразились, попробуйте удалить текущий вариант в режиме «1С:Предприятие» (через меню «Все действия» -> «Настройки» -> «Варианты отчетов» — «Удалить») и перевыбрать/перезагрузить отчет. Часто этого достаточно, чтобы система заново подтянула актуальную конфигурацию из файла.

← На главную