Имя: Пароль:
1C
1С v8
СКД. Обороты на каждый день.
0 Lex_Liven
 
07.09.14
22:35
Добрый вечер. Требуется получить отчет типа "Остатки и обороты", но на несколько дней. То есть:
НачОст   Приход1 Расход1 Приход2 Расход2 ...  КонОст

Как это сделать в СКД? Что бы я не пробовал, в таблице в каждом периоде выходят и обороты, и остатки.
1 Lex_Liven
 
07.09.14
22:36
Запрос СКД:
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК СуммаВзаиморасчетовНачальныйОстаток,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход) КАК СуммаВзаиморасчетовПриход,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход) КАК СуммаВзаиморасчетовРасход,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента
2 Lex_Liven
 
07.09.14
22:45
Для разнообразия могу получить только таблицу оборотов. Без остатков вообще. А они нужны. В начале и в конце.
3 Lex_Liven
 
08.09.14
08:43
Ап. Отчет все еще нужен.
4 Enders
 
08.09.14
12:13
(3) Самый простой вариант:
1. Получи отдельно остатки на начало периода и конец периода
2. Получи обороты за период
3. Соедини это всё.

Вариант посложнее поизвращаться с настройками СКД, но тут я не помогу)
5 Lex_Liven
 
08.09.14
16:40
(4) Хорошо, получил... как слепить в одну таблицу? Источник данных объединение?
6 Enders
 
08.09.14
18:36
(5)  В одном Запросе через временные таблицы, через левое соединение по товарам, складам и прочей аналитической фигне?)
7 Enders
 
08.09.14
18:41
Например
Выбрать
ОстаткиНачало.Период,
ОстаткиНачало.Склад,
ОстаткиНачало.Товар,
ОстаткиНачало.Качество,
ОстаткиНачало.Количество
Поместить ОстаткиНЧ
Из ТоварыНаСкладах.Остатки(&ДатаНачала) как ОстаткиНачало
;
Выбрать
ОстаткиКонец.Период,
ОстаткиКонец.Склад,
ОстаткиКонец.Товар,
ОстаткиКонец.Качество,
ОстаткиКонец.Количество
Поместить ОстаткиКон
Из ТоварыНаСкладах.Остатки(&ДатаКонца) как ОстаткиКонец
;
Выбрать
ОборотыСП.Период,
ОборотыСП.Склад,
ОборотыСП.Товар,
ОборотыСП.Качество,
ОборотыСП.КоличествоРасход,
ОборотыСП.КоличествоПриход
Поместить ОборотыПериод
Из ТоварыНаСкладах.Обороты(&ДатаНачала,&ДатаКонца) как ОборотыСП
;
ВЫБРАТЬ
*
Из
ОстаткиНЧ
левоеСоединение ОстаткиКонец
По
ОстаткиНЧ.Склад = ОстаткиКонец.Склад
И ОстаткиНЧ.Товар= ОстаткиКонец.Товар
И ОстаткиНЧ.Качество= ОстаткиКонец.Качество
левоеСоединение ОборотыПериод
По
ОстаткиНЧ.Склад = ОборотыПериод.Склад
И ОстаткиНЧ.Товар= ОборотыПериод.Товар
И ОстаткиНЧ.Качество= ОборотыПериод.Качество


Это вкратце) Там ещё на есть нулл проверять при соединении, а может надо соединять полным  или поменять порядок соединения в зависимости от задачи)
8 Lex_Liven
 
08.09.14
19:04
(7) Красиво. Но не решает главную задачу. Обороты за несколько дней с детализацией по дням.