1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

8.1 Запрос по регистру бухгалтерии

Тема в разделе "Базы данных и администрирование", создана пользователем unknown181538, 23 фев 2009.

  1. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    Нужно создать отчет по остаткам по Д 60.2 и кредиту 60.1. При этом остатки должны выводиться только при наличии остатков по одному договору по д*цензура*у и кредиту. Выводиться остатки должны в разрезе третьего субконто(платежно-расчетные документы, значения которого по д*цензура*у и кредиту всегда разные). Со вторым разобрался с помощью внутреннего соединения. А как быть с третьим непонятно. Должно быть что-то вроде внешнего соединения по нему.
    PHP:
    Запрос Новый Запрос;
    Запрос.Текст "ВЫБРАТЬ
    |    ДТ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));
    КонецЦикла;

    КонецЦикла;

    Пытался сделать вложенными запросами, и тоже не осилил. Как правильно?
     
  2. Mirage

    Mirage Гость

    Репутация:
    0
    Выдели запрос в подзапрос, там разберешься, я бы вообще делал объединением трех запросов
     
Загрузка...

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