Почему не получается перенести настройки отчета из режима «Предприятие» в «Конфигуратор»?

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

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

Выясняем причину возникновения ошибки

Основная причина конфликта заключается в принципиально разном контексте работы двух режимов платформы 1С:

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

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

Разберем возможные способы решения задачи

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

1. Разделение структуры отчета и пользовательских значений

Важно понимать разницу между Схемой компоновки данных (СКД) и настройками варианта отчета. Если вам нужно перенести логику построения отчета (запросы, параметры), выгружайте именно Схему компоновки данных, а не настройки пользователя.

Если же настройки необходимо перенести, попробуйте следующее:

2. Использование механизмов БСП для создания шаблонов

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

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

3. Работа с типами данных

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


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

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

← На главную