Имя: Пароль:
1C
 
Период по условию в запросе СКД
,
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) либо параметр вычислять в функции общего модуля. Так даже красивее будет, имхо
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс