Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 янв 2026, 17:09

Не выводятся данные в левом соединеии

Автор Nosferatu112, 10 ноя 2025, 14:27

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Всем доброго времени суток
такой вопрос при левом соединении и отсутствии условий на правую таблицу разве не должны выводится строки с null
То есть если за 29 число данных нет то строка с датой 29 и остальными данными null
Не могу понять что делаю ни так

Нужно что бы выводилось как
28.11 Организация РасчСчет Сумма Если есть данные
29.11 NULL  NULL  NULL NULL Если нет данных

А я получаю выборку только за те числа которые есть в РС а не за все что выбраны в периоде

Это данные для заполнения ТабличногоДокумента
Соответственно данные съезжают если нет дат с пустыми значениями

ВЫБРАТЬ
вд_ПлановыеДвиженияДенежныхСредств.Дата КАК Дата,
СУММА(ВЫБОР
КОГДА вд_ПлановыеДвиженияДенежныхСредств.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА вд_ПлановыеДвиженияДенежныхСредств.Сумма
КОНЕЦ) КАК СуммаПриход,
СУММА(ВЫБОР
КОГДА вд_ПлановыеДвиженияДенежныхСредств.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
ТОГДА вд_ПлановыеДвиженияДенежныхСредств.Сумма
КОНЕЦ) КАК СуммаРасход
ПОМЕСТИТЬ втПДДС
ИЗ
РегистрНакопления.вд_ПлановыеДвиженияДенежныхСредств КАК вд_ПлановыеДвиженияДенежныхСредств
ГДЕ
вд_ПлановыеДвиженияДенежныхСредств.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

СГРУППИРОВАТЬ ПО
вд_ПлановыеДвиженияДенежныхСредств.Дата
;

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

СГРУППИРОВАТЬ ПО
ДенежныеСредства.ВидДенежныхСредств,
ДенежныеСредства.Период,
ДенежныеСредства.РасчетныйСчетКасса,
ДенежныеСредства.Регистратор.Организация
;

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

СГРУППИРОВАТЬ ПО
ДенежныеСредства.ВидДенежныхСредств,
ДенежныеСредства.Период,
ДенежныеСредства.РасчетныйСчетКасса,
ДенежныеСредства.Регистратор.Организация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втСуммыРасчетныхСчетовПриход.ВидДенежныхСредств КАК ВидДенежныхСредств,
втСуммыРасчетныхСчетовПриход.Сумма КАК СуммаПриход,
втСуммыРасчетныхСчетовПриход.Период КАК Период,
втСуммыРасчетныхСчетовРасход.Сумма КАК СуммаРасход,
втСуммыРасчетныхСчетовПриход.РасчетныйСчетКасса КАК РасчетныйСчетКасса,
втСуммыРасчетныхСчетовПриход.Организация КАК Организация
ПОМЕСТИТЬ втПриходРасходНаРС
ИЗ
втСуммыРасчетныхСчетовПриход КАК втСуммыРасчетныхСчетовПриход
ЛЕВОЕ СОЕДИНЕНИЕ втСуммыРасчетныхСчетовРасход КАК втСуммыРасчетныхСчетовРасход
ПО втСуммыРасчетныхСчетовПриход.Период = втСуммыРасчетныхСчетовРасход.Период
И втСуммыРасчетныхСчетовПриход.РасчетныйСчетКасса = втСуммыРасчетныхСчетовРасход.РасчетныйСчетКасса
И втСуммыРасчетныхСчетовПриход.Организация = втСуммыРасчетныхСчетовРасход.Организация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаявкиНаРасходованиеДенежныхСредств.Организация КАК Организация,
ЗаявкиНаРасходованиеДенежныхСредств.ЗаявкаНаРасходованиеДС.ДатаРасхода КАК ЗаявкаНаРасходованиеДСДатаРасхода,
ЗаявкиНаРасходованиеДенежныхСредств.Сумма КАК Сумма
ПОМЕСТИТЬ втЗаявкиНаРасходРасход
ИЗ
РегистрНакопления.ЗаявкиНаРасходованиеДенежныхСредств КАК ЗаявкиНаРасходованиеДенежныхСредств
ГДЕ
ЗаявкиНаРасходованиеДенежныхСредств.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаявкиНаРасходованиеДенежныхСредств.Организация КАК Организация,
ЗаявкиНаРасходованиеДенежныхСредств.ЗаявкаНаРасходованиеДС.ДатаРасхода КАК ЗаявкаНаРасходованиеДСДатаРасхода,
ЗаявкиНаРасходованиеДенежныхСредств.Сумма КАК Сумма
ПОМЕСТИТЬ втЗаявкиНаРасходПриход
ИЗ
РегистрНакопления.ЗаявкиНаРасходованиеДенежныхСредств КАК ЗаявкиНаРасходованиеДенежныхСредств
ГДЕ
ЗаявкиНаРасходованиеДенежныхСредств.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗаявкиНаРасходПриход.Организация КАК Организация,
втЗаявкиНаРасходПриход.ЗаявкаНаРасходованиеДСДатаРасхода КАК ЗаявкаНаРасходованиеДСДатаРасхода,
СУММА(втЗаявкиНаРасходПриход.Сумма) КАК СуммаПриход,
СУММА(втЗаявкиНаРасходРасход.Сумма) КАК СуммаРасход
ПОМЕСТИТЬ втПриходРасходПоЗаявкам
ИЗ
втЗаявкиНаРасходРасход КАК втЗаявкиНаРасходРасход
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗаявкиНаРасходПриход КАК втЗаявкиНаРасходПриход
ПО втЗаявкиНаРасходРасход.Организация = втЗаявкиНаРасходПриход.Организация
И втЗаявкиНаРасходРасход.ЗаявкаНаРасходованиеДСДатаРасхода = втЗаявкиНаРасходПриход.ЗаявкаНаРасходованиеДСДатаРасхода

СГРУППИРОВАТЬ ПО
втЗаявкиНаРасходПриход.Организация,
втЗаявкиНаРасходПриход.ЗаявкаНаРасходованиеДСДатаРасхода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втПриходРасходПоЗаявкам.Организация КАК Организация,
втПриходРасходПоЗаявкам.ЗаявкаНаРасходованиеДСДатаРасхода КАК ЗаявкаНаРасходованиеДСДатаРасхода,
втПриходРасходПоЗаявкам.СуммаПриход КАК СуммаПриход,
втПриходРасходПоЗаявкам.СуммаРасход КАК СуммаРасход,
втПриходРасходПоЗаявкам.СуммаПриход - втПриходРасходПоЗаявкам.СуммаРасход КАК ОстатокПоЗаявке
ПОМЕСТИТЬ втПриходРасходПоЗаявкамКонДан
ИЗ
втПриходРасходПоЗаявкам КАК втПриходРасходПоЗаявкам
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втПДДС.Дата КАК Дата,
втПриходРасходНаРС.СуммаПриход КАК СуммаПриходНаРС,
втПриходРасходНаРС.СуммаРасход КАК СуммаРасходНаРС,
ЕСТЬNULL(втПриходРасходНаРС.СуммаПриход, 0) - ЕСТЬNULL(втПриходРасходНаРС.СуммаРасход, 0) КАК ОстатокНаНачалоДня,
втПриходРасходНаРС.Организация КАК Организация,
втПриходРасходНаРС.РасчетныйСчетКасса КАК РасчетныйСчет,
втПриходРасходНаРС.Период КАК Период,
втПДДС.СуммаПриход КАК СуммаПриход,
втПДДС.СуммаРасход КАК СуммаРасход,
ЕСТЬNULL(втПДДС.СуммаПриход, 0) - ЕСТЬNULL(втПДДС.СуммаРасход, 0) КАК ПланируемыйОстаток,
ДЕНЬНЕДЕЛИ(втПДДС.Дата) КАК ДеньНедели
ПОМЕСТИТЬ втДанные
ИЗ
втПДДС КАК втПДДС
ЛЕВОЕ СОЕДИНЕНИЕ втПриходРасходНаРС КАК втПриходРасходНаРС
ПО (НАЧАЛОПЕРИОДА(втПДДС.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(втПриходРасходНаРС.Период, ДЕНЬ))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втДанные.Дата КАК Дата,
втДанные.Организация КАК Организация,
втДанные.РасчетныйСчет КАК РасчетныйСчет,
втДанные.СуммаПриход КАК Сумма,
"План прихода" КАК НаименованиеСуммы,
втДанные.Период КАК Период,
втДанные.ДеньНедели КАК ДеньНедели
ПОМЕСТИТЬ втДанныеСНаименованиемСумм
ИЗ
втДанные КАК втДанные

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

ВЫБРАТЬ
втДанные.Дата,
втДанные.Организация,
втДанные.РасчетныйСчет,
втДанные.СуммаРасход,
"План расхода",
втДанные.Период,
втДанные.ДеньНедели
ИЗ
втДанные КАК втДанные

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

ВЫБРАТЬ
втДанные.Дата,
втДанные.Организация,
втДанные.РасчетныйСчет,
втДанные.СуммаПриходНаРС,
"Факт прихода",
втДанные.Период,
втДанные.ДеньНедели
ИЗ
втДанные КАК втДанные

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

ВЫБРАТЬ
втДанные.Дата,
втДанные.Организация,
втДанные.РасчетныйСчет,
втДанные.СуммаРасходНаРС,
"Факт расхода",
втДанные.Период,
втДанные.ДеньНедели
ИЗ
втДанные КАК втДанные

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

ВЫБРАТЬ
втДанные.Дата,
втДанные.Организация,
втДанные.РасчетныйСчет,
втДанные.ПланируемыйОстаток,
"Планируемый остаток на начало дня",
втДанные.Период,
втДанные.ДеньНедели
ИЗ
втДанные КАК втДанные

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

ВЫБРАТЬ
втДанные.Дата,
втДанные.Организация,
втДанные.РасчетныйСчет,
втДанные.ОстатокНаНачалоДня,
"Остаток на начало дня факт",
втДанные.Период,
втДанные.ДеньНедели
ИЗ
втДанные КАК втДанные
;

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

СГРУППИРОВАТЬ ПО
втДанныеСНаименованиемСумм.Дата,
втДанныеСНаименованиемСумм.Организация,
втДанныеСНаименованиемСумм.РасчетныйСчет,
втДанныеСНаименованиемСумм.Сумма,
втДанныеСНаименованиемСумм.НаименованиеСуммы,
втДанныеСНаименованиемСумм.ДеньНедели
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втГруппировка.Дата КАК Дата
ПОМЕСТИТЬ втДаты
ИЗ
втГруппировка КАК втГруппировка

СГРУППИРОВАТЬ ПО
втГруппировка.Дата
;

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

СГРУППИРОВАТЬ ПО
втДаты.Дата,
ДЕНЬНЕДЕЛИ(втДаты.Дата),
втГруппировка.НаименованиеСуммы,
втГруппировка.РасчетныйСчет,
втГруппировка.Организация

УПОРЯДОЧИТЬ ПО
Организация,
РасчетныйСчет,
НаименованиеСуммы,
Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втГруппировка.Дата КАК Дата,
втГруппировка.ДеньНедели КАК ДеньНедели
ИЗ
втГруппировка КАК втГруппировка

СГРУППИРОВАТЬ ПО
втГруппировка.Дата,
втГруппировка.ДеньНедели

УПОРЯДОЧИТЬ ПО
Дата

antoneus

Запрос не читал, но левое соединение + условие в секции ГДЕ на присоединяемую таблицу = внутреннее соединение (т.е. null-ов не будет).
Null-ы приедут, если условия накладывать в самом соединении.

Nosferatu112

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

СГРУППИРОВАТЬ ПО
    втДаты.Дата,
    ДЕНЬНЕДЕЛИ(втДаты.Дата),
    втГруппировка.НаименованиеСуммы,
    втГруппировка.РасчетныйСчет,
    втГруппировка.Организация

УПОРЯДОЧИТЬ ПО
    Организация,
    РасчетныйСчет,
    НаименованиеСуммы,
    Дата
;
Вот проблемный кусок
Групировки и упорядочивания пробовал убирать всё равно нет nuulов

antoneus

А что, должны быть?
Выбираем из таблицы даты, потом соединяем с этой же таблицей по датам. Откуда нуллы-то возьмутся?

Nosferatu112

antoneus, Блин получается не правильно построен запрос, как его построить так что бы на каждую дату из периода была строка, неважно с данными или нет

antoneus

Создать временную таблицу всех дат периода, с ней соединять. Примеры как создать - в тырнете.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск