![]() |
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
gilders89 27.01.21 - 15:41 | Запрос = Новый Запрос(
"ВЫБРАТЬ | ПоступлениеТоваров.Ссылка, | ПоступлениеТоваров.Дата, | ПоступлениеТоваров.Номер, | ПоступлениеТоваров.ВалютаДокумента, | ПоступлениеТоваров.ВидОперации, | ПоступлениеТоваров.ДатаВходящегоДокумента, | ПоступлениеТоваров.НомерВходящегоДокумента, | ПоступлениеТоваров.Контрагент КАК Контрагент, | ПоступлениеТоваров.СуммаДокумента, | ПоступлениеТоваров.Склад, | ПоступлениеТоваров.Организация, | ПоступлениеТоваров.Товары.( | Ссылка, | НомерСтроки, | Номенклатура, | ДополнительнаяЕдиницаИзмерения, | КоличествоВДополнительныхЕИ, | Коэффициент, | Количество, | ЕдиницаИзмерения, | ЦенаИзготовителя, | Надбавка, | Цена, | Сумма, | СтавкаНДС, | СуммаНДС, | СтавкаНП, | СуммаНП, | Всего, | НомерГТД, | СтранаПроисхождения, | СчетУчетаБУ, | СчетУчетаНДС, | СтавкаНДСРасчетная, | СтранаВвоза, | ДокументПартии, | ЗаказПоставщику, | ВидТары, | КоличествоМест, | КоличествоВМесте, | ТорговаяНадбавка, | ЦенаОтпускная, | СтавкаНДСОтпускная, | ВидЦены, | СчетУчетаТорговойСкидки, | СуммаПоЦенеИзготовителя, | Сертификат, | УГГР, | СопроводительныеДокументы, | КлючСтроки, | КлючСтрокиДоп, | ХарактеристикаНоменклатуры, | ИнвентарныйНомер, | ЗаказНаПроизводство, | ЦенаРуб, | СуммаРуб, | СуммаНДСРуб, | КоличествоВДопЕИПоступления, | Длина, | Ширина, | ПартияУТ, | ВесБрутто, | Склад | ) | ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваров | ГДЕ | ПоступлениеТоваров.Дата >= &НачДата | И ПоступлениеТоваров.Дата <= &КонДат | И ПоступлениеТоваров.ПометкаУдаления <> ИСТИНА | И ПоступлениеТоваров.Проведен = ИСТИНА | И ПоступлениеТоваров.Контрагент <> &Контрагент" ); Как подсчитать количество товаров во вложенной табличной части ПоступлениеТоваров.Товары? | ||
Малыш Джон 1 - 27.01.21 - 15:48 | (0) обращаться в запросе не к таблице документа, а к табличной части напрямую | ||
gilders89 2 - 27.01.21 - 15:54 | Я новичок, можно подробнее | ||
Ёпрст 3 - 27.01.21 - 16:01 | (2)
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Ссылка КАК ССылка, КОЛИЧЕСТВО(ПоступлениеТоваровУслугТовары.Ссылка) КАК Количество ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата >= &Дата СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка | ||
Ёпрст 4 - 27.01.21 - 16:02 | ну и условия свои еще воткни:
ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата Между &НачДата И &КонДат И ПоступлениеТоваров.Проведен И ПоступлениеТоваров.Контрагент <> &Контрагент | ||
azernot 5 - 27.01.21 - 16:03 | (0) Количество строк в табличной части? Количество разных товарных позиций? Или суммарное количество штук? | ||
Ёпрст 6 - 27.01.21 - 16:03 | *
И ПоступлениеТоваров.ССылка.Проведен И ПоступлениеТоваров.ССылк.Контрагент <> &Контрагент | ||
gilders89 7 - 27.01.21 - 16:32 | Мне нужно проверить есть ли записи в табличной части Товары, или нет | ||
gilders89 8 - 27.01.21 - 16:34 | и если нет то пропускать документ | ||
DJ Anthon 9 - 27.01.21 - 16:34 | если их нет, то документ и не попадет в запрос | ||
gilders89 10 - 27.01.21 - 16:39 | если проведен как услуга | ||
fisher 11 - 27.01.21 - 16:41 | (8)
А не проще ли уже в пост-обработке пропускать сроки с пустыми вложенными таблицами? Для чего вообще этот запрос? Но если очень хочется, то можно как-то так: ГДЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ТоварыТЧ ГДЕ ТоварыТЧ.Ссылка = ПоступлениеТоваров.Ссылка) | ||
fisher 12 - 27.01.21 - 16:45 | (2) Совет новичку - не используй в запросах вложенные таблицы. Это рудиментарный прием. Нужен он только если реально хочешь получить на выходе вложенные таблицы результата. Это очень редко нужно. А больше от них никакого толку и нет. | ||
gilders89 13 - 27.01.21 - 17:04 | Нужно переварить все, для моего уровня сложно. Если не использовать вложенные таблицы Товары, Услуги и другие. Как потом вывести все товары или услуги из документа? | ||
gilders89 14 - 27.01.21 - 17:12 | Можете помочь разобрать ГДЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ТоварыТЧ ГДЕ ТоварыТЧ.Ссылка = ПоступлениеТоваров.Ссылка) | ||
gilders89 15 - 27.01.21 - 17:20 | Точнее мне не понятно, вот эта часть 1 В ( и вот эта ПЕРВЫЕ 1 1 | ||
fisher 16 - 27.01.21 - 17:21 | (13) Основа языка запросов 1С базируется на операциях над плоскими множествами (таблицами). Их соединением и объединением. Результатом также является плоская таблица. Иерархия в результат добавляется конструкцией ИТОГИ. Если выводить в отчет, то для этого обычно используется СКД, где это фактически параметризировано (разработчик или даже пользователь может задать иерархию группировок параметрически).
(14) Ты проверь сначала, работает условие или нет. Я на 100% не уверен. Добавь это условие по И в конец к своим условиям. А объяснить это совсем новичку в запросах будет непросто. Лучше сначала найди учебный курс по запросам какой-нить. Но в двух словах логика такая. Это коррелирующий подзапрос в условии. У него в ГДЕ есть связка с полем внешней таблицы (шапок). То есть как бы по каждой строке шапки находятся все строки табличной части этого документа и по каждой строке табличной части документа возвращается единичка. Но из них в результат берется только одна. То есть, если у документа будет хоть одна строка табличной части, то подзапрос вернет единичку. Поэтому условие в целом фильтрует только те строки шапок, где есть строки табличной части. | ||
fisher 17 - 27.01.21 - 17:26 | Но этот прием удобен, только если сами данные табличной части тебе не нужны. В противном случае поступать нужно не так, а делать обычное соединение таблицы шапок документа с таблицей табличной части документа. В результате будет плоская таблица с комбинациями строк табличной части и данных шапки. А дальше уже - от задачи. |
|
Список тем форума |