Коллеги привожу ошибку исполнения СКД, ниже код запроса. По факту параметра ПЗ нигде нет(
Ошибка при исполнении запроса набора данных
по причине:
{(40, 4)}: Ошибка обработки представления "РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних:Несоответствие типов (Параметр номер ""1"")"
<<?>>РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&П3, ) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
Ошибка при исполнении запроса набора данных
по причине:
{(40, 4)}: Ошибка обработки представления "РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних:Несоответствие типов (Параметр номер ""1"")"
<<?>>РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&П3, ) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
ВЫБРАТЬ
Остатки.Артикул,
СУММА(Остатки.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
Остатки.Склад,
Остатки.Номенклатура,
Приход.КолВоПриход,
Приход.Излишки,
Приход.ПерекомплектацияПриход,
Приход.КолВоПроизведено,
ЕСТЬNULL(Приход.КолВоПриход, 0) КАК КолВоПриходNULL,
РасходПроизводство.КолВоПоНорме,
РасходПроизводство.КолВоПоФакту
ИЗ
(ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
СпрНоменклатура.Артикул КАК Артикул,
ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
СпрНоменклатура.Ссылка КАК Номенклатура
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Ссылка = СпрНоменклатура.Ссылка
ГДЕ
СпрНоменклатура.Ссылка = &Номенклатура) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Комплектующая,
СУММА(ЕСТЬNULL(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ, 0) * СпецификацииНоменклатурыИсходныеКомплектующие.Количество) КАК КолВоПоНорме,
СУММА(ЕСТЬNULL(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(МатериалыВПроизводствеОбороты.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
ТОГДА МатериалыВПроизводствеОбороты.КоличествоРасход
КОНЕЦ, 0)) КАК КолВоПоФакту
ИЗ
РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&КонецПериода, ) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
ПО ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры = СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ТоварыНаСкладахОбороты
ПО ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОбороты.Номенклатура,
РегистрНакопления.МатериалыВПроизводстве.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Затрата = &Номенклатура) КАК МатериалыВПроизводствеОбороты
ГДЕ
СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Активная = ИСТИНА
И СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОбъектов.Утвержден)
И СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура = &Номенклатура
СГРУППИРОВАТЬ ПО
СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура) КАК РасходПроизводство
ПО Остатки.Номенклатура = РасходПроизводство.Комплектующая
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Номенклатура,
СУММА(ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ) КАК КолВоПриход,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ОприходованиеТоваров)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ КАК Излишки,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.КомплектацияНоменклатуры)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ КАК ПерекомплектацияПриход,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ КАК КолВоПроизведено
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ТоварыНаСкладахОбороты
ПО (ТоварыНаСкладахОбороты.Номенклатура = СпрНоменклатура.Ссылка)
ГДЕ
СпрНоменклатура.Ссылка = &Номенклатура
СГРУППИРОВАТЬ ПО
СпрНоменклатура.Ссылка,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ОприходованиеТоваров)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.КомплектацияНоменклатуры)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ТоварыНаСкладахОбороты.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
ТОГДА ТоварыНаСкладахОбороты.КоличествоПриход
КОНЕЦ) КАК Приход
ПО Остатки.Номенклатура = Приход.Номенклатура
ГДЕ
Остатки.Склад = &Склад
СГРУППИРОВАТЬ ПО
Остатки.Склад,
Остатки.Артикул,
Остатки.Номенклатура,
Приход.КолВоПриход,
Приход.Излишки,
Приход.ПерекомплектацияПриход,
Приход.КолВоПроизведено,
РасходПроизводство.КолВоПоНорме,
РасходПроизводство.КолВоПоФакту
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(11)
аналогичное со стандартным периодом вылезло. До определенного момента причем работало, но после усложнения запроса стал вываливаться в ошибку представления. (добавил ЕЩЕ одну временную таблицу). Не знаю.. может в том, что в одних таблицах период начало и конец, а в новой - регистр остатки срез последних.
закинул. не стал делать стандартный период.. не страл делать структуру вывода с группами, просто накидал поля.. работает.. сейчас буду затачивать как нужно и смотреть... вылезит ли и если
аналогичное со стандартным периодом вылезло. До определенного момента причем работало, но после усложнения запроса стал вываливаться в ошибку представления. (добавил ЕЩЕ одну временную таблицу). Не знаю.. может в том, что в одних таблицах период начало и конец, а в новой - регистр остатки срез последних.
В общем други давайте думать вместе.... После того как создал новый отчет и вставил в него работающий запрос с вынесением в структуру данных полей всё заработало. Но... в СКД упорно появляется параметр "Период" и тянется он из регистра сведений
РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних. И начинается следующее..вешаю на "Период" стандартный период и параметры НачалоПериода и КонецПериода, после этого начинает появляться вышеописанная ошибка. В параметрах СКД создаю параметр "ПериодОтчета" делаю стандартным периодом и соответственно привязываю НачалоПериода и КонецПериода...Но возникает одно большое НО. Регистр сведений никак не хочет видить параметр КонецПериода который у него указан в виртуальной таблице и запрашивает свой. Если указываю стандартный период равный месяцу, а параметр "Период" = КонецПериода то всё работает. Но спрашивается зачем мне его указывать явно((. В чем трабла?
в параметрах СКД у параметра в выражение написал "&ПериодОтчета.ДатаОкончания" и поставил ограничение на параметр.
Но не понятно почему всё же не видит параметр из виртуальной таблицы
РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних. И начинается следующее..вешаю на "Период" стандартный период и параметры НачалоПериода и КонецПериода, после этого начинает появляться вышеописанная ошибка. В параметрах СКД создаю параметр "ПериодОтчета" делаю стандартным периодом и соответственно привязываю НачалоПериода и КонецПериода...Но возникает одно большое НО. Регистр сведений никак не хочет видить параметр КонецПериода который у него указан в виртуальной таблице и запрашивает свой. Если указываю стандартный период равный месяцу, а параметр "Период" = КонецПериода то всё работает. Но спрашивается зачем мне его указывать явно((. В чем трабла?
в параметрах СКД у параметра в выражение написал "&ПериодОтчета.ДатаОкончания" и поставил ограничение на параметр.
Но не понятно почему всё же не видит параметр из виртуальной таблицы
(14) Dmitry_Shelchkov, Переименовать в запросе?
Переименовал , теперь в СКД 3 параметра: НачалоОтчета,КонецОтчета, ПериодОтчета))
В общем как показал гуглёжь мои метод один из правильных.
НачалоПериода и КонецПериода появляются при использование оборотных регистров
Период при использование регистра остатков.
В параметрах Период ограничивается и в выражение приравнивается либо к НачалоПериода либо КонецПериода в зависимости от того какой срез нужен
Переименовал , теперь в СКД 3 параметра: НачалоОтчета,КонецОтчета, ПериодОтчета))
В общем как показал гуглёжь мои метод один из правильных.
НачалоПериода и КонецПериода появляются при использование оборотных регистров
Период при использование регистра остатков.
В параметрах Период ограничивается и в выражение приравнивается либо к НачалоПериода либо КонецПериода в зависимости от того какой срез нужен
Переименовать в запросе.
В оборотном регистре, если явно не указан параметр, то появляются скдэшные "НачалоПериода" и "КонецПериода", поэтому нежелательно использовать параметры с таким именем в запросах - могут конфликтовать. В итоге в параметрах должны появиться и наши параметры и эти, добавляем стандартный период, на все параметры вешаем Период.ДатаОкончания и Период.ДатаНачала и все работает))
В оборотном регистре, если явно не указан параметр, то появляются скдэшные "НачалоПериода" и "КонецПериода", поэтому нежелательно использовать параметры с таким именем в запросах - могут конфликтовать. В итоге в параметрах должны появиться и наши параметры и эти, добавляем стандартный период, на все параметры вешаем Период.ДатаОкончания и Период.ДатаНачала и все работает))
Долгая медитация и расследования привели к следующему результату.
Если коротко: Параметры для СКД устанавливать на вкладке "компоновка данных" в конструкторе запроса.
И длинно:
В конструкторе запроса на вкладке "таблицы и поля" параметру виртуальной таблицы *СрезПоследних "Период" задаем имя "&Период1". Имеются другие виртуальные таблицы с параметрами "НачалоПериода" и "КонецПериода". СКД создает параметры: "НачалоПериода" тип "дата", "КонецПериода" тип "дата" и "Период1" тип "дата" Параметр "Период" тип "СтандартныйПериод" создадим для удобства повесив Период.ДатаОкончания и Период.ДатаНачала на соответствующие параметры. При выполнении выдает ошибку примерно следующего толка: "Ошибка обработки представления "РегистрСведений.*.СрезПоследних:Несоответствие типов (Параметр номер ""1"")"ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрСведений.*.СрезПоследних(&П3, )"
Что за параметр П3 (пэ три)?! И именно в этот момент стоить обратить внимание вкладку "компоновка данных" в конструкторе запроса. И на ней мы обнаружим, что у параметров виртуальной таблицы нет установленных нами значений! Задаём имя параметру "период" - "&ПериодКД". Теперь на вкладке "Параметры" в СКД появится параметр ПериодКД (с типом "дата") и повесив на него Период.ДатаОкончания убедимся что все работает.
В тексте запроса это выглядит так: ... РегистрСведений.*.СрезПоследних(&Период1 {(&ПериодКД)}, ) КАК ...
Если коротко: Параметры для СКД устанавливать на вкладке "компоновка данных" в конструкторе запроса.
И длинно:
В конструкторе запроса на вкладке "таблицы и поля" параметру виртуальной таблицы *СрезПоследних "Период" задаем имя "&Период1". Имеются другие виртуальные таблицы с параметрами "НачалоПериода" и "КонецПериода". СКД создает параметры: "НачалоПериода" тип "дата", "КонецПериода" тип "дата" и "Период1" тип "дата" Параметр "Период" тип "СтандартныйПериод" создадим для удобства повесив Период.ДатаОкончания и Период.ДатаНачала на соответствующие параметры. При выполнении выдает ошибку примерно следующего толка: "Ошибка обработки представления "РегистрСведений.*.СрезПоследних:Несоответствие типов (Параметр номер ""1"")"ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрСведений.*.СрезПоследних(&П3, )"
Что за параметр П3 (пэ три)?! И именно в этот момент стоить обратить внимание вкладку "компоновка данных" в конструкторе запроса. И на ней мы обнаружим, что у параметров виртуальной таблицы нет установленных нами значений! Задаём имя параметру "период" - "&ПериодКД". Теперь на вкладке "Параметры" в СКД появится параметр ПериодКД (с типом "дата") и повесив на него Период.ДатаОкончания убедимся что все работает.
В тексте запроса это выглядит так: ... РегистрСведений.*.СрезПоследних(&Период1 {(&ПериодКД)}, ) КАК ...
user611391_nt-im; konstantinnikolaew; 1c_ssnik; Spacer; improg; Blink1990; sasha777666; user1730557; werd00; pavel_vrn; karg; denis83; MaximKulkov; taasha25; Климов; Rusel; saszj; fatman78; user1667741; Raskad; user988448; sdaf; goliath-itd; nelya1c; a22011973; Corbis; yaroslav.artem; begemot; Innuil; ipzotov; leralugovaya; Anatolia; Enot; user688921_moldpavel; MarMargo; EpiSH; DIOmisus; thornhiven; Veric; Iva_Irina_Iva; shevchen88; zaycevav1977; ejijoka; user_pdd; mnitsi; &rew; user1402183; Tutr; Julia7150; kulak1974; criptid; serverstar; link_l; maksimus753; user712426; sizeoff; _Dmitry_; Invodev; TManukovskaya; NittenRenegade; Maruska77; vikochkagridina; merabn; Den_D; user785234; Andrekaa; vtolstenev; salikoff; akalugin; user1040665; jimli; BurlakovIvan; Mahon83; blackjack666; Draconus; user659124_s.kostina; aupovy; Salavat; Pigzilla; user1058210; newborn; fixin; nixen88; MaxxiMiliSan; Xel'naga; WasiliyMay; Slypower; ivanek; Jackch; Mehozavr; Andy_NTG; alenka1c; Meson; V_Izzy; dvadva; simy4; Somaha; Sergey_Borisovi4; delsoft; SmArtist; smokevg; AleksKol; Vida; user1044069; lsnr; spenser123; user811769; YellowAndBlue; compaud; JinAir7460; k992007; ilya4; Inzoo; Georot; mlv84; cobern; SometimesItDoesWork; terran_1C; user1003854; tarassov; корум; Gadzhalik; VasilyErmak; MulderCelica; _Farsh_; Ctrl P; levante90; mkosirev; BladeWorld; AnyaIT; Amfick; Bovori; DarkUser; vist666; Dicc; scanner1980; oleg55555; GOshaSaveiko; pihy; АнатолийАндреевич; alalsl; bluntschi; Misanets; suepifanov; Elena_Q; Georgik; bobah_; Lunulariss;
+148
–
Ответить
(17)
компоновка данных" в конструкторе запроса.
да блин, охрененное, неее..ческое спасибо, это так неочевидно, на закладке "компоновка данных" вообще и не думал что можно устанавливать параметры.
(17)
Тоже долго мучился с этим, спасибо!
На самом деле можно просто РегистрСведений.*.СрезПоследних( {(&ПериодКД)}, ) то есть просто использовать параметр виртуальной таблицы компоновки данных. В "привычном" месте указывать параметры виртуальной таблицы вообще не нужно.
РегистрСведений.*.СрезПоследних(&Период1 {(&ПериодКД)}, )
Тоже долго мучился с этим, спасибо!
На самом деле можно просто РегистрСведений.*.СрезПоследних( {(&ПериодКД)}, ) то есть просто использовать параметр виртуальной таблицы компоновки данных. В "привычном" месте указывать параметры виртуальной таблицы вообще не нужно.
(17) Спасибо, реально помогло. Перемудрили они там в своем 1Се.
Мой кейс выглядит так, вот так заработало:
Мой кейс выглядит так, вот так заработало:
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТЦ.Номенклатура КАК Номенклатура,
ТЦ.Характеристика КАК Характеристика,
ТЦ.Цена КАК Цена
ПОМЕСТИТЬ ТЦеныРозничные
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ПериодСреза {(&ПериодСреза)}, ВидЦены = &ВидЦеныРозничная) КАК ТЦ
{ГДЕ
ТЦ.Номенклатура.* КАК Номенклатура,
ТЦ.Характеристика.* КАК Характеристика}
Показать
(17) а не проще для стандартного периода выбрать нетиповое наименование, например, "ПериодОтч", а представление задать "Период", тогда для параметра НачалоПериода (КонецПериода) выражения поменяются с &Период.ДатаНачала (&Период.ДатаОкончания) на &ПериодОтч.ДатаНачала (&ПериодОтч.ДатаОкончания) и остальные танцы с бубном не нужны
Аналогично тема помогла сегодня. Тоже добавил к уже несвежему отчету регистр сведений, периодический. Потребовалось прикрутить статус из среза последних к объекту. И сразу получил ошибку типа "Ошибка обработки представления "РегистрСведений......"
Но быстро в первых же постах этой темы наткнулся на мысль, у меня период отчета назывался "Период", сразу вспомнил, что при добавлении периодического регистра в параметрах появляется новый стандартный параметр Период.
Пришлось сначала удалить регистр сведений из запроса, изменить наименование моего Период на ПериодОтчета и затем назад Регистр сведений вернул.
Все взлетело.
Но быстро в первых же постах этой темы наткнулся на мысль, у меня период отчета назывался "Период", сразу вспомнил, что при добавлении периодического регистра в параметрах появляется новый стандартный параметр Период.
Пришлось сначала удалить регистр сведений из запроса, изменить наименование моего Период на ПериодОтчета и затем назад Регистр сведений вернул.
Все взлетело.
Спасибо - это самое малое, что можно сказать! Это просто невозможно понять, и требует кучу времени для самостоятельного разбирательства. Автор - ты нам часть жизни сэкономил! А я-то начал крутить-вертеть, вместо запроса с объединением сделал два отдельных и т.п. СПАСИБО!!
При добавлении в запрос СКД накопительных регистров появляются автоматические параметры НачалоПериода и КонецПериода тип Дата. При добавлении периодических регистров - параметр Период тоже тип Дата. Не надо менять типы этих параметров и ошибки не будет.
Нашёл эту статью по тексту ошибки. Хочу вставить свои 5 копеек. В моем случае, я использовал параметр с именем «Параметр» тип Стандартный период и все работало тип-топ. Но вот пришлось создать соединение с виртуальной таблицей регистра сведений срез последних и отчёт перестал формироваться с формулировкой ошибки, которую мы обсуждаем. Причина оказалась в том, что после того как я добавил в таблицы виртуальную таблицу, СКД автоматически добавило параметр этой таблицы в параметры данных. А так как имена этих параметров совпали («Период»), то я и не заметил этого эффекта, и не вспомнил, что для СКД это норм. Назови я свой параметр «ПериодОтчета» то никаких проблем бы не было. Пришлось развести эти параметры на вкладке Параметры и все заработало, что в общем-то, логично. Добавляя виртуальные таблицы нужно обязательно проверять ошибки совпадения имён параметров.
Так же столкнулся с ошибкой при формировании отчета, но ситуация немного другая: мне нужен срез по параметру который никак не связан с периодом отчета. Если точнее то мне нужен был срез на конкретную дату не зависимую от параметров отчета. Вроде кто то писал про автозаполнение, но почему то никто не поддержал, по моему это решение самое простое.
Снимаем галку "автозаполнение" (тогда СКДшный период пропадет из закладки параметров СКД). Это в общем то все что мне было нужно, что бы срез заработал.
Если нужен стандартный период, то смело добавляем его и устанавливаем к нашим параметрам начало и конец стандартного периода.
Конечно выбранные поля нужно выбрать в компановщике, что бы появились поля в СКД .
Всем удачи, а разработчикам платформы огромный привет и "спасибо что сломали", а то жизнь медом показалась =)
Снимаем галку "автозаполнение" (тогда СКДшный период пропадет из закладки параметров СКД). Это в общем то все что мне было нужно, что бы срез заработал.
Если нужен стандартный период, то смело добавляем его и устанавливаем к нашим параметрам начало и конец стандартного периода.
Конечно выбранные поля нужно выбрать в компановщике, что бы появились поля в СКД .
Всем удачи, а разработчикам платформы огромный привет и "спасибо что сломали", а то жизнь медом показалась =)
Самое простое - никогда не использовать параметр "Период". Лучше ограничивать его видимость, создавать свой параметр "ПериодОтчета" и использовать его.
Прикрепленные файлы:

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот