Имя: Пароль:
1C
1С v8
1с 8 Построитель отчета
0 DenisVich
 
27.12.17
12:29
Здравствуйте. Столкнулся со следующей проблемой. Вот запрос. Запрос правильный выполняется в консоле запросов:
"ВЫБРАТЬ
    ОборудованиеВРемонтеОстаткиИОбороты.Действие КАК Действие,
    ОборудованиеВРемонтеОстаткиИОбороты.Организация КАК Организация,
    ОборудованиеВРемонтеОстаткиИОбороты.Организация.Наименование КАК ОрганизацияНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Филиал КАК Филиал,
    ОборудованиеВРемонтеОстаткиИОбороты.Филиал.Наименование КАК ФилиалНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Контрагент КАК Контрагент,
    ОборудованиеВРемонтеОстаткиИОбороты.Контрагент.Наименование КАК КонтрагентНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Документ КАК Документ,
    ОборудованиеВРемонтеОстаткиИОбороты.Документ.МоментВремени КАК ДокументНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ОборудованиеВРемонтеОстаткиИОбороты.Номенклатура.Наименование КАК НоменклатураНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.СерийныйНомер КАК СерийныйНомер,
    ОборудованиеВРемонтеОстаткиИОбороты.СерийныйНомер КАК СерийныйНомерНаименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Регистратор,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ОборудованиеВРемонтеОстаткиИОбороты.Склад,
    ОборудованиеВРемонтеОстаткиИОбороты.Склад.Наименование КАК СкладНаименование
ПОМЕСТИТЬ ВТРемОиО
ИЗ
    РегистрНакопления.ОборудованиеВРемонте.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Регистратор, , ) КАК ОборудованиеВРемонтеОстаткиИОбороты
{ГДЕ
    (ОборудованиеВРемонтеОстаткиИОбороты.Регистратор.Дата >= &НачалоПериода) КАК ПолеПериода}

СГРУППИРОВАТЬ ПО
    ОборудованиеВРемонтеОстаткиИОбороты.Действие,
    ОборудованиеВРемонтеОстаткиИОбороты.Организация,
    ОборудованиеВРемонтеОстаткиИОбороты.Организация.Наименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Филиал,
    ОборудованиеВРемонтеОстаткиИОбороты.Филиал.Наименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Контрагент,
    ОборудованиеВРемонтеОстаткиИОбороты.Контрагент.Наименование,
    ОборудованиеВРемонтеОстаткиИОбороты.Документ,
    ОборудованиеВРемонтеОстаткиИОбороты.Номенклатура,
    ОборудованиеВРемонтеОстаткиИОбороты.Документ.МоментВремени,
    ОборудованиеВРемонтеОстаткиИОбороты.Номенклатура.Наименование,
    ОборудованиеВРемонтеОстаткиИОбороты.СерийныйНомер,
    ОборудованиеВРемонтеОстаткиИОбороты.Регистратор,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоНачальныйОстаток,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоПриход,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоРасход,
    ОборудованиеВРемонтеОстаткиИОбороты.КоличествоКонечныйОстаток,
    ОборудованиеВРемонтеОстаткиИОбороты.Склад,
    ОборудованиеВРемонтеОстаткиИОбороты.Склад.Наименование,
    ОборудованиеВРемонтеОстаткиИОбороты.СерийныйНомер
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТРемОиО.Действие КАК Действие,
    ВТРемОиО.Организация КАК Организация,
    ВТРемОиО.ОрганизацияНаименование,
    ВТРемОиО.Филиал КАК Филиал,
    ВТРемОиО.ФилиалНаименование,
    ВТРемОиО.Контрагент КАК Контрагент,
    ВТРемОиО.КонтрагентНаименование,
    ВТРемОиО.Документ КАК Документ,
    ВТРемОиО.ДокументНаименование,
    ВТРемОиО.Номенклатура КАК Номенклатура,
    ВТРемОиО.НоменклатураНаименование,
    ВТРемОиО.СерийныйНомер КАК СерийныйНомер,
    ВТРемОиО.СерийныйНомерНаименование,
    ВТРемОиО.Регистратор,
    ВТРемОиО.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ВТРемОиО.КоличествоПриход КАК КоличествоПриход,
    ВТРемОиО.КоличествоРасход КАК КоличествоРасход,
    ВТРемОиО.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ВТРемОиО.Склад КАК Склад,
    ВТРемОиО.СкладНаименование
ИЗ
    ВТРемОиО КАК ВТРемОиО
{ГДЕ
    (ВТРемОиО.Регистратор.Дата >= &НачалоПериода) КАК ПолеПериода}

УПОРЯДОЧИТЬ ПО
    Организация,
    Филиал,
    Склад,
    Контрагент,
    Номенклатура,
    Документ
ИТОГИ
    СУММА(КоличествоНачальныйОстаток),
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход),
    СУММА(КоличествоКонечныйОстаток)
ПО
    Действие,
    Организация,
    Филиал,
    Контрагент,
    Документ,
    Номенклатура,
    СерийныйНомер,
    Склад"

Но когда пропускаю его через построитель отчетов и отбор вывожу на форму и указываю что фильтрация по параметрам(которые в запросе) нужно применять - ПолеПериода - Да. Возникает ошибка:
" Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ОборудованиеВРемонтеОстаткиИОбороты.Регистратор.Дата <<?>>>= &НачалоПериода = &Параметр5"
Параметр передаю так:
    ПостроительОтчетаОбъект.Параметры.Свойство("НачалоПериода");
    ПостроительОтчетаОбъект.Параметры.Вставить("НачалоПериода",ПостроительОтчетаОбъект.Отбор.НачалоПериода);
Параметр успешно устанавливается(если смотреть в отладчике)
Но Построитель отчета после Выполнить() вываливает ошибку.
Если не передавать параметры вообще в коде 1С:
"    Не задано значение параметра "НачалоПериода"
ОборудованиеВРемонтеОстаткиИОбороты.Регистратор.Дата >= <<?>>&НачалоПериода = &Параметр3

"
Если не передавать парамтеры и в отборе указывать период как необязательное поле(убрать вариант {(..) КАК ПолеПериода}, сделать просто{..}) то запрос формирует, но БЕЗ ПЕРИОДА. Помогите Спасибо.
1 catena
 
27.12.17
12:33
нельзя так построителю говорить, в ГДЕ только поля перечисляются, на которые в процессе можно будет наложить отборы.
2 catena
 
27.12.17
12:34
Можно написать
Где (Дата>&НачалоПериода или &НачалоПериода=ДатаВремя(1,1,1))
3 DenisVich
 
27.12.17
17:55
Установка этого периода не помогает.
4 DenisVich
 
27.12.17
17:56
Берется весь период
5 GANR
 
27.12.17
18:14
(0) Поиграйся в отладчике с ПостроительОтчета.ПолучитьЗапрос()
6 catena
 
28.12.17
05:25
(4)Ну, если вы это все написали, все-таки, в условия построителя, то надо, помимо установки параметра, еще и отбор на самом поле включить.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн