Имя: Пароль:
1C
1С v8
Итоги периодами и построитель отчета
0 exitone
 
25.01.13
10:01
Всем привет.
Есть запрос:

ВЫБРАТЬ
   Взаиморасчеты.Период КАК Период,
   Взаиморасчеты.Агент КАК Агент,
   Взаиморасчеты.ТорговаяТочка КАК ТорговаяТочка,
   Взаиморасчеты.Документ КАК Документ,
   Взаиморасчеты.СуммаКонечныйОстаток КАК Сумма
ИЗ
   РегистрНакопления.ВзаиморасчетыСПокупателями.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, ) КАК Взаиморасчеты
ИТОГИ
   СУММА(Сумма)
ПО
   ОБЩИЕ,
   Агент,
   ТорговаяТочка,
   Документ,
   Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНач, &ДатаКон)
{ИТОГИ ПО
   Агент.*,
   ТорговаяТочка.*,
   Документ.*,
   Период}

Измерение колонок построителя - Период, остальные измерения строк.

При таком раскладе Построитель.Вывести() выводит итоги на каждый день, независимо были движения или нет.

Вопрос в следующем:
если брать сумму ресурсов этого регистра Взаиморасчеты.СуммаКонечныйОстаток+Взаиморасчеты.ПотенциальнаяСуммаКонечныйОстаток КАК Сумма

то итоги выводятся только по дням, в которые были движения.

Есть ли возможность выводить сумму ресурсов периодами на каждый день, независимо от наличия движений?
1 Professor83
 
25.01.13
10:31
Тебе нужна таблица, в каждой записи которой дата каждого дня.
2 exitone
 
25.01.13
10:39
могу взять из Регламентированного производственного календаря. А что с ней дальше делать?)
3 Professor83
 
25.01.13
10:48
Выбираешь из производственного календаря Период, и левое соединение с таблицей взаиморасчетов ПО Период = НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, ДЕНЬ).
4 Professor83
 
25.01.13
10:52
И в отчет должно попасть поле Период именно из производственного календаря.
5 exitone
 
25.01.13
11:06
ВЫБРАТЬ
   Взаиморасчеты.Агент КАК Агент,
   Взаиморасчеты.ТорговаяТочка КАК ТорговаяТочка,
   Взаиморасчеты.Документ КАК Документ,
   Взаиморасчеты.СуммаКонечныйОстаток КАК Сумма,
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период
{ВЫБРАТЬ
   Сумма}
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСПокупателями.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, ) КАК Взаиморасчеты
       ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, ДЕНЬ))
ГДЕ
   Взаиморасчеты.СуммаКонечныйОстаток > 0
   И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон

УПОРЯДОЧИТЬ ПО
   Период
ИТОГИ
   СУММА(Сумма)
ПО
   ОБЩИЕ,
   Агент,
   ТорговаяТочка,
   Документ,
   Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНач, &ДатаКон)
{ИТОГИ ПО
   Агент.*,
   ТорговаяТочка.*,
   Документ.*}

выводит только на дату движений, а не на каждый день...
6 exitone
 
25.01.13
11:25
ап
7 Professor83
 
25.01.13
11:26
Вот костыль моего изобретения :) Текст запроса писал в блокноте, но общий смысл надеюсь будет понятен

ВЫБРАТЬ
   Взаиморасчеты.Агент КАК Агент,
   Взаиморасчеты.ТорговаяТочка КАК ТорговаяТочка,
   Взаиморасчеты.Документ КАК Документ,
   ВЫБОР КОГДА РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = НачалоПериода(Взаиморасчеты.Период, День) ТОГДА Взаиморасчеты.СуммаКонечныйОстаток ИНАЧЕ 0 КОНЕЦ Сумма,
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период
{ВЫБРАТЬ
   Сумма}
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь,
   РегистрНакопления.ВзаиморасчетыСПокупателями.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, ) КАК Взаиморасчеты
       
ГДЕ
   Взаиморасчеты.СуммаКонечныйОстаток > 0
  И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон

УПОРЯДОЧИТЬ ПО
   Период
ИТОГИ
   СУММА(Сумма)
ПО
   ОБЩИЕ,
   Агент,
   ТорговаяТочка,
   Документ,
   Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНач, &ДатаКон)
{ИТОГИ ПО
   Агент.*,
   ТорговаяТочка.*,
   Документ.*}

Подумай как его доделать.
8 Professor83
 
25.01.13
11:29
У меня по такому принципу строится портянка по месяцам в одной самописной конфигурации. Да, это уродство, но данных немного, зато на СКД :)