Имя: Пароль:
1C
1С v8
СКД: Как в СКД вычислить параметр - месяц +/- от текущей даты?
0 ArPlus
 
06.09.15
19:47
Запрос в СКД
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    ХозрасчетныйОстатки.Субконто2 КАК ДоговорКонтрагента,
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК НаКонец
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ПериодОкончание, Счет В ИЕРАРХИИ (&Счет), &ВидСубконто, ) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2

В параметркх есть и
Период
и
ПериодОкончание = ДобавитьКДате(НачалоПериода(&Период,"День"),"МЕСЯЦ",3)

Но при выводе он рассчитывает и выводит на дату Период!
Почему?
1 DCKiller
 
06.09.15
20:02
Передай формулу расчета ПериодОкончание из параметра в запрос
2 ArPlus
 
06.09.15
20:24
Исправил на
РегистрБухгалтерии.Хозрасчетный.Остатки(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&Период,ДЕНЬ), МЕСЯЦ, -3), Счет В ИЕРАРХИИ (&Счет), &ВидСубконто, ) КАК ХозрасчетныйОстатки

Та же ерунда. Формирует на &Период
3 DCKiller
 
06.09.15
20:25
Зачем вообще эти заморочки с добавлением даты к параметру? Не проще задавать параметр Период сразу таким, каким нужно?
4 ArPlus
 
07.09.15
05:20
Вопрос не зачем, а почему не работает. Зачем вообще какие то отчеты делать? Нельзя на калькуляторе посчитать?
5 segn
 
07.09.15
05:29
СКД не видит твой параметр &ПериодОкончание. Нужно использовать расширения компоновки данных. Должно быть так:  {(&ПериодОкончание)}
6 mehfk
 
07.09.15
05:29
РегистрБухгалтерии.Хозрасчетный.Остатки(&ПериодОкончание, Счет В ИЕРАРХИИ (&Счет), &ВидСубконто, ) КАК ХозрасчетныйОстатки

->
РегистрБухгалтерии.Хозрасчетный.Остатки(&ПериодОкончание {(&ПериодОкончание)}, Счет В ИЕРАРХИИ (&Счет), &ВидСубконто, ) КАК ХозрасчетныйОстатки
7 ArPlus
 
07.09.15
05:53
Спасибо. Не знал. Работает.
8 Devourer
 
07.09.15
05:58
Сталкивался с проблемой отчетов на СКД: если использовать имена параметров &НачалоПериода, &КонецПериода для оборотов и &Период для остатков, то СКД глючит и ограничивает виртуальную таблицу по значениям, переданным в эти параметры. Даже если параметры виртуальной таблицы остатков или оборотов имеют другие имена.
То есть если в виртуальной таблице остатков использовать параметр &КонецПериода = 05.01.2015 00:00:00, а в запросе использовать, например "ВЫБРАТЬ &Период КАК МесяцПолученияОстатков" и передавать в &Период 01.01.2015 00:00:00, то запрос выполнится корректно, а отчет на СКД нет, поскольку в отчете остатки будут собраны на 1 января, а не на 5.
Попробуй переименовать параметры, отказавшись от "&Период" и, соответственно, не заполнять его в параметрах СКД.
Закон Брукера: Даже маленькая практика стоит большой теории.