Имя: Пароль:
1C
1С v8
СКД Несколько Параметров периода
0 piffoff
 
12.08.13
12:58
Делаю запрос

ВЫБРАТЬ
    СУММА(Запрос.ПрошлыйГодТекущийПериод) КАК ПрошлыйГодТекущийПериод,
    СУММА(Запрос.ПланНаМесяц) КАК ПланНаМесяц,
    СУММА(Запрос.ТекущийПериод) КАК ТекущийПериод,
    СУММА(Запрос.ПланзаГод) КАК ПланЗаГод,
    СУММА(Запрос.НакопительныйИтогЗагод) КАК НакопительныйИтогЗагод
ИЗ
    (ВЫБРАТЬ
        ПрошлыйГодПериод.СуммаОборот КАК ПрошлыйГодТекущийПериод,
        NULL КАК ПланНаМесяц,
        0 КАК ТекущийПериод,
        0 КАК ПланзаГод,
        0 КАК НакопительныйИтогЗагод
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериодаПрошлыйГод, &КонецПериодаПрошлыйГод, , , , , , ) КАК ПрошлыйГодПериод
    ГДЕ
        ПрошлыйГодПериод.Счет = &Счет
        И ПрошлыйГодПериод.Субконто1 = &Субконто1
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        0,
        ТекущийПериод.СуммаОборот,
        0,
        0
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК ТекущийПериод
    ГДЕ
        ТекущийПериод.Счет = &Счет
        И ТекущийПериод.Субконто1 = &Субконто1
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        0,
        0,
        ПланЗаГод.СуммаОборот,
        0
    ИЗ
        РегистрНакопления.ПланДоходов.Обороты(&НачалоГода, &КонецГода, , ) КАК ПланЗаГод
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        0,
        0,
        0,
        НакопительныйЗаГод.СуммаОборот
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоГода, &КонецПериода, , , , , , ) КАК НакопительныйЗаГод
    ГДЕ
        НакопительныйЗаГод.Счет = &Счет
        И НакопительныйЗаГод.Субконто1 = &Субконто1
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        ПланНаМесяц.СуммаОборот,
        0,
        0,
        0
    ИЗ
        РегистрНакопления.ПланДоходов.Обороты(&НачалоМесяца, &КонецМесяца, , ) КАК ПланНаМесяц) КАК Запрос

Периоды забиваю при откритии формы

    
    ПараметрПериод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    ПараметрПериод.Использование = Истина;
    ПараметрПериод.Значение.ДатаНачала = НачалоМесяца(ТекущаяДата());
    ПараметрПериод.Значение.ДатаОкончания = КонецМесяца(ТекущаяДата());
    
    ПараметрНачалоМесяца = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоМесяца"));
    ПараметрНачалоМесяца.Использование = Истина;
    ПараметрНачалоМесяца.Значение = НачалоМесяца(ТекущаяДата());
    
    ПараметрКонецМесяца = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецМесяца"));
    ПараметрКонецМесяца.Использование = Истина;
    ПараметрКонецМесяца.Значение = НачалоМесяца(ТекущаяДата());
    
    ПараметрНачалоГода = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоГода"));
    ПараметрНачалоГода.Использование = Истина;
    ПараметрНачалоГода.Значение = НачалоГода(ТекущаяДата());
    
    ПараметрКонецГода = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецГода"));
    ПараметрКонецГода.Использование = Истина;
    ПараметрКонецГода.Значение = КонецГода(ТекущаяДата());
    
    ПараметрПериодПрошлыйГодТекущийМесяц = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодПрошлыйГодПериод"));
    ПараметрПериодПрошлыйГодТекущийМесяц.Использование = Истина;
    ПараметрПериодПрошлыйГодТекущийМесяц.Значение.Вариант = ВариантСтандартногоПериода.ПрошлыйГодДоТакойЖеДаты;
    
    ПараметрНачалоПериодаПрошлыйГод = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериодаПрошлыйГод"));
    ПараметрНачалоПериодаПрошлыйГод.Использование = Истина;
    ПараметрНачалоПериодаПрошлыйГод.Значение = НачалоМесяца(ПараметрПериодПрошлыйГодТекущийМесяц.Значение.ДатаОкончания);
    
Почему то параметр НачалоГода И конецГода берет какие - то левыек и цифры получается за месяц а не за год

В чем может быть проблема и как можно посмотреть отладку СКД?!
отчет для бух 2.0 делаю
1 Fragster
 
модератор
12.08.13
12:59
уж сколько раз писали про автоподстановку периодов в СКД, но нет, все также народ продолжает наступать на эти грабли
2 Fragster
 
модератор
12.08.13
13:00
и про то, как реальный текст запроса посмотреть писали, и про инструменты, которыми это можно сделать просто
3 Fragster
 
модератор
12.08.13
13:00
4 piffoff
 
12.08.13
13:56
уж сколько раз писали про автоподстановку периодов в СКД, но нет, все также народ продолжает наступать на эти грабли

Поясните пожайлуста. Что то я не могу найти.
5 piffoff
 
12.08.13
13:58
а сорри кажется я понял. Нельзя несколько периодов в параметры забивать?!
6 Defender aka LINN
 
12.08.13
13:59
(5) Какое-то странное у тебя понимание
7 piffoff
 
12.08.13
14:01
))) я так смутно догадался а не понялд скорее. Может скинет кто ссылку где пожно почитать подробнее
8 Fragster
 
модератор
12.08.13
14:09
(7) укажи в конструктуре на закладке "компоновка данных" эти периоды и посмотри, что изменится в тексте запроса
9 Fragster
 
модератор
12.08.13
14:09
конструктОре
10 piffoff
 
12.08.13
14:24
Месячный период не взялся
11 piffoff
 
12.08.13
14:54
(8) их там указать дополнительно или предваоительно удалив из основных параметров?
12 Fragster
 
модератор
12.08.13
14:56
(11) пофигу
13 cw014
 
12.08.13
15:12
ПараметрНачалоМесяца = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоМесяца"));
    ПараметрНачалоМесяца.Использование = Истина;
    ПараметрНачалоМесяца.Значение = НачалоМесяца(ТекущаяДата());
    
    ПараметрКонецМесяца = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецМесяца"));
    ПараметрКонецМесяца.Использование = Истина;
    ПараметрКонецМесяца.Значение = НачалоМесяца(ТекущаяДата()); // <--- Наверное тут должно быть КОНЕЦМЕСЯЦВ
14 Dmitry1c
 
12.08.13
15:14
(0) просто СКД по умолчанию подставляет в виртуальные таблицы параметры

Остатки - параметр Период
ОстаткиИОбороты - параметры НачалоПериода и КонецПериода

И не важно, что вы там написали "НачалоГода" и "КонецГода". Использоваться будут именно НП и КП

Чтобы использовались ваши параметры, их надо написать в фигурных скобках

"ВЫБРАТЬ
        0,
        0,
        0,
        ПланЗаГод.СуммаОборот,
        0
    ИЗ
        РегистрНакопления.ПланДоходов.Обороты({&НачалоГода}, {&КонецГода}, , ) КАК ПланЗаГод"
15 echo77
 
12.08.13
15:16
(14) Да, это верно, если стоит галка "Автозаполнение"

(0) Консоль Отчетов СКД+ смотри, тебе поможет
16 piffoff
 
12.08.13
15:25
всем спасибо!
2 + 2 = 3.9999999999999999999999999999999...