• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы unknown181538
  • Дата начала
U

unknown181538

Нужно создать отчет по остаткам по Д 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));
КонецЦикла;

КонецЦикла;


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

Mirage

Выдели запрос в подзапрос, там разберешься, я бы вообще делал объединением трех запросов
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!