Имя: Пароль:
1C
 
Итоги по запросу
0 BonDyaRa
 
27.08.07
12:56
Знаю, что баян, но проблема не решена.
Конфа самописная.

Регистр "Касса":
"Организация"
"Касса"
"Регистратор"

"Сумма"

Делаю отчет по оборотам с остатками с детализацией по регистратору через построитель...
Так вот. Если на "НачалоПериода" СуммаИтог = 0, то построитель первой  строчкой выводит пустую строчку (регистратор = NULL) с суммой = (СуммаИтог на "КонецПериода")... которая мне не нужна... И которая показывает чушь... Вводит в заблуждение...

Здесь предлагали такой способ

  |ГДЕ Регистратор ЕСТЬ НЕ NULL

Он работает, НО!!! Если например по кассе №1 движений за нужный мне период нет, но при этом есть остаток на начало... в отчете она не фигурирует. Мало того... остатки по ней не попадают в обороты и на конец периода получаем искаженную информацию...

Отчет формирую конструктором... ничего ручками не добавляю...

Как лечится ? Уже всю голову сломал себе...
1 Креатив
 
27.08.07
13:01
А при обработке запроса не отфильтровать?
Что-то типа
Если запрос.СуммаИтог = 0 Тогда
  продолжить;
2 Loyt
 
27.08.07
13:06
Непонятно ничего. СуммаИтог - это вообще что такое? Где НачОст() и КонОст() если тебе остатки нужны? Запрос напиши.
3 BonDyaRa
 
27.08.07
13:14
"ВЫБРАТЬ
   |    ДенежныеСредстваОстаткиИОбороты.Организация КАК Организация,
   |    ПРЕДСТАВЛЕНИЕ(ДенежныеСредстваОстаткиИОбороты.Организация),
   |    ДенежныеСредстваОстаткиИОбороты.БанковскийСчетКасса КАК БанковскийСчетКасса,
   |    ПРЕДСТАВЛЕНИЕ(ДенежныеСредстваОстаткиИОбороты.БанковскийСчетКасса),
   |    СУММА(ДенежныеСредстваОстаткиИОбороты.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
   |    СУММА(ДенежныеСредстваОстаткиИОбороты.СуммаПриход) КАК СуммаПриход,
   |    СУММА(ДенежныеСредстваОстаткиИОбороты.СуммаРасход) КАК СуммаРасход,
   |    СУММА(ДенежныеСредстваОстаткиИОбороты.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
   |ИЗ
   |    РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ДенежныеСредстваОстаткиИОбороты
   |
   |СГРУППИРОВАТЬ ПО
   |    ДенежныеСредстваОстаткиИОбороты.Организация,
   |    ДенежныеСредстваОстаткиИОбороты.ВидДенежныхСредств,
   |    ДенежныеСредстваОстаткиИОбороты.БанковскийСчетКасса,
   |    ДенежныеСредстваОстаткиИОбороты.СтатьяДвиженияДенежныхСредств,
   |    ДенежныеСредстваОстаткиИОбороты.Валюта,
   |    ДенежныеСредстваОстаткиИОбороты.Регистратор
   |
   |УПОРЯДОЧИТЬ ПО
   |    ДенежныеСредстваОстаткиИОбороты.Регистратор.Дата
   |ИТОГИ
   |    СУММА(СуммаНачальныйОстаток),
   |    СУММА(СуммаПриход),
   |    СУММА(СуммаРасход),
   |    СУММА(СуммаКонечныйОстаток)
   |ПО
   |    ОБЩИЕ,
   |    Организация,
   |    ВидДенежныхСредств,
   |    БанковскийСчетКасса,
   |    СтатьяДвиженияДенежныхСредств,
   |    Валюта,
   |    ДенежныеСредстваОстаткиИОбороты.Регистратор";
4 BonDyaRa
 
27.08.07
13:18
Когда начинается группировка по регистратору, то первая строчка с регистратором на начало периода выводится пустой (т.к. регистратор = NULL) и с итогом по полю "Сумма" на начало периода... (СУММА(СуммаНачальныйОстаток)) ... Так ?
Так вот. Если на начало периода Сумма = 0, то в запросе почему-то СУММА(СуммаНачальныйОстаток) = СУММА(СуммаКонечныйОстаток) !!!
И в место 0 на начало периода выводится большая сумма...
5 BonDyaRa
 
27.08.07
13:20
АААА !!! Я ошибся... Как перенести эту тему в раздел по восьмерке ?
6 Loyt
 
27.08.07
14:27
А зачем тебе получать остатки при обходе группировки по регистратору? Остатки получай в вышестоящей группировке.
7 BonDyaRa
 
27.08.07
15:02
(6) Я что-то торможу... а как это не получать остатки ? А как я тогда узнаю остаток на начало ?
8 Loyt
 
27.08.07
15:13
(7) Ты когда итоги обходишь, ты ведь их по группировкам обходишь? То есть сначала, скажем Организация, потом Банковский счет, потом регистратор. Вот на этапе обхода банковского счета ты и получай остатки на начало и на конец. А уж потом обходишь регистраторы. А если тебе нужны остатки по каждому регистратору (в принципе их и посчитать можно по оборотам), просто пропускай значение с пустым регистратором, остаток на самое начало у тебя уже есть.