Есть отчет на СКД.

По ряду причин требуется вывод результата полученного от СКД в самописный таб док.

При выводе отчета ругается:

Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета <<?>>= &ВидНадбавки

Код вывода прост:

```1c
    &НаСервере
    Процедура ПроизвестиФормирование()
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    ОтчетОбъект.СформироватьОтчет(Результат);
    КонецПроцедуры
```

Это в модуле объекта:

```1c
    Процедура СформироватьОтчет(Результат) Экспорт
    //Получаем схему из макета
    СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");

    НастрокаПоУмолчанию = КомпоновщикНастроек.ПолучитьНастройки();

    ИдДатаОтчета = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период").ИдентификаторПользовательскойНастройки;
    ПараметрДатаОтчета = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ИдДатаОтчета).Значение;
    КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период").Значение = ПараметрДатаОтчета;

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

    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастрокаПоУмолчанию,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    //Очищаем поле табличного документа
    Результат.Очистить();
    ТЗ = Новый ТаблицаЗначений;

    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ПроцессорВывода.УстановитьОбъект(ТЗ);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);//ошибка

    КонецПроцедуры
```

Тоесть когда отчет формировался средствами СКД - никаких ошибок не выдавалось. Теперь же при "ручном выводе" ругается на параметр, причем только этот.
Что где нужно проставить, чтобы не было ошибки?
---
Manticor, судя по скришотам, &ВидНадбавки ждет СписокЗначений (стоит галка "Доступен список значений"), а в ошибке
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета <<?>>= &ВидНадбавки
передается значение с оператором "=", может быть в этом беда?
---
Что-то в (1) я не увидел где вы этот параметр то задаёте для запроса?
---
Manticor, судя по скришотам, &ВидНадбавки ждет СписокЗначений (стоит галка "Доступен список значений"), а в ошибке
ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета <<?>>= &ВидНадбавки
передается значение с оператором "=", может быть в этом беда?
---
RocKeR_13, точно! переделал в условии так:

```1c
    ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(&ВидНадбавки) <> ТИП(ПланВидовРасчета.ДополнительныеНачисленияОрганизаций)
    И ТИПЗНАЧЕНИЯ(&ВидНадбавки) <> ТИП(ПланВидовРасчета.ОсновныеНачисленияОрганизаций)
    ИЛИ &ВидНадбавки = ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.ПустаяСсылка)
    ИЛИ &ВидНадбавки = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ПустаяСсылка)
    ТОГДА ИСТИНА
    ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета В(&ВидНадбавки)
```

Далее в коде в пр-ре СформироватьОтчет прописал устаовку пустой ссылки в сулчае назаполненности параметра ВидНадбавки:

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

В итоге теперь ругается:
 Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
ИЛИ &ВидНадбавки <<?>>= ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.ПустаяСсылка)

Быть может для такого типа условия когда у нас сравнивается параметр &ВидНадбавки с ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ПустаяСсылка) или дополнительными начислениями- неприменима галка - доступен список значений?
---
Manticor, может условие

```1c
    ИЛИ &ВидНадбавки = ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.ПустаяСсылка)
```

как-то по-другому переписать? Получается вроде как &ВидНадбавки с типом СписокЗначений сравнивается с пустой ссылкой плана видов расчета (или я ошибаюсь?) Может прописать условие на то, содержится ли ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.ПустаяСсылка в вашем параметре (как там по контексту запроса будет?)

```1c
    ИЛИ ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисленияОрганизаций.ПустаяСсылка) В (&ВидНадбавки)
```
---
RocKeR_13, не стал более заморачиваться с условиями - перенс этот параметр в необязатеьный без конструкции выбора. Все заработало.
---
Manticor, ну главное, что заработало)
---
Manticor, столкнулся с похожей проблемой. Можешь скинуть готовый результат?
---
Вы этот параметр заполняете? Он точно имеет соответствующий тип?
Текст ошибки указывает что она где-то в тексте запроса, а его не приложено.
---
Pavean, (3) Sevens, данный параметр заполняю в режиме предприятия.
Тоесть раньше когда все было чисто на СКД - если параметр вид надбавки оставлся пустым - то из условия запроса(скрин условия - выделено) отчет строился по всем надбавками из плановых. Если же он был заполнен - то по соттветствующей. Тип надбавки - составной:
ПланВидовРасчетаСсылка.ДополнительныеНачисленияОрганизаций,ПланВидовРасчетаСсылка.ОсновныеНачисленияОрганизаций.

Значение которое выбираю из основных начислений.
Текст самого запроса думаю не стоит приводить - он большой. Это условие(рис условия) есть только в перовой ВТ(рис. таблицы запроса)

(4) Stackmann, результат - это наш таб док. В него выводим инфу)) Полученная ТЗ нужна лишь для того, чтобы избавиься от пресловутых группировок -ну вот так вот пользователи хотят))
---
Manticor, имхо, если я правильно понял напишите

```1c
    ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета = ВЫРАЗИТЬ(&ВидНадбавки КАК ПланВидовРасчета.ОсновныеНачисленияРаботниковОрганизаций)
```

должно работать
---
st4rk, Так у него же два типа значения. Или конструкция Выбор Когда ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета ССылка ...подразумевается?
---
st4rk, Несовместимые типы "ВЫРАЗИТЬ"
ИНАЧЕ ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.ВидРасчета = (<<?>>ВЫРАЗИТЬ(&ВидНадбавки КАК ПланВидовРасчета.ОсновныеНачисленияОрганизаций))
зачем выражать, если у нас параметр уже данного типа. Раньше это все работало(((

(7) Pavean, конструкция выбор когда нужна для реализации условия что если параметр &ВидНадбавки незаполнен, то из плановых тянутся все надбавки, в противном случае идет отбор через параметр по какой то одной.
---
Manticor, в месте инициализации

```1c
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
```

проверьте настройки макета компоновки на предмет заполнения данного параметра, что там хоть?)
---
Как по мне, то маловато исходных данных для анализа проблемы.
Не понятно для чего передается параметр Результат в СформироватьОтчет и каким образом используется заполненная ТЗ?
---
может добавляли новый параметр, после того как все работало? типы могли перепутаться.. отладчиком посмотрите тип значения этого параметра в компановщике настроек.
Попробуйте перенести текст запроса и настройки в новый отчет.