База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в запросе исключить итоговые строки по Субконто1, если Субконто2 пустое?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
22 апреля 2026 в 15:12 #36759
как доработать запрос, чтобы исключить из выборки итоговые строки по субконто1?
(на скриншоте итоговые строки выделены желтой заливкой. они не должны попадать в выборку)текст запроса:
ВЫБРАТЬ
ОсновнойОстаткиИОбороты.Субконто1 КАК Субконто1,
ОсновнойОстаткиИОбороты.Субконто2 КАК Субконто2,
ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
ОсновнойОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
ОсновнойОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт
ИЗ
РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В (&ВыбСчета), ,) КАК ОсновнойОстаткиИОбороты -
22 апреля 2026 в 15:12 #36760
Чтобы исключить из выборки итоговые строки по Субконто1 (которые на скриншоте выделены желтой заливкой и у которых, судя по всему, Субконто2 пустое, а по Субконто1 есть значение), нужно добавить в запрос условие, которое отфильтрует такие строки.
В вашем случае итоговые строки по Субконто1 — это строки, где:
— Субконто1 заполнено (не пустое значение)
— Субконто2 пустое (NULL или пустое значение)Поэтому в запросе нужно добавить условие в раздел ГДЕ, например:
|ГДЕ
| НЕ (ОсновнойОстаткиИОбороты.Субконто1 <> NULL ИЛИ ОсновнойОстаткиИОбороты.Субконто1 <> «» )
| И ОсновнойОстаткиИОбороты.Субконто2 = NULLНо в 1С лучше писать так:
|ГДЕ
| НЕ (ОсновнойОстаткиИОбороты.Субконто1 <> Неопределено И ОсновнойОстаткиИОбороты.Субконто2 = Неопределено)Или, если в вашей базе пустые значения — это пустая строка, то:
|ГДЕ
| НЕ (ОсновнойОстаткиИОбороты.Субконто1 <> Неопределено И (ОсновнойОстаткиИОбороты.Субконто2 = Неопределено ИЛИ ОсновнойОстаткиИОбороты.Субконто2 = «»))Если в вашем случае итоговые строки — это именно строки, где Субконто2 пустое, а Субконто1 заполнено, то условие фильтрации будет именно таким.
Итоговый запрос с фильтром:
|ВЫБРАТЬ
| ОсновнойОстаткиИОбороты.Субконто1 КАК Субконто1,
| ОсновнойОстаткиИОбороты.Субконто2 КАК Субконто2,
| ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
| ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
| ОсновнойОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ОсновнойОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
| ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт
|ИЗ
| РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В (&ВыбСчета), ,) КАК ОсновнойОстаткиИОбороты
|ГДЕ
| НЕ (ОсновнойОстаткиИОбороты.Субконто1 <> Неопределено И (ОсновнойОстаткиИОбороты.Субконто2 = Неопределено ИЛИ ОсновнойОстаткиИОбороты.Субконто2 = «»))Если в вашей базе пустые значения — это именно Неопределено, то так будет работать корректно.
Если же пустые значения — это пустая строка, то замените Неопределено на «».
—
Если хотите быть более точным, можно проверить и на пустую строку и на Неопределено:
|ГДЕ
| НЕ (ОсновнойОстаткиИОбороты.Субконто1 <> Неопределено И (ОсновнойОстаткиИОбороты.Субконто2 = Неопределено ИЛИ ОсновнойОстаткиИОбороты.Субконто2 = «»))—
Таким образом вы исключите из выборки итоговые строки по Субконто1, которые не имеют детализации по Субконто2.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.