Почему новое поле в СКД не отображается в отчете Консоль руководителя БГУ 2.0 и как это исправить

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет Финансы и профессиональные услуги
← На главную

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

Анализ проблемы: почему правки в СКД «не видны»

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

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

Шаг 1: Стандартные действия по обновлению настроек

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

Если эти действия не помогли (как и в случае автора темы), значит, логика управления полями вынесена в программный код Модуля менеджера.

Шаг 2: Доработка модуля менеджера отчета

Выясним причину глубокого контроля отчета со стороны системы. В БГУ 2.0 для отчетов консоли руководителя критически важно проверить содержимое модуля менеджера. Нам необходимо найти процедуры, которые отвечают за регистрацию и настройку вариантов. Обычно это процедуры, связанные с подсистемой «Варианты отчетов».

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


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

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

Шаг 3: Проблема переименования отчета и URL-схемы

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

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

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

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

Подведем итог. Чтобы успешно добавить разрез (например, Счет) в отчет «Кредиторская задолженность» в БГУ 2.0, придерживайтесь следующего алгоритма:

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

Помните, что в БГУ 2.0 отчеты — это не просто запросы к базе данных, а часть сложной архитектуры управления данными, где программный код в модулях имеет приоритет над визуальными настройками в конструкторе СКД.

← На главную