Имя: Пароль:
1C
1С v8
Помогите соединить результаты двух запросов
0 altaykniga
 
20.08.14
12:27
Есть два запроса. Необходимо их объединить, чтобы в итоге получить такой отчет:

https://yadi.sk/i/YdJ_unFTa6Nvv

Данные по НачальномуОстатку берутся из Запроса1, а данные по приходу — из Запроса2.

Каким образов произвести соединение результатов этих двух запросов??

Тексты запросов приведены ниже:

Запрос1
ВЫБРАТЬ
    ХозрасчетныйОстатки.Счет КАК Счет,
    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК НачальныйОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , , ) КАК ХозрасчетныйОстатки
ГДЕ
    (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
            ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
    И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Счет,
    ХозрасчетныйОстатки.Субконто1

УПОРЯДОЧИТЬ ПО
    ХозрасчетныйОстатки.Субконто1.Наименование
ИТОГИ
    СУММА(НачальныйОстаток)
ПО
    ОБЩИЕ,
    Счет

Запрос2
ВЫБРАТЬ
    ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
    ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
    СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
ГДЕ
    ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
    И (ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОсновнойСклад
            ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОборотныйСклад)
    И (ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
            ИЛИ ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ОприходованиеТоваров))

СГРУППИРОВАТЬ ПО
    ХозрасчетныйДвиженияССубконто.СчетДт,
    ХозрасчетныйДвиженияССубконто.СубконтоДт1

УПОРЯДОЧИТЬ ПО
    ХозрасчетныйДвиженияССубконто.СубконтоДт1.Наименование
ИТОГИ
    СУММА(Количество)
ПО
    ОБЩИЕ,
    Счет,
    Номенклатура
1 vicof
 
20.08.14
12:28
За 3500 сделаю.
2 Dmitriy_76
 
20.08.14
12:30
а что такое "от поставщиков..", "внтуреннее...". ..... ?
3 Crush
 
20.08.14
12:30
За 100500 (1) !
4 Crush
 
20.08.14
12:31
(0) Добавь детализацию прихода (2)
И оба запроса в скд
5 User_Agronom
 
20.08.14
12:31
(1) Ну и в чём проблема? За 4000 руб сделаю. Кто больше?
6 User_Agronom
 
20.08.14
12:32
+(5) Или же за 5000$ продам СП.
7 Dmitriy_76
 
20.08.14
12:33
(6) откуда у вас столько СП ... все продаем и продаем...
8 AlexITGround
 
20.08.14
12:34
(0) сделаю за 4500, 30 минут.
9 altaykniga
 
20.08.14
15:30
Ни как не могу сообразить, как нужно сделать. В консоли запросов написал нужные запросы (НачальныеОстатки, ПриходОтПоставщиков, ПриходВнутреннееПеремещение, ПриходПроизводство, РасходПроизводство, РасходРеализация, РасходВнутреннееПеремещение, КонечныеОстатки)

В условиях запроса разные условия по счетам учета идут...Ниже прикреплен файл с запросами (из консоли запросов сохранял)
https://yadi.sk/d/KYWW60YLa76Uu

Посмотрите, пожалуйста, умные люди, мне хоть бы принцип понять, как потом эти запросы соединить
10 User_Agronom
 
20.08.14
15:35
(7) Ввиду острого дефицита СП приходится производить их крупными партиями.
11 User_Agronom
 
20.08.14
15:49
(9) Что-то не нашел нигде объединенного.

Принцип:

Выбрать
А.й,
А.ц,
Б.я

из Таблица1 КАК А

левое соединение
(Выбрать
я,
ы из таблица2)КАК Б
По А.ц=Б.ы


Вот как-то так должно быть.
Полей в таблице может быть сколько угодно.

Если хотите подробнее, продам СП. Дорого.
12 spiller26
 
20.08.14
16:23
(9) или так

ВЫБРАТЬ
    ХозрасчетныйОстатки.Счет КАК Счет,
    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК НачальныйОстаток
ПОМЕСТИТЬ Вт1
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , , ) КАК ХозрасчетныйОстатки
ГДЕ
    (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
            ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
    И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Счет,
    ХозрасчетныйОстатки.Субконто1

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

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

СГРУППИРОВАТЬ ПО
    ХозрасчетныйДвиженияССубконто.СчетДт,
    ХозрасчетныйДвиженияССубконто.СубконтоДт1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Вт1.Счет,
    Вт1.Номенклатура КАК Номенклатура,
    СУММА(Вт1.НачальныйОстаток) КАК НачальныйОстаток
ИЗ
    Вт1 КАК Вт1

СГРУППИРОВАТЬ ПО
    Вт1.Счет,
    Вт1.Номенклатура

УПОРЯДОЧИТЬ ПО
    Номенклатура
13 altaykniga
 
20.08.14
17:30
что-то написал. Вроде бы работает, ну т.е. ошибок никаких не выдает при формировании запроса. Знающие люди, посмотрите, корректный ли запрос получается? Собственно текст запроса:

ВЫБРАТЬ
    ЕСТЬNULL(НачальныеОстатки.Номенклатура, ЕСТЬNULL(ПриходОтПоставщика.Номенклатура, ЕСТЬNULL(ПриходПеремещение.Номенклатура, ЕСТЬNULL(ПриходПроизводство.Номенклатура, ЕСТЬNULL(РасходПроизводство.Номенклатура, ЕСТЬNULL(РасходРеализация.Номенклатура, ЕСТЬNULL(РасходПеремещение.Номенклатура, КонечныеОстатки.Номенклатура))))))) КАК Номенклатура,
    ЕСТЬNULL(НачальныеОстатки.Счет, ЕСТЬNULL(ПриходОтПоставщика.Счет, ЕСТЬNULL(ПриходПеремещение.Счет, ЕСТЬNULL(ПриходПроизводство.Счет, ЕСТЬNULL(РасходПроизводство.Счет, ЕСТЬNULL(РасходРеализация.Счет, ЕСТЬNULL(РасходПеремещение.Счет, КонечныеОстатки.Счет))))))) КАК Счет,
    НачальныеОстатки.КоличествоОстаток КАК НачальныйОстаток,
    ПриходОтПоставщика.Количество КАК ПриходПост,
    ПриходПеремещение.Количество КАК ПриходПеремещение,
    ПриходПроизводство.Количество КАК ПриходПроизводство,
    РасходПроизводство.Количество КАК РасходПроизводство,
    РасходРеализация.Количество КАК РасходРеализация,
    РасходПеремещение.Количество КАК РасходПеремещение,
    КонечныеОстатки.КоличествоОстаток КАК КонечныйОстаток
ИЗ
        (ВЫБРАТЬ
            ХозрасчетныйОстатки.Счет КАК Счет,
            ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
            СУММА(ХозрасчетныйОстатки.КоличествоОстаток)
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , , ) КАК ХозрасчетныйОстатки
        ГДЕ
            (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
                ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
                    И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйОстатки.Счет,
            ХозрасчетныйОстатки.Субконто1) КАК НачальныеОстатки
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
            И (ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОсновнойСклад
            ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОборотныйСклад)
            И (ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
                ИЛИ ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ОприходованиеТоваров))
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетДт,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходОтПоставщика
            ПО НачальныеОстатки.Номенклатура = ПриходОтПоставщика.Номенклатура
                И НачальныеОстатки.Счет=ПриходОтПоставщика.Счет
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
            И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
            И (ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОсновнойСклад
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОборотныйСклад)
            И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетДт,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходПеремещение
    ПО НачальныеОстатки.Номенклатура = ПриходПеремещение.Номенклатура
        И НачальныеОстатки.Счет=ПриходОтПоставщика.Счет
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет43)
            И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет20)
            И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетДт,
            ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходПроизводство
            ПО НачальныеОстатки.Номенклатура = ПриходПроизводство.Номенклатура
                И НачальныеОстатки.Счет=ПриходПроизводство.Счет
//***********************************************************************************РАСХОД***************************************************************
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетКт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет20)
            И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетКт,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходПроизводство
            ПО НачальныеОстатки.Номенклатура = РасходПроизводство.Номенклатура
                И НачальныеОстатки.Счет=РасходПроизводство.Счет
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетКт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет62_01)
            И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет43)
            И (ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОсновнойСклад
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОборотныйСклад)
            И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетКт,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходРеализация
    ПО НачальныеОстатки.Номенклатура = РасходРеализация.Номенклатура
        И НачальныеОстатки.Счет=РасходРеализация.Счет
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйДвиженияССубконто.СчетКт КАК Счет,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
            СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода,,,) КАК ХозрасчетныйДвиженияССубконто
        ГДЕ
            ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
            И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
            И (ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОсновнойСклад
                ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОборотныйСклад)
            И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйДвиженияССубконто.СчетКт,
            ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходПеремещение
    ПО НачальныеОстатки.Номенклатура = РасходПеремещение.Номенклатура
        И НачальныеОстатки.Счет=РасходПеремещение.Счет
    ПОЛНОЕ СОЕДИНЕНИЕ
        (ВЫБРАТЬ
            ХозрасчетныйОстатки.Счет КАК Счет,
            ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
            СУММА(ХозрасчетныйОстатки.КоличествоОстаток)
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , , ) КАК ХозрасчетныйОстатки
        ГДЕ
            (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
                ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
                    И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)
        СГРУППИРОВАТЬ ПО
            ХозрасчетныйОстатки.Счет,
            ХозрасчетныйОстатки.Субконто1) КАК КонечныеОстатки
    ПО НачальныеОстатки.Номенклатура = КонечныеОстатки.Номенклатура
        И НачальныеОстатки.Счет=КонечныеОстатки.Счет
14 altaykniga
 
21.08.14
13:15
написал внешний отчет. Ниже приведен текст модуля формы.
Не работает ВыборкаДетальныеЗаписи, т.е. не попадает в эту выборку ни одного элемента Почему? +не работает автогруппировкаСтрок. Что не так я в модуле написал??


&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере();
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
    ТабДок.Очистить();
    ЭтотОбъект1=РеквизитФормыВЗначение("Отчет");
    Макет = ЭтотОбъект1.ПолучитьМакет("Макет");
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьСтрокаРодитель = Макет.ПолучитьОбласть("СтрокаРодитель");
    ТабДок.Вывести(ОбластьШапка);
    
    ОборотныйСклад = Справочники.Склады.НайтиПоНаименованию("Оборотный склад");
    Если НЕ ЗначениеЗаполнено(ОборотныйСклад) Тогда
        Сообщить("В справочнике ""склады"" не найден ""Оборотный склад"". Отчет не сформирован");
        возврат;
    КонецЕсли;
    ОсновнойСклад = Справочники.Склады.НайтиПоНаименованию("Основной склад");
    Если НЕ ЗначениеЗаполнено(ОсновнойСклад) Тогда
        Сообщить("В справочнике ""склады"" не найден ""Основной склад"". Отчет не сформирован");
        возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Запр.Номенклатура КАК Номенклатура,
        |    СУММА(Запр.НачальныйОстаток) КАК НачальныйОстаток,
        |    СУММА(Запр.ПриходПост) КАК ПриходПост,
        |    СУММА(Запр.ПриходПеремещение) КАК ПриходПеремещение,
        |    СУММА(Запр.ПриходПроизводство) КАК ПриходПроизводство,
        |    СУММА(Запр.РасходПроизводство) КАК РасходПроизводство,
        |    СУММА(Запр.РасходРеализация) КАК РасходРеализация,
        |    СУММА(Запр.РасходПеремещение) КАК РасходПеремещение,
        |    СУММА(Запр.КонечныйОстаток) КАК КонечныйОстаток
        |ИЗ
        |    (ВЫБРАТЬ
        |        ЕСТЬNULL(НачальныеОстатки.Номенклатура, ЕСТЬNULL(ПриходОтПоставщика.Номенклатура, ЕСТЬNULL(ПриходПеремещение.Номенклатура, ЕСТЬNULL(ПриходПроизводство.Номенклатура, ЕСТЬNULL(РасходПроизводство.Номенклатура, ЕСТЬNULL(РасходРеализация.Номенклатура, ЕСТЬNULL(РасходПеремещение.Номенклатура, КонечныеОстатки.Номенклатура))))))) КАК Номенклатура,
        |        ЕСТЬNULL(НачальныеОстатки.КоличествоОстаток, 0) КАК НачальныйОстаток,
        |        ЕСТЬNULL(ПриходОтПоставщика.Количество, 0) КАК ПриходПост,
        |        ЕСТЬNULL(ПриходПеремещение.Количество, 0) КАК ПриходПеремещение,
        |        ЕСТЬNULL(ПриходПроизводство.Количество, 0) КАК ПриходПроизводство,
        |        ЕСТЬNULL(РасходПроизводство.Количество, 0) КАК РасходПроизводство,
        |        ЕСТЬNULL(РасходРеализация.Количество, 0) КАК РасходРеализация,
        |        ЕСТЬNULL(РасходПеремещение.Количество, 0) КАК РасходПеремещение,
        |        ЕСТЬNULL(КонечныеОстатки.КоличествоОстаток, 0) КАК КонечныйОстаток
        |    ИЗ
        |        (ВЫБРАТЬ
        |            ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
        |            СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток
        |        ИЗ
        |            РегистрБухгалтерии.Хозрасчетный.Остатки(&НачалоПериода, , , ) КАК ХозрасчетныйОстатки
        |        ГДЕ
        |            (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
        |                    ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
        |            И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)
        |        
        |        СГРУППИРОВАТЬ ПО
        |            ХозрасчетныйОстатки.Субконто1) КАК НачальныеОстатки
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
        |                И (ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОсновнойСклад
        |                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОборотныйСклад)
        |                И (ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг)
        |                        ИЛИ ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ОприходованиеТоваров)
        |                        ИЛИ ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ВводНачальныхОстатков))
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходОтПоставщика
        |            ПО НачальныеОстатки.Номенклатура = ПриходОтПоставщика.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
        |                И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
        |                И (ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОсновнойСклад
        |                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоДт3 = &ОборотныйСклад)
        |                И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходПеремещение
        |            ПО НачальныеОстатки.Номенклатура = ПриходПеремещение.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет43)
        |                И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет20)
        |                И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ОтчетПроизводстваЗаСмену)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СчетДт,
        |                ХозрасчетныйДвиженияССубконто.СубконтоДт1) КАК ПриходПроизводство
        |            ПО НачальныеОстатки.Номенклатура = ПриходПроизводство.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет20)
        |                И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходПроизводство
        |            ПО НачальныеОстатки.Номенклатура = РасходПроизводство.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет62_01)
        |                И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет43)
        |                И (ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОсновнойСклад
        |                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОборотныйСклад)
        |                И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходРеализация
        |            ПО НачальныеОстатки.Номенклатура = РасходРеализация.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйДвиженияССубконто.КоличествоКт) КАК Количество
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&НачалоПериода, &КонецПериода, , , ) КАК ХозрасчетныйДвиженияССубконто
        |            ГДЕ
        |                ХозрасчетныйДвиженияССубконто.СчетДт В ИЕРАРХИИ(&Счет10)
        |                И ХозрасчетныйДвиженияССубконто.СчетКт В ИЕРАРХИИ(&Счет10)
        |                И (ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОсновнойСклад
        |                        ИЛИ ХозрасчетныйДвиженияССубконто.СубконтоКт3 = &ОборотныйСклад)
        |                И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.Регистратор) = ТИП(Документ.ПеремещениеТоваров)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйДвиженияССубконто.СубконтоКт1) КАК РасходПеремещение
        |            ПО НачальныеОстатки.Номенклатура = РасходПеремещение.Номенклатура
        |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
        |                СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток
        |            ИЗ
        |                РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , , ) КАК ХозрасчетныйОстатки
        |            ГДЕ
        |                (ХозрасчетныйОстатки.Субконто3 = &ОсновнойСклад
        |                        ИЛИ ХозрасчетныйОстатки.Субконто3 = &ОборотныйСклад)
        |                И ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет10)
        |            
        |            СГРУППИРОВАТЬ ПО
        |                ХозрасчетныйОстатки.Субконто1) КАК КонечныеОстатки
        |            ПО НачальныеОстатки.Номенклатура = КонечныеОстатки.Номенклатура) КАК Запр
        |
        |СГРУППИРОВАТЬ ПО
        |    Запр.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    Запр.Номенклатура.Родитель.Наименование,
        |    Запр.Номенклатура.Наименование
        |ИТОГИ
        |    СУММА(НачальныйОстаток),
        |    СУММА(ПриходПост),
        |    СУММА(ПриходПеремещение),
        |    СУММА(ПриходПроизводство),
        |    СУММА(РасходПроизводство),
        |    СУММА(РасходРеализация),
        |    СУММА(РасходПеремещение),
        |    СУММА(КонечныйОстаток)
        |ПО
        |    ОБЩИЕ,
        |    Номенклатура ТОЛЬКО ИЕРАРХИЯ";
        //|    Номенклатура";
        
    Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.НачалоПериода));
    Запрос.УстановитьПараметр("КонецПериода", КонецДня(Отчет.КонецПериода));
    Запрос.УстановитьПараметр("ОборотныйСклад", ОборотныйСклад);
    Запрос.УстановитьПараметр("ОсновнойСклад", ОсновнойСклад);
    Запрос.УстановитьПараметр("Счет10", ПланыСчетов.Хозрасчетный.Материалы);
    Запрос.УстановитьПараметр("Счет20", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство_);
    Запрос.УстановитьПараметр("Счет43", ПланыСчетов.Хозрасчетный.ГотоваяПродукция);
    Запрос.УстановитьПараметр("Счет62_01", ПланыСчетов.Хозрасчетный.РасчетыСПокупателями);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаОбщийИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИЕрархией);
    
    ВыборкаОбщийИтог.Следующий();        // Общий итог
    ТабДок.НачатьАвтогруппировкуСтрок();
    ОбластьПодвал.Параметры.Заполнить(ВыборкаОбщийИтог);
    ТабДок.Вывести(ОбластьПодвал);
    ВыборкаНоменклатураРодитель = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИЕрархией);
    
    Пока ВыборкаНоменклатураРодитель.Следующий() Цикл
        ОбластьСтрокаРодитель.Параметры.Заполнить(ВыборкаНоменклатураРодитель);
        ОбластьСтрокаРодитель.Параметры.Код = ВыборкаНоменклатураРодитель.Номенклатура.Код;
        ТабДок.Вывести(ОбластьСтрокаРодитель);
        ВыборкаДетальныеЗаписи = ВыборкаНоменклатураРодитель.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ОбластьСтрока.Параметры.Код = ВыборкаДетальныеЗаписи.Номенклатура.Код;
            ТабДок.Вывести(ОбластьСтрока);
        КонецЦикла;
    КонецЦикла;
    ТабДок.ЗакончитьАвтогруппировкуСтрок();

КонецПроцедуры
15 antoneus
 
21.08.14
13:59
По автогруппировке - смотри параметры метода "Вывести".
16 altaykniga
 
21.08.14
14:25
(15) спасибо, автогруппировка заработала. Но цикл

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

не срабатывает, т.к. нет в выборке ни одного элемента

Как быть?
Если выполнять этот запрос через консольЗапросов, там все хорошо группируется и отображается в табличной части. Полагаю, напутал что-то при обработке результата запроса. Подскажите, знающие люди :)
17 altaykniga
 
21.08.14
19:44
тема закрыта, спасибо