Период по условию в запросе СКД #799488


#0 by ZAKZAK
Есть отчет на СКД, источником данных является следующий запрос: Отчет формируется за (вчера) и уходит в рассылку. Нужно что бы в понедельник отчет формировался за пятницу. Если добавить "выбор" то ругается на неверный параметр у ВТ остатки и обороты.     РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец}, {Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец}, Авто, ДвиженияИГраницыПериода, , , ) КАК ИсточникДанных С с не ВТ таблицами решается простым условиям "ГДЕ" а как быть в этой ситуации? _________ Спасибо!
#1 by ZAKZAK
дублирую второй запрос с подсветкой синтаксиса: ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец)}, {(Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец)}, Авто, ДвиженияИГраницыПериода, , , ) КАК ИсточникДанных
#2 by ZAKZAK
а он всё равно не светится..
#3 by HEKPOH
оставить простые параметры в запросе. а в Запрос.УстановитьПараметр(... подсовываать вычисленную дату
#4 by ZAKZAK
Отчет в виде настройки для универсального отчета. Такое вмешательство не предусмотрено
#5 by ZAKZAK
Вот пример рабочего запроса для СКД ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ     РегистрНакопления.КакойТоРегистор КАК ИсточникДанных {ГДЕ     (ИсточникДанных.Период >= Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец),     (ИсточникДанных.Период <= Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец)}
#6 by HEKPOH
ну, не знаю))) В СКД на закладке Параметры выражение с ВЫБОР КОГДА скушается на "ура"
#7 by ZAKZAK
Но дело в том что у ВТ Остатки и обороты нету поля период. и условием "ГДЕ" отобрать нельзя.. В этом и вопрос, как поставить условие в запросе для ВТ
#8 by HEKPOH
1. У нас есть "НачалоПериода" и "КонецПериода" 2. Если не получается сделать такой хитрый параметр, нужно искать другие пути (один из которых я и предложил)
#9 by ZAKZAK
я уже попробовал ваш вариант, добавить условие в выражение, при добавлении предупредил что поле "День" не найдено.
#10 by HEKPOH
У СКД свой язык выражений. Он отличается от языка запросов 1С
#11 by HEKPOH
Выбор Когда ДеньНедели(ТекущаяДата) = 7 Тогда ДобавитьКДате(ТекущаяДата, "День", -2) Иначе ТекущаяДата Конец
#12 by ZAKZAK
Спасибо, сейчас проверю! Не подскажите где можно посмотреть полный синтаксис?
#13 by Лефмихалыч
Нахера это всё? Просто в коде формирования отчета перед отправкой воткнуть установку параметров в соответствии с производстевнным календарем. Не ломая запрос.
#14 by Лефмихалыч
а потм выяснится, что после праздников надо,чтобы за последний рабочий день формировалось и чо делать? Еще гвозди в запрос забивать?
#15 by HEKPOH
+ либо параметр вычислять в функции общего модуля. Так даже красивее будет, имхо
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям