Консоль запросов — не работает зарос
Консоль запросов http://catalog.mista.ru/public/335504/ вылетает с ошибкой:
<ВнешняяОбработка.КонсольЗапросовУФ.МодульОбъекта(98)>: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = ппЗапрос.Выполнить();
по причине:
<(11, 35)>: Неверные параметры «НАЧАЛОПЕРИОДА»
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА( >ВЫБОР
Сам запрос взял из СКД отчета АнализНачисленийУдержаний
Вот его кусок:
ВЫБРАТЬ
0 КАК Цифра
ПОМЕСТИТЬ ВТЦифры
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Цифры.Цифра + ЕСТЬNULL(Цифры10.Цифра, 0) * 10 + ЕСТЬNULL(Цифры100.Цифра, 0) * 100 + ЕСТЬNULL(Цифры1000.Цифра, 0) * 1000 + ЕСТЬNULL(Цифры10000.Цифра, 0) * 10000 + ЕСТЬNULL(Цифры100000.Цифра, 0) * 100000 КАК чтото
ПОМЕСТИТЬ ПредставленияПериоды
ИЗ
ВТЦифры КАК Цифры
ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры10
ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ) > 9)
ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры100
ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ) > 99)
ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры1000
ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ) > 999)
ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры10000
ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ) > 9999)
ЛЕВОЕ СОЕДИНЕНИЕ ВТЦифры КАК Цифры100000
ПО (РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ) > 99999)
ГДЕ
НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ, МЕСЯЦ), МЕСЯЦ, Цифры.Цифра + ЕСТЬNULL(Цифры10.Цифра, 0) * 10 + ЕСТЬNULL(Цифры100.Цифра, 0) * 100 + ЕСТЬNULL(Цифры1000.Цифра, 0) * 1000 + ЕСТЬNULL(Цифры10000.Цифра, 0) * 10000 + ЕСТЬNULL(Цифры100000.Цифра, 0) * 100000), МЕСЯЦ) МЕЖДУ ВЫБОР
КОГДА &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(1980, 1, 1)
ИНАЧЕ &НачалоПериода
КОНЕЦ И ВЫБОР
КОГДА &КонецПериода = КОНЕЦПЕРИОДА(ДАТАВРЕМЯ(1, 1, 1), МЕСЯЦ)
ТОГДА &ОкончаниеИнтервалаПредставленияПериоды
ИНАЧЕ &КонецПериода
КОНЕЦ
Источник
Ну заколебался уже с Период, НачалоПериода и КонецПериода в СКД
Два запроса в СКД. Один по ОстаткиИОбороты, второй по Остатки. Соответственно, у каждой из виртуальных таблиц указано (согласно рекомендациям по решению этого глюка) параметры &нПериод, &кПериод и у таблицы остатков &нПериод.
Данные параметры имеют тип Дата, а не СтандартныйПериод.
В запросах эти параметры указаны принудительно. И один фиг ошибка «Ошибка обработки представления РегистрНакопления.ТоварыНаСкладах.Остатки. Несоответствие типов (Параметр номер «»1″»)», РегистрНакопления.ТоварыНаСкладах.Остатки(П3, Организация В(П4)) КАК ОстаткиТоваровНаСкладах.
Как ещё можно решить эту ошибку?
Тоже не врубаюсь, в чем проблема.
Подозреваю, что фигню какую-то делаешь.
(1) Ну там связано с тем, что &Период, &НачалоПериода и &КонецПериода, это зарезервированные СКД выражения. Которые подставляются по умолчанию в параметры.
При указании двух наборов данных в СКД например таблицы ОстаткиИОбороты и таблицы Остатки, СКД пытается в таблицу остатки передать в качестве параметра даты &Период. А он имеет тип «Стандартный период» и дату из него получить не получится.
Вот подобная проблема. Только приведенное там решение нефига не помогает (последнее сообщение)
(3) > тип «Стандартный период» и дату из него получить не получится.
ясен пень, у него ведь 2 даты: .ДатаНачала и .ДатаОкончания
(0)
1. Вводишь новый параметр ПериодОтчета — стандартный период.
2. НачалоПериода в занчениях приравниваешь к &ПериодОтчета.ДатаНачала
Источник
В СКД указать НачалоГода()
но в итоге ошибка на минус «-«.
Какие варианты еще использовать функцию «НачалоГода()» в СКД?
ну почему же.. ТС же ясно выразился: сделать через вычисляемое поле. зачем же предлагать корректировать запрос?
(12) Иногда народ не умея пользоваться запросами, пытается вычислять в полях то , что можно получить уже в запросе.
Зачем вычислять что-то , если уже поле запроса будет содержать все что нужно?
Вы же умничаете совсем не по указанному вопросу, то ли не имея за душой никаких знаний, кроме язвительности , то ли выступая как сноб.
(13) Во-первых, уверен, народу как раз обычно проще решить задачу, скорректировав запрос. Да вот реальность такова, что иногда приходится добавлять функционал, когда запрос менять нежелательно.
Во-вторых, постарайтесь взглянуть на мое замечание без предубежденности против «умников». Замечание сделано по-существу. С точки зрения сообщества важна не мотивация автора замечания, а, собственно, содержимое его поста. Домысливать, зачем пост оставлен — контрпродуктивно. Если пост сам по себе корректен, не все ли равно Вам, с какой целью его написали?
(14) Как минимум рад, что мы понимаем одинаково, что разумнее именно запросом решать задачи подобные поставленной.
А вот со вторым позволю себе не согласиться. Вы оглянитесь сколько появилось тут «студентов», которые понятия порой не имеют о возможностях 1С, но лезут программировать сложнейшие порой вещи (речь не про присутствующих тут. ). И соответственно вопросы порой задают таааакие!
И вы будете настаивать про контрпродуктивность в попытках хоть как-то донести истинные возможности 1С? Нужно по вашему тупо решать озвученную таким студентом задачу, да еще им же предложенным методом? Уверен , что вы погорячились насчет «контрпродуктивности».
Все должно быть разумно — с такой формулировкой — согласен. И когда авторы детально описывают свои проблемы и свои задачи — только радуешься, что не перевелись еще разумные люди среди нас!
Источник
Проблема с периодом на форме
есть шаблон макета!я делаю отчет СКД!вставляю эту форму,создаю три макета!на форме есть выбор между макетами!первые два макета составлены из регистров накопления,в запросе что связано с периодом у меня вот так
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, День, , ) КАК ТоварыНаСкладахОстаткиИОбороты
третий макет составлен из документа,и естественно такой запрос не лезет!!
период не работает для третьего макета выдает все что есть!
ниже скрины!
и сам отчет
(1) да кто ж тебя грамоте учил
параметры виртуальной таблицы называются
НачалоПериода и КонецПериода
у тебя в СКД нет связи твоих дата начала и дата конец с параметрами виртуальной таблицы
используй параметры как требует СКД и не мучайся
(5)Нужно в запрос добавить параметры.
В событии ПриКомпоновкеРезультата добавить заполнение параметров.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Настройки = КомпоновщикНастроек.Настройки;
ЭД = Настройки.ПараметрыДанных.Элементы.Найти(«Дата1»);
ЭД.Значение = ЗначениеПараметра1;
ЭД.Использование = Истина;
ЭД = Настройки.ПараметрыДанных.Элементы.Найти(«Дата2»);
ЭД.Значение = ЗначениеПараметра1;
ЭД.Использование = Истина;
(7) у тебя параметры не так названы назови НачалоПериода и КонецПериода
еще раз в запросе должно стоять НачалоПериода и КонецПериода
(11) РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, День, , ) КАК ТоварыНаСкладахОстаткиИОбороты
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ТоварыНаСкладахОстаткиИОбороты
проверить на вкладке параметры СКД должны быть только 2 параметра НачалоПериода и КонецПериода
(24) Успокойся, все нормально, ты еще станешь далеким и вполне себе нормальным специалистом.
Поверь, как человеку, который, по опыту и воспитанию тебя, судя по всему гораздо старше. То, что ты ему насоветовал не дало ему понимания того, что он сделал, раз уж ты решил быть бизоном. Тут у нас сообщество, а не балаган, и джунам помогают и эти джуны потом помогают. А когда у другого джуна начинает лезть из всех щелей гонор с первых комментариев, таких, как по мне, лучше убирать.
И да, признаю, я не качал его обработку.
Если есть желание подискутировать, милости прошу(нет) в ЛС, тут срачу не место
(2) последний вот такой пробывал
ВЫБРАТЬ
ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Дата,
ПроизводственныеЦиклыТаблицаЦиклов.Продукт,
ПроизводственныеЦиклыТаблицаЦиклов.Полуфабрикат,
ПроизводственныеЦиклыТаблицаЦиклов.СкладОтправитель,
ПроизводственныеЦиклыТаблицаЦиклов.Подразделение,
ПроизводственныеЦиклыТаблицаЦиклов.Количество,
ПроизводственныеЦиклыТаблицаЦиклов.Циклы,
ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Заказ,
ПроизводственныеЦиклыТаблицаЦиклов.СкладПолучатель
ИЗ
Документ.ПроизводственныеЦиклы.ТаблицаЦиклов КАК ПроизводственныеЦиклыТаблицаЦиклов
Нет условия
Где ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
он ругаться начал
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
<(13, 1)>: Синтаксическая ошибка «Нет»
>Нет условия
(6)все понял,подъустал малеха,что то лишнее в запросе!
ВЫБРАТЬ
ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Дата,
ПроизводственныеЦиклыТаблицаЦиклов.Продукт,
ПроизводственныеЦиклыТаблицаЦиклов.Полуфабрикат,
ПроизводственныеЦиклыТаблицаЦиклов.СкладОтправитель,
ПроизводственныеЦиклыТаблицаЦиклов.Подразделение,
ПроизводственныеЦиклыТаблицаЦиклов.Количество,
ПроизводственныеЦиклыТаблицаЦиклов.Циклы,
ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Заказ,
ПроизводственныеЦиклыТаблицаЦиклов.СкладПолучатель
ИЗ
Документ.ПроизводственныеЦиклы.ТаблицаЦиклов КАК ПроизводственныеЦиклыТаблицаЦиклов
Где ПроизводственныеЦиклыТаблицаЦиклов.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
вот так заработал!))
извинете ребят,спасибо всем!)
Источник
Использование параметров — периодов в системе компоновки данных
Использование дат
Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты «Дата».
После этого пользователь сможет вводить в параметры данных только значения дат, без времени.
Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты
В данном примере в качестве значений параметров виртуальной таблицы будут передаваться начало и конец дней, выбранных пользователем.
Использование стандартных периодов
Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.
Для того чтобы задействовать данную возможность следует добавить в схему компоновки данных параметр типа СтандартныйПериод , а в параметрах — датах указать соответствующие выражения и запретить их редактирование пользователем.
После такой доработки схемы компоновки пользователю будет доступен для редактирования только параметр Период , значения которого при помощи выражений будут помещены в параметры ПериодНачало и ПериодКонец .
Пользователь будет редактировать параметр в следующем виде:
Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019 , а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019 .
Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020 , а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020
Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00 , а конечная дата 23:59:59 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .
Источник