|
Период по условию в запросе СКД | ☑ | ||
---|---|---|---|---|
0
ZAKZAK
19.06.17
✎
15:41
|
Есть отчет на СКД, источником данных является следующий запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ* ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({&НачалоПериода} ,{&КонецПериода} ,Авто) КАК ИсточникДанных Отчет формируется за (вчера) и уходит в рассылку. Нужно что бы в понедельник отчет формировался за пятницу. Если добавить "выбор" то ругается на неверный параметр у ВТ остатки и обороты. ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец}, {Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец}, Авто, ДвиженияИГраницыПериода, , , ) КАК ИсточникДанных С с не ВТ таблицами решается простым условиям "ГДЕ" а как быть в этой ситуации? _________ Спасибо! |
|||
1
ZAKZAK
19.06.17
✎
15:42
|
дублирую второй запрос с подсветкой синтаксиса:
ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец)}, {(Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец)}, Авто, ДвиженияИГраницыПериода, , , ) КАК ИсточникДанных |
|||
2
ZAKZAK
19.06.17
✎
15:43
|
(1) а он всё равно не светится..
|
|||
3
HEKPOH
19.06.17
✎
15:50
|
оставить простые параметры в запросе. а в Запрос.УстановитьПараметр(... подсовываать вычисленную дату
|
|||
4
ZAKZAK
19.06.17
✎
15:52
|
(3) Отчет в виде настройки для универсального отчета. Такое вмешательство не предусмотрено
|
|||
5
ZAKZAK
19.06.17
✎
15:53
|
Вот пример рабочего запроса для СКД
ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ РегистрНакопления.КакойТоРегистор КАК ИсточникДанных {ГДЕ (ИсточникДанных.Период >= Выбор Когда ДеньНедели(&НачалоПериода) = 7 Тогда ДобавитьКДате(&НачалоПериода, День, -2) Иначе &НачалоПериода Конец), (ИсточникДанных.Период <= Выбор Когда ДеньНедели(&КонецПериода) = 7 Тогда ДобавитьКДате(&КонецПериода, День, -2) Иначе &КонецПериода Конец)} |
|||
6
HEKPOH
19.06.17
✎
15:55
|
(4) ну, не знаю))) В СКД на закладке Параметры выражение с ВЫБОР КОГДА скушается на "ура"
|
|||
7
ZAKZAK
19.06.17
✎
15:56
|
(5) Но дело в том что у ВТ Остатки и обороты нету поля период. и условием "ГДЕ" отобрать нельзя..
В этом и вопрос, как поставить условие в запросе для ВТ |
|||
8
HEKPOH
19.06.17
✎
16:00
|
(7)
1. У нас есть "НачалоПериода" и "КонецПериода" 2. Если не получается сделать такой хитрый параметр, нужно искать другие пути (один из которых я и предложил) |
|||
9
ZAKZAK
19.06.17
✎
16:06
|
(8) я уже попробовал ваш вариант, добавить условие в выражение, при добавлении предупредил что поле "День" не найдено.
Результат - ошибка в выражении |
|||
10
HEKPOH
19.06.17
✎
16:09
|
(9) У СКД свой язык выражений. Он отличается от языка запросов 1С
|
|||
11
HEKPOH
19.06.17
✎
16:11
|
Выбор Когда ДеньНедели(ТекущаяДата()) = 7 Тогда ДобавитьКДате(ТекущаяДата(), "День", -2) Иначе ТекущаяДата() Конец
|
|||
12
ZAKZAK
19.06.17
✎
16:16
|
(11) Спасибо, сейчас проверю!
Не подскажите где можно посмотреть полный синтаксис? |
|||
13
Лефмихалыч
19.06.17
✎
16:20
|
Нахера это всё?
Просто в коде формирования отчета перед отправкой воткнуть установку параметров в соответствии с производстевнным календарем. Не ломая запрос. |
|||
14
Лефмихалыч
19.06.17
✎
16:20
|
а потм выяснится, что после праздников надо,чтобы за последний рабочий день формировалось и чо делать? Еще гвозди в запрос забивать?
|
|||
15
HEKPOH
20.06.17
✎
08:48
|
+(13) либо параметр вычислять в функции общего модуля. Так даже красивее будет, имхо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |