во время формирования отчета ПланФактМТО выводится ошибка:
Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(33, 57)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
(торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Период <<?>>МЕЖДУ &НачалоПериода И &КонецПериод
Запрос на формирование отчета:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Номенклатура
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура
КОНЕЦ КАК Номенклатура,
СУММА(торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Количество) КАК ПлановоеКоличество,
СУММА(торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Количество) КАК ФактическоеКоличество,
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Регистратор ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Регистратор.ЗаявкаНаРемонт
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Регистратор
КОНЕЦ КАК ЗаявкаНаРемонт,
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.ID ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.ID
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.ID
КОНЕЦ КАК ID,
(ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Номенклатура
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура
КОНЕЦ).ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Период КАК ПлановыйПериод,
торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Период КАК ФактическийПериод
ПОМЕСТИТЬ ЗатратыПланФакт
ИЗ
РегистрНакопления.торо_ПлановыеМатериальныеЗатратыРемонтныхРабот КАК торо_ПлановыеМатериальныеЗатратыРемонтныхРабот
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.торо_ФактическиеМатериальныеЗатратыРемонтныхРабот КАК торо_ФактическиеМатериальныеЗатратыРемонтныхРабот
ПО торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.ID = торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.ID
И торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура = торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Номенклатура
ГДЕ
(торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Период МЕЖДУ &НачалоПериода И &КонецПериод
ИЛИ торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Период МЕЖДУ &НачалоПериода И &КонецПериода)
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Регистратор ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Регистратор.ЗаявкаНаРемонт
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Регистратор
КОНЕЦ,
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.ID ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.ID
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.ID
КОНЕЦ,
ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Номенклатура
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура
КОНЕЦ,
(ВЫБОР
КОГДА торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура ЕСТЬ NULL
ТОГДА торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Номенклатура
ИНАЧЕ торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Номенклатура
КОНЕЦ).ЕдиницаХраненияОстатков,
торо_ПлановыеМатериальныеЗатратыРемонтныхРабот.Период,
торо_ФактическиеМатериальныеЗатратыРемонтныхРабот.Период
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПлановыйПериод,
МАКСИМУМ(ЦеныНоменклатуры1.Период) КАК ФактическийПериод,
ЗатратыПланФакт.ЗаявкаНаРемонт,
ЗатратыПланФакт.ЕдиницаИзмерения,
ЗатратыПланФакт.Номенклатура,
Константы.торо_ТипЦеныДляРасчетаСебестоимостиРемонта
ПОМЕСТИТЬ ПлановыйФактическиеПериодыИзРегистра
ИЗ
ЗатратыПланФакт КАК ЗатратыПланФакт
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ЗатратыПланФакт.ПлановыйПериод >= ЦеныНоменклатуры.Период
И ЗатратыПланФакт.Номенклатура = ЦеныНоменклатуры.Номенклатура
И ЗатратыПланФакт.ЕдиницаИзмерения = ЦеныНоменклатуры.ЕдиницаИзмерения
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
ПО ЗатратыПланФакт.ФактическийПериод >= ЦеныНоменклатуры1.Период
И ЗатратыПланФакт.ЕдиницаИзмерения = ЦеныНоменклатуры1.ЕдиницаИзмерения
И ЗатратыПланФакт.Номенклатура = ЦеныНоменклатуры1.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Константы КАК Константы
ПО (ИСТИНА)
СГРУППИРОВАТЬ ПО
ЗатратыПланФакт.ЗаявкаНаРемонт,
ЗатратыПланФакт.ЕдиницаИзмерения,
ЗатратыПланФакт.Номенклатура,
Константы.торо_ТипЦеныДляРасчетаСебестоимостиРемонта
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(ВЫБОР
КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ЦеныНоменклатуры.Цена
КОНЕЦ) КАК ПлановаяЦена,
МАКСИМУМ(ВЫБОР
КОГДА ЦеныНоменклатуры1.Цена ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ ЦеныНоменклатуры1.Цена
КОНЕЦ) КАК ФактическаяЦена,
ПлановыйФактическиеПериодыИзРегистра.ЗаявкаНаРемонт,
ПлановыйФактическиеПериодыИзРегистра.Номенклатура
ПОМЕСТИТЬ ЦенаПланФакт
ИЗ
ПлановыйФактическиеПериодыИзРегистра КАК ПлановыйФактическиеПериодыИзРегистра
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО ПлановыйФактическиеПериодыИзРегистра.ПлановыйПериод = ЦеныНоменклатуры.Период
И ПлановыйФактическиеПериодыИзРегистра.ЕдиницаИзмерения = ЦеныНоменклатуры.ЕдиницаИзмерения
И ПлановыйФактическиеПериодыИзРегистра.торо_ТипЦеныДляРасчетаСебестоимостиРемонта = ЦеныНоменклатуры.ТипЦен
И ПлановыйФактическиеПериодыИзРегистра.Номенклатура = ЦеныНоменклатуры.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры1
ПО ПлановыйФактическиеПериодыИзРегистра.ФактическийПериод = ЦеныНоменклатуры1.Период
И ПлановыйФактическиеПериодыИзРегистра.ЕдиницаИзмерения = ЦеныНоменклатуры1.ЕдиницаИзмерения
И ПлановыйФактическиеПериодыИзРегистра.торо_ТипЦеныДляРасчетаСебестоимостиРемонта = ЦеныНоменклатуры1.ТипЦен
И ПлановыйФактическиеПериодыИзРегистра.Номенклатура = ЦеныНоменклатуры1.Номенклатура
СГРУППИРОВАТЬ ПО
ПлановыйФактическиеПериодыИзРегистра.ЗаявкаНаРемонт,
ПлановыйФактическиеПериодыИзРегистра.ПлановыйПериод,
ПлановыйФактическиеПериодыИзРегистра.ФактическийПериод,
ПлановыйФактическиеПериодыИзРегистра.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ЗатратыПланФакт.Номенклатура,
ЗатратыПланФакт.ЗаявкаНаРемонт,
СУММА(ЗатратыПланФакт.ПлановоеКоличество * ЦенаПланФакт.ПлановаяЦена) КАК ПлановаяСумма,
СУММА(ЗатратыПланФакт.ФактическоеКоличество * ЦенаПланФакт.ФактическаяЦена) КАК ФактическаяСумма,
СУММА(ЕСТЬNULL(ЗатратыПланФакт.ФактическоеКоличество * ЦенаПланФакт.ФактическаяЦена, 0) - ЕСТЬNULL(ЗатратыПланФакт.ПлановоеКоличество * ЦенаПланФакт.ПлановаяЦена, 0)) КАК СравнениеПланаФакта
ПОМЕСТИТЬ ПланФактМТО
ИЗ
ЗатратыПланФакт КАК ЗатратыПланФакт
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.торо_ПериодыВыполненияРемонтныхРабот КАК торо_ПериодыВыполненияРемонтныхРабот
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.торо_ПериодыВыполненияРемонтныхРабот КАК торо_ПериодыВыполненияРемонтныхРабот1
ПО торо_ПериодыВыполненияРемонтныхРабот.Родитель_ID = торо_ПериодыВыполненияРемонтныхРабот1.Родитель_ID
ПО ЗатратыПланФакт.ID = торо_ПериодыВыполненияРемонтныхРабот.ID
ЛЕВОЕ СОЕДИНЕНИЕ ЦенаПланФакт КАК ЦенаПланФакт
ПО ЗатратыПланФакт.ЗаявкаНаРемонт = ЦенаПланФакт.ЗаявкаНаРемонт
И ЗатратыПланФакт.Номенклатура = ЦенаПланФакт.Номенклатура
СГРУППИРОВАТЬ ПО
ЗатратыПланФакт.Номенклатура,
ЗатратыПланФакт.ЗаявкаНаРемонт
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ПланФактМТО.Номенклатура КАК Номенклатура,
ПланФактМТО.ЗаявкаНаРемонт КАК ЗаявкаНаРемонт,
ВЫБОР
КОГДА ПланФактМТО.ПлановаяСумма > 0
И ПланФактМТО.СравнениеПланаФакта / ПланФактМТО.ПлановаяСумма <= 0.1
И ПланФактМТО.СравнениеПланаФакта / ПланФактМТО.ПлановаяСумма >= -0.1
ТОГДА "Ремонт выполнен в пределах лимита"
КОГДА ПланФактМТО.ПлановаяСумма = 0
ИЛИ ПланФактМТО.СравнениеПланаФакта / ПланФактМТО.ПлановаяСумма < -0.1
ТОГДА "Превышен лимит"
ИНАЧЕ "Экономия лимита"
КОНЕЦ КАК СравнениеПланаФакта,
1 КАК Количество
ПОМЕСТИТЬ ОтклонениеОтПланаМТО
ИЗ
ПланФактМТО КАК ПланФактМТО
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ОтклонениеОтПланаМТО.Номенклатура, ЗНАЧЕНИЕ(справочник.номенклатура.пустаяссылка)) КАК Номенклатура,
ЕСТЬNULL(ОтклонениеОтПланаМТО.ЗаявкаНаРемонт, ЗНАЧЕНИЕ(Документ.торо_ЗаявкаНаРемонт.ПустаяСсылка)) КАК ЗаявкаНаРемонт,
ВложенныйЗапрос.СравнениеПланаФакта КАК Сравнение,
ЕСТЬNULL(ОтклонениеОтПланаМТО.Количество, 0) КАК Количество
ИЗ
(ВЫБРАТЬ
"Ремонт выполнен в пределах лимита" КАК СравнениеПланаФакта
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Превышение лимита"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Экономия лимита") КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ ОтклонениеОтПланаМТО КАК ОтклонениеОтПланаМТО
ПО ВложенныйЗапрос.СравнениеПланаФакта = ОтклонениеОтПланаМТО.СравнениеПланаФакта
УПОРЯДОЧИТЬ ПО
Сравнение
что не хватает запросу для нормального функционирования?