База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в запросе 1С исключить услуги или учитывать только товары?
- В этой теме 1 ответ, 2 участника, последнее обновление 5 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
8 августа 2026 в 8:08 #38351
добавить в запрос пропуск услуг |ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Доки
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|;
|
|ВЫБРАТЬ
| ВТ_Доки.Ссылка КАК Ссылка
|ИЗ
| ВТ_Доки КАК ВТ_Доки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ПО ВТ_Доки.Ссылка = ТоварыНаСкладах.Регистратор
|ГДЕ
| ТоварыНаСкладах.Регистратор ЕСТЬ NULL -
8 августа 2026 в 8:08 #38352
Чтобы в вашем запросе исключить услуги (т.е. пропустить документы, в табличной части которых есть только услуги, или вообще исключить услуги из выборки), нужно добавить условие по типу номенклатуры.
В УТ 11.5 у номенклатуры есть реквизит «ТипНоменклатуры» (Перечисление.ТипыНоменклатуры), где есть значения «Товар», «Услуга» и т.п.
Для этого нужно:
1. В запросе, где формируется временная таблица ВТ_Доки, добавить соединение с табличной частью и фильтр по типу номенклатуры — чтобы брать только документы, где есть товары (не услуги).
2. Либо, если нужно пропускать документы, в которых есть только услуги, а с товарами — брать, то нужно группировать по документу и проверять наличие товаров.
Пример упрощённого варианта — взять документы, у которых в табличной части есть хотя бы одна строка с номенклатурой типа «Товар»:
|ВЫБРАТЬ
| DISTINCT Реализация.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Доки
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
| ПО Товары.Ссылка = Реализация.Ссылка
|ГДЕ
| Реализация.Проведен
| И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И Товары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
|;
|
|ВЫБРАТЬ
| ВТ_Доки.Ссылка КАК Ссылка
|ИЗ
| ВТ_Доки КАК ВТ_Доки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
| ПО ВТ_Доки.Ссылка = ТоварыНаСкладах.Регистратор
|ГДЕ
| ТоварыНаСкладах.Регистратор ЕСТЬ NULL—
Если нужно исключить услуги полностью из выборки, то фильтр по типу номенклатуры в первом запросе — самый простой и правильный способ.
Если же нужно брать документы, где есть и товары, и услуги, но при этом проверять отсутствие движений по товарам, то нужно усложнить запрос — например, группировать по документу и проверять наличие товаров.
—
Если нужна помощь с более сложным вариантом — уточните.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.