8.х запрос по регистру бухгалтерии

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем unknown181538, 23 фев 2009.

  1. TopicStarter Overlay
    unknown181538
    Offline

    unknown181538

    Регистрация:
    24 фев 2008
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Нужно создать отчет по остаткам по Д 60.2 и кредиту 60.1. При этом остатки должны выводиться только при наличии остатков по одному договору по дебету и кредиту. Выводиться остатки должны в разрезе третьего субконто(платежно-расчетные документы, значения которого по дебету и кредиту всегда разные). Со вторым разобрался с помощью внутреннего соединения. А как быть с третьим непонятно. Должно быть что-то вроде внешнего соединения по нему.
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ДТ60_2.Субконто1,
    |    ДТ60_2.Субконто2 КАК Субконто2,
    |    ЕСТЬNULL(ДТ60_2.Субконто3, """") КАК Субконто3,
    |    ДТ60_2.СуммаОстатокДт КАК СуммаОстатокДт,
    |    КТ60_1.Субконто1 КАК Субконто11,
    |    КТ60_1.Субконто2 КАК Субконто21,
    |    ЕСТЬNULL(КТ60_1.Субконто3, """") КАК Субконто31,
    |    КТ60_1.СуммаОстатокКт КАК СуммаОстатокКт
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет.Код = ""60.02"", , ) КАК ДТ60_2
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки
    (&Дата, Счет.Код = ""60.01"", , ) КАК КТ60_1
    |        ПО ДТ60_2.Субконто2 = КТ60_1.Субконто2
    |            И ДТ60_2.Субконто1 = КТ60_1.Субконто1
    |
    |СГРУППИРОВАТЬ ПО
    |    ДТ60_2.Субконто2,
    |    ЕСТЬNULL(ДТ60_2.Субконто3, """"),
    |    ЕСТЬNULL(КТ60_1.Субконто3, """"),
    |    ДТ60_2.Субконто1,
    |    ДТ60_2.СуммаОстатокДт,
    |    КТ60_1.Субконто1,
    |    КТ60_1.Субконто2,
    |    КТ60_1.СуммаОстатокКт
    |ИТОГИ
    |    СУММА(СуммаОстатокДт),
    |    СУММА(СуммаОстатокКт)
    |ПО
    |    Субконто2,
    |    Субконто3,
    |    Субконто31";
    Запрос.УстановитьПараметр("Дата",Дата);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока Выборка.Следующий() цикл
    Сообщить(строка(Выборка.Субконто1)+строка(выборка.субконто2)+строка(Выборка.Субконто3)+
    строка(выборка.субконто31)+" дебет "+Строка(выборка.СуммаОстатокДт)+
    " кредит "+Строка(выборка.СуммаОстатокКт));
    //Сообщить(Выборка.Субконто3);
    Выборка2=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока Выборка2.Следующий() цикл
    Сообщить("!!"+строка(Выборка2.Субконто3)+строка(Выборка2.Субконто31));
    КонецЦикла;
    
    КонецЦикла;
    
    
    
    
    Пытался сделать вложенными запросами, и тоже не осилил. Как правильно?

Поделиться этой страницей