Имя: Пароль:
1C
1С v8
Группировка в СКД по родителю верхнего уровня
0 Solitar
 
03.08.12
14:52
Есть отчет на СКД для БП, показывающий выручку по номенклатурным группам. Нужно чтобы выручка показывалась по самому верхнему уровню. Как это реализовать?
1 olegves
 
03.08.12
15:26
(0) В Иерархии
2 Extro
 
03.08.12
19:17
В настройках структуры отчета тыкай на группировку номенклатура и для неё в настройка отбора устанавливай
"Системные поля" => Уровень = 1
3 Solitar
 
06.08.12
10:27
не нашел данной возможности.
мне нужно собрать выручку по верхнему уровню. в какой момент это делать? в запросе к обращению к остаткам на 90? или же потом как то сгруппировать результат по родителю?
4 olegves
 
06.08.12
10:35
(3) используй запрос к группам верхнего уровня и левое соединение к основному запросу ПО <твое_поле> Виерархии группа
и группируй по этим самым группам
5 Solitar
 
06.08.12
10:52
(3) а как обратится в запросе к родителю на верхнем уровне?
6 Solitar
 
06.08.12
11:54
написал вот такой запрос. но нужно чтобы была выручка по самому верхнему уровню, или хотя бы ближайшему.

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

СГРУППИРОВАТЬ ПО
   ЗапросыПо90.Счет,
   ЗапросыПо90.НоменклатурнаяГруппа,
   ЗапросыПо90.КонечныйОстатокПоНоменклатурнымГруппамПо9001,
   ЗапросыПо26.Счет,
   ЗапросыПо26.КонечныйОстатокПоСтатьямПо26,
   ЗапросыПо26.СтатьяЗатрат,
   ЗапросыПо26.Подразделение,
   ЗапросыПо26.ОстатокПоНу

ИНДЕКСИРОВАТЬ ПО
   СтатьяЗатрат
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ.СтатьяЗатрат,
   ВТ.КонечныйОстатокПоСтатьямПо26,
   ВТ.Подразделение,
   СУММА(ВТ.КонечныйОстатокПоНоменклатурнымГруппамПо9001) КАК КонечныйОстатокПоНоменклатурнымГруппамПо9001
ПОМЕСТИТЬ ВТ2
ИЗ
   ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
   ВТ.СтатьяЗатрат,
   ВТ.КонечныйОстатокПоСтатьямПо26,
   ВТ.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ВТ.Счет КАК Счет_9001,
   ВТ2.КонечныйОстатокПоНоменклатурнымГруппамПо9001 КАК ОбщийОстатокПоНоменклатурнымГруппа,
   ВТ.НоменклатурнаяГруппа,
   ВТ.КонечныйОстатокПоНоменклатурнымГруппамПо9001 КАК СуммаПоНоменклатурнойГруппе,
   ВЫРАЗИТЬ(ВТ.КонечныйОстатокПоНоменклатурнымГруппамПо9001 / (ВТ2.КонечныйОстатокПоНоменклатурнымГруппамПо9001 / 100) * 0.01 КАК ЧИСЛО(15, 5)) КАК КоэффицентУмножения,
   ВТ.КонечныйОстатокПоСтатьямПо26,
   ВТ.Подразделение КАК Подразделение,
   ВТ.СтатьяЗатрат КАК СтатьяЗатрат,
   ВТ2.КонечныйОстатокПоСтатьямПо26 КАК ИтогПоСуммаДляРаспределения26,
   ВТ.ОстатокПоНу,
   ВТ.КонечныйОстатокПоСтатьямПо26 * (ВЫРАЗИТЬ(ВТ.КонечныйОстатокПоНоменклатурнымГруппамПо9001 / (ВТ2.КонечныйОстатокПоНоменклатурнымГруппамПо9001 / 100) * 0.01 КАК ЧИСЛО(15, 8))) КАК СуммаДляСписанияПоСтатье
ПОМЕСТИТЬ ВТ3
ИЗ
   ВТ КАК ВТ
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
       ПО ВТ.СтатьяЗатрат = ВТ2.СтатьяЗатрат
           И ВТ.КонечныйОстатокПоСтатьямПо26 = ВТ2.КонечныйОстатокПоСтатьямПо26
           И ВТ.Подразделение = ВТ2.Подразделение

СГРУППИРОВАТЬ ПО
   ВТ.Подразделение,
   ВТ.СтатьяЗатрат,
   ВТ.Счет,
   ВТ.НоменклатурнаяГруппа,
   ВТ.КонечныйОстатокПоНоменклатурнымГруппамПо9001,
   ВТ.КонечныйОстатокПоСтатьямПо26,
   ВТ2.КонечныйОстатокПоСтатьямПо26,
   ВТ.ОстатокПоНу,
   ВТ2.КонечныйОстатокПоНоменклатурнымГруппамПо9001
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СУММА(ВТ3.СуммаДляСписанияПоСтатье) КАК СуммаДляСписанияПоСтатье,
   ВТ3.СтатьяЗатрат КАК СтатьяЗатрат,
   ВТ3.Подразделение
ПОМЕСТИТЬ ВТ4
ИЗ
   ВТ3 КАК ВТ3

СГРУППИРОВАТЬ ПО
   ВТ3.СтатьяЗатрат,
   ВТ3.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ3.Счет_9001,
   ВТ3.ОбщийОстатокПоНоменклатурнымГруппа КАК ОбщийОстатокПоНоменклатурнымГруппа,
   ВТ3.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
   ВТ3.СуммаПоНоменклатурнойГруппе,
   ВТ3.КоэффицентУмножения КАК КоэффицентУмножения,
   ВТ3.КонечныйОстатокПоСтатьямПо26,
   ВТ3.Подразделение КАК Подразделение,
   ВТ3.СтатьяЗатрат КАК СтатьяЗатрат,
   ВТ3.ИтогПоСуммаДляРаспределения26,
   ВТ3.ОстатокПоНу,
   ВТ3.СуммаДляСписанияПоСтатье,
   ВТ4.СуммаДляСписанияПоСтатье КАК ИтогПоСуммеДляСписания,
   ВТ4.СуммаДляСписанияПоСтатье - ВТ3.КонечныйОстатокПоСтатьямПо26 КАК РазностьМеждуИтогомПоСуммеНаСписаниеИОстатомПоСтатье
ИЗ
   ВТ3 КАК ВТ3
       ЛЕВОЕ СОЕДИНЕНИЕ ВТ4 КАК ВТ4
       ПО ВТ3.СтатьяЗатрат = ВТ4.СтатьяЗатрат
           И ВТ3.Подразделение = ВТ4.Подразделение

СГРУППИРОВАТЬ ПО
   ВТ3.Счет_9001,
   ВТ3.СтатьяЗатрат,
   ВТ3.НоменклатурнаяГруппа,
   ВТ3.Подразделение,
   ВТ3.ОбщийОстатокПоНоменклатурнымГруппа,
   ВТ3.СуммаПоНоменклатурнойГруппе,
   ВТ3.КоэффицентУмножения,
   ВТ3.КонечныйОстатокПоСтатьямПо26,
   ВТ3.ИтогПоСуммаДляРаспределения26,
   ВТ3.ОстатокПоНу,
   ВТ3.СуммаДляСписанияПоСтатье,
   ВТ4.СуммаДляСписанияПоСтатье,
   ВТ4.СуммаДляСписанияПоСтатье - ВТ3.КонечныйОстатокПоСтатьямПо26

УПОРЯДОЧИТЬ ПО
   ОбщийОстатокПоНоменклатурнымГруппа
7 olegves
 
06.08.12
15:24
(6) Какой тип у Субконто
ХозрасчетныйОстаткиИОбороты90.Субконто1
8 Solitar
 
06.08.12
22:21
вопрос решил по другому. соединил с справочником номенклатурные группы через условия ИЛИ,т.е. Родитель.Родитель = .....Родитель. некрасиво, но что поделать)
9 olegves
 
07.08.12
08:45
(8) лучше б соединил НоменклатурнаяГруппа к справочнику номенклатуры (только группы верхнего уровня) ПО ВИерархии
10 OldFornit
 
07.08.12
09:26
два набора данных.
Первый - получает группы самого верхнего уровня и при соединении наборов данных передает во второй набор параметр - группу.
Второй - выбирает номенклатуру В Иерархии по принятому параметру.
Могу выслать пример.
11 OldFornit
 
07.08.12
09:32
гоню. Неверно прочитал задачу. Но в принципе можно и на нее наложить.