Имя: Пароль:
1C
1С v8
СКД. Группировка по месяцам
0 Zixxx
 
03.01.14
16:12
Сделал отчет на СКД который выводит информацию в следующем виде

Статья ДДС / Январь (Сумма) / Февраль (Сумма) / ... / Декабрь (Сумма)

В запросе использовать НАЧАЛОПЕРИОДА(Дата, Месяц)

Но по задаче мне нужно выводить начальный остаток на начало года и конечный остаток на конец года. Как не пробовал не получается ничего.

Можете написать порядок действий чтобы идти в нужном направлении?
1 zippygrill
 
03.01.14
16:15
Я бы сделал 3 запроса использую вт.
1. Остатки начальные
2. Обороты
3. конечные остатки

Не нужно параметр началоПериода(),
2 zippygrill
 
03.01.14
16:16
*используя
3 zippygrill
 
03.01.14
16:37
Выбрать
НачОстатки.СтатьяДДС как СтатьяДДС,
НачОстатки.НачОстаток как НачОстаток,
0 как Оборот,
0 как КонОстаток,
Началопериода(НачОстатки.Период, месяц) как Месяц
Поместить в вт
Из рн.твойРегистр(началопериода(&НачПериода,год)) как НачОстатки

Объединить все

Выбрать
КонОстатки.СтатьяДДС,
0,
0,
КонОстатки.КонОстатки,
Началопериода(КонОстатки.Период, месяц)
Из рн.твойРегистр(началопериода(&КонПериода, год)) как КонОстатки

Объединить все

Выбрать
Обороты.СтатьяДДС,
0,
Обороты.Оборот,
0,
Обороты.Месяц
Из рн.твойРегистр(&НачПериода, &КонПериода, Авто) как Обороты

////////

Выбрать * из вт

Дальше в таблицу и группирует по поле Месяц
4 Zixxx
 
03.01.14
17:07
(3) Повторяет начальный и конечный остаток http://yadi.sk/d/gtHuRPICFPDXi
5 zippygrill
 
03.01.14
17:11
Вместо
Из рн.твойРегистр(началопериода(&КонПериода, год)) как КонОстатки

Ставь
Из рн.твойРегистр(конецпериода(&КонПериода, год)) как КонОстатки
6 Zixxx
 
03.01.14
17:16
(5) Так и есть у меня началопериода всегда начало года а конец соответственно конец года

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДвижениеОперацийОстатки.Направление,
    ДвижениеОперацийОстатки.Статья,
    0,
    0,
    ДвижениеОперацийОстатки.СуммаОстаток,
    &КонецПериода
ИЗ
    РегистрНакопления.ДвижениеОпераций.Остатки(&КонецПериода, ) КАК ДвижениеОперацийОстатки

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.Направление,
    ВТ.Статья,
    ВТ.НачальныйОстаток,
    ВТ.СуммаОборот,
    ВТ.КонечныйОстаток,
    ВТ.ПериодМесяц
ИЗ
    ВТ КАК ВТ
7 gornovrom
 
03.01.14
17:37
В скд указано роль этих полей как остатки?
8 Zixxx
 
03.01.14
17:47
(7) Для каких полей это нужно указать и как именно?
9 Zixxx
 
03.01.14
17:51
(7) Указал для НачальныйОстаток и КонечныйОстаток, ничего не изменилось
10 gornovrom
 
03.01.14
18:13
Тут наверное нужно по другому:
Вариант 1:  поля остатка считать реквизитами группировки - и выводить только вместе с группировкой, но тогда они естественно не будут участвовать в итогах
Вариант 2: не использовать оборот, а сделать 12 полей типа

"Выбор когда вт.периодмесяц = &январь тогда вт.оборот иначе 0 конец как оборотянварь"

В параметры забить даты начало каждого месяца.

И потом всю таблицу сгруппировать по всем полям включая остатки, период месяц не выбирать а обороты за каждый месяц про суммировать отдельно
11 gornovrom
 
03.01.14
18:16
ВЫБРАТЬ
    ВТ.Направление,
    ВТ.Статья,
    ВТ.НачальныйОстаток,
    СУММА(Выбор Когда ВТ.ПериодМесяц = &Январь Тогда ВТ.СуммаОборот Иначе 0 КОНЕЦ) КАК ОборотЯнварь,
    ВТ.КонечныйОстаток
ИЗ
    ВТ КАК ВТ
СГРУППИРОВАТЬ ПО
ВТ.Направление,
ВТ.Статья,
ВТ.НачальныйОстаток,
ВТ.КонечныйОстаток
12 Zixxx
 
03.01.14
18:24
(11) Период может быть произвольным
13 gornovrom
 
03.01.14
18:32
(6)  как понимаю всегда за год или несколько лет
Тогда нужно добавить группировку вт.периодгод и немного поколдовать над полем выбор ...