Имя: Пароль:
1C
1С v8
Оборотная ведомость по счету с расшифровкой по дням
0 Barabashkoo
 
28.05.12
13:48
Необходимо сделать отчет с выборкой по счету с субконто с расшифровкой платажей по дням и сальдо на начало выбранного периода. Не получается правильно составить запрос. Сальдо берет, расшировку не могу догнать как сделать.
Это запрос с выборка по сальдо. Поля период в регистре нет, если в параметрах виртуальной таблицы ставить периодичность день и добавлять поле, то ругается.


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

     Запрос.УстановитьПараметр("Счет",Счет);
     Запрос.УстановитьПараметр("ДатаНач",ДатаС);
     Запрос.УстановитьПараметр("ДатаКон",ДатаС);

     Запрос.УстановитьПараметр("Организация",Организация);
1 Рэйв
 
28.05.12
13:50
2 butterbean
 
28.05.12
13:51
(0) как ругается-то??
3 Barabashkoo
 
28.05.12
15:17
Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                 |    ОстаткиИОбороты.Счет КАК Счет,
                 |    ОстаткиИОбороты.Период КАК Период,
                 |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Счет) КАК СчетПредставление,
                 |    ОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
                 |    ОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
                 |    ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
                 |    ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
                 |    ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
                 |    ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
                 |    ОстаткиИОбороты.Субконто1 КАК Субконто1,
                 |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Субконто1) КАК Субконто1Представление
                 |ИЗ
                 |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ОстаткиИОбороты
                 |ИТОГИ
                 |    СУММА(СуммаНачальныйОстатокДт),
                 |    СУММА(СуммаНачальныйОстатокКт),
                 |    СУММА(СуммаОборотДт),
                 |    СУММА(СуммаОборотКт),
                 |    СУММА(СуммаКонечныйОстатокДт),
                 |    СУММА(СуммаКонечныйОстатокКт)
                 |ПО
                 |    Счет";

   Запрос.УстановитьПараметр("Счет",Счет);
   Запрос.УстановитьПараметр("ДатаНач",ДатаС);
   Запрос.УстановитьПараметр("ДатаКон",ДатаС);

   Запрос.УстановитьПараметр("Организация",Организация);
     
   Запроса = Запрос.Выполнить();
   РезультатЗапроса = Запроса.Выбрать();

Так понимаю чтобы расшифровывало по по дням надо добавить -
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "Все");
Если ставлю так он мне просто общую сумму по всем контрагентам дает, а мне надо
с детализацией, так понимаю что группирую где то неправильно?
4 mkanaev
 
28.05.12
15:26
Не будет у тебя правильного сальдо!!! т.к. ты получаешь сумму остатков за каждый день, если 1-й день 10000р., второй 20000, третий 30000 то сальдо на начало периода у тебя будет 60000р.!!! лудше взять остатки на начало и конец и привязать к ним обороты!!! сделай итоги по счет и контрагент...
5 Barabashkoo
 
29.05.12
09:38
Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                 |    ОстаткиИОбороты.Счет КАК Счет,
                 |    ОстаткиИОбороты.Период КАК Период,
                 |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Счет) КАК СчетПредставление,
                 |    ОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
                 |    ОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
                 |    ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
                 |    ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
                 |    ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
                 |    ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
                 |    ОстаткиИОбороты.Субконто1 КАК Субконто1,
                 |    ПРЕДСТАВЛЕНИЕ(ОстаткиИОбороты.Субконто1) КАК Субконто1Представление
                 |ИЗ
                 |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ОстаткиИОбороты
                 |ИТОГИ ПО
                 |    Период ПЕРИОДАМИ(ДЕНЬ, , )";

   Запрос.УстановитьПараметр("Счет",Счет);
   Запрос.УстановитьПараметр("ДатаНач",ДатаС);
   Запрос.УстановитьПараметр("ДатаКон",ДатаС);

   Запрос.УстановитьПараметр("Организация",Организация);
     
   Запроса = Запрос.Выполнить();
   РезультатЗапроса = Запроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период","ВСЕ");



И все равно считает одним периодом, начальной дато
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший