База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выбрать документы с табличной частью «Товары» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 часа, 46 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
17 апреля 2026 в 15:15 #36634
Как запросом выбрать документы в которых табличной часть называется Товары?
-
17 апреля 2026 в 15:15 #36635
Михаил, чтобы запросом выбрать документы, у которых есть табличная часть с именем «Товары», в 1С через REST API (OData) или через встроенный язык 1С, нужно учитывать, что табличная часть — это коллекция внутри документа, а не отдельный объект. Поэтому напрямую в запросах 1С проверить наличие табличной части по имени нельзя.
Вот как можно это сделать:
1. Через REST API (OData) можно использовать фильтр с лямбда-функцией any, чтобы выбрать документы, у которых в табличной части «Товары» есть хотя бы одна строка:
1С (Код)1localhost/REST/odata/standard.odata/Document_ПоступлениеТоваров?$filter=Товары/any(d: true)&$format=json2. В языке запросов 1С нельзя напрямую проверить наличие табличной части, но можно сделать запрос к табличной части как к отдельному ресурсу и получить ссылки на документы, у которых есть строки в табличной части:
1С (Код)123456789Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Документ.Ссылка КАК Документ|ИЗ| Документ.ПоступлениеТоваров.Товары КАК ТабЧасть|ГДЕ| ТабЧасть.Ссылка = Документ.Ссылка";Запрос.Выполнить();Или более простой вариант — выбрать ссылки на документы из табличной части «Товары»:
1С (Код)1234567Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Товары.Ссылка КАК Документ|ИЗ| Документ.ПоступлениеТоваров.Товары КАК Товары";Запрос.Выполнить();3. Через встроенный язык 1С (объектный подход) можно перебрать документы и проверить, что в табличной части «Товары» есть строки:
1С (Код)1234567ПоступлениеТоваров = Документы.ПоступлениеТоваров;Выборка = ПоступлениеТоваров.Выбрать();Пока Выборка.Следующий() ЦиклЕсли Выборка.Товары.Количество() > 0 ТогдаСообщить("Документ № " + Выборка.Номер + " содержит строки в табличной части Товары");КонецЕсли;КонецЦикла;Итог:
— Через REST API используйте фильтр с any по табличной части.
— Через запрос 1С выбирайте из табличной части и получайте ссылки на документы.
— Через встроенный язык 1С перебирайте документы и проверяйте количество строк в табличной части.Если нужен пример запроса для REST API с фильтром по табличной части «Товары», чтобы получить документы с непустой табличной частью, вот он:
1С (Код)1localhost/REST/odata/standard.odata/Document_ПоступлениеТоваров?$filter=Товары/any(d: true)&$format=json
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.