Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.101.19)
После обновления конфигурации некоторые отчеты перестали работать, выскакивает ошибка при инициализации типовой формы отчета.
Полный текст ошибки:
Данная ошибка возникает, например, если открыть приложенный отчет через Файл-Открыть. В качестве примера отчет на СКД (erf-файл во вложении):
```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.Поле1 КАК Поле1
    ИЗ
    (ВЫБРАТЬ
    NULL КАК Поле1) КАК ВложенныйЗапрос
```

Собственно, понятно, что на сервере заполняется какой-то реквизит формы и проблема с миграцией данных на клиент в модуле формы "ФормаОтчета". Может быть, у кого-нибудь есть какие-либо мысли на этот счет?
---
Проблема была в том, что при такой записи, когда во вложенном запросе явно прописывается поле NULL, для доступных полей выбора в компоновщике настроек устанавливался специфический тип "НеизвестныйОбъект". Этот тип не имеет отображения на клиенте, то есть не может быть передан с Сервера на Клиент.
Раньше ошибки не было, так как будучи в составе объекта ОписаниеТипов, тип "НеизвестныйОбъект" ошибку не вызывает и при миграции Сервер-Клиент – он просто очищается. Но в БСП 3.1.5 для формы отчета добавили новую функциональность и в процедуре
```1c
    &НаСервере
    Процедура НайтиПоляУниверсальногоПоискаПоТипам()

    ИспользуемыеПоляПоискаПоТипам = Новый Соответствие;

    Коллекции = Новый Массив;
    Коллекции.Добавить(ОписаниеПараметровОтчета());
    Коллекции.Добавить(ОписаниеОтборовОтчета());
    Коллекции.Добавить(ОписаниеПолейОтчета());

    Для Каждого Коллекция Из Коллекции Цикл

    Для Каждого ОписаниеПоля Из Коллекция Цикл

    Типы = ОписаниеПоля.ТипЗначения.Типы();

    Для Каждого Тип Из Типы Цикл

    ПоляПоТипу = ИспользуемыеПоляПоискаПоТипам[Тип];

    Если ПоляПоТипу = Неопределено Тогда
    ПоляПоТипу = Новый Соответствие;
    КонецЕсли;

    ПоляПоТипу.Вставить(ОписаниеПоля.Поле, ОписаниеПоля.Заголовок);
    ИспользуемыеПоляПоискаПоТипам.Вставить(Тип, ПоляПоТипу);

    КонецЦикла;

    КонецЦикла;

    КонецЦикла;

    НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам = ИспользуемыеПоляПоискаПоТипам;

    КонецПроцедуры
```
 в реквизит формы явно прописывается тип "НеизвестныйОбъект".
Вывод: не делать таких странный конструкций в запросах СКД либо переписывать такие запросы, если они достались в наследство. Есть еще вариант в модуле объекта отчета подписаться на событие "ПриСозданииНаСервере" и сделать сериализацию/десериализацию основного реквизита формы, тогда проблемные типы исчезнут еще до заполнения служебных реквизитов формы.
---
а какая платформа?
у нас 1С:Предприятие 8.3 (8.3.18.1289)

в управляемом режиме сообщений об ошибках нет. но и сам отчет не формируется, даже заголовок поля не выводится
в обычном (неупр) режиме отчет работает
---
8.3.17.1989. Режим совместимости 8.3.14. Ошибка появилась именно после обновления конфигурации БП до 3.0.101.19.
---
правда совместимость стоит 8,3,12
---
Проблема была в том, что при такой записи, когда во вложенном запросе явно прописывается поле NULL, для доступных полей выбора в компоновщике настроек устанавливался специфический тип "НеизвестныйОбъект". Этот тип не имеет отображения на клиенте, то есть не может быть передан с Сервера на Клиент.
Раньше ошибки не было, так как будучи в составе объекта ОписаниеТипов, тип "НеизвестныйОбъект" ошибку не вызывает и при миграции Сервер-Клиент – он просто очищается. Но в БСП 3.1.5 для формы отчета добавили новую функциональность и в процедуре
```1c
    &НаСервере
    Процедура НайтиПоляУниверсальногоПоискаПоТипам()

    ИспользуемыеПоляПоискаПоТипам = Новый Соответствие;

    Коллекции = Новый Массив;
    Коллекции.Добавить(ОписаниеПараметровОтчета());
    Коллекции.Добавить(ОписаниеОтборовОтчета());
    Коллекции.Добавить(ОписаниеПолейОтчета());

    Для Каждого Коллекция Из Коллекции Цикл

    Для Каждого ОписаниеПоля Из Коллекция Цикл

    Типы = ОписаниеПоля.ТипЗначения.Типы();

    Для Каждого Тип Из Типы Цикл

    ПоляПоТипу = ИспользуемыеПоляПоискаПоТипам[Тип];

    Если ПоляПоТипу = Неопределено Тогда
    ПоляПоТипу = Новый Соответствие;
    КонецЕсли;

    ПоляПоТипу.Вставить(ОписаниеПоля.Поле, ОписаниеПоля.Заголовок);
    ИспользуемыеПоляПоискаПоТипам.Вставить(Тип, ПоляПоТипу);

    КонецЦикла;

    КонецЦикла;

    КонецЦикла;

    НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам = ИспользуемыеПоляПоискаПоТипам;

    КонецПроцедуры
```
 в реквизит формы явно прописывается тип "НеизвестныйОбъект".
Вывод: не делать таких странный конструкций в запросах СКД либо переписывать такие запросы, если они достались в наследство. Есть еще вариант в модуле объекта отчета подписаться на событие "ПриСозданииНаСервере" и сделать сериализацию/десериализацию основного реквизита формы, тогда проблемные типы исчезнут еще до заполнения служебных реквизитов формы.
---
В моем случае такая ошибка возникала при добавлении настройки отчета, ранее сохраненного из пользовательского режима, во вновь создаваемый отчет в конфигураторе.

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