Выборка с обращением к вложенной таблице через поле составного типа

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Выборка с обращением к вложенной таблице через поле составного типа
 
Добрый день!
Иногда приходится делать выборку по заказам (Заказ покупателя, заказ внутренний) из какого-то регистра, получая номенклатурные позиции,  и при этом ещё получать какое-то поле из ТЧ Товары Заказа Покупателя/Внутреннего для полученной номенклатуры. Однако конструктор запроса ругается.

На примере:
Ест поступление товаров. На его основании делаю выборку номенклатуры, где Заказом Покупателя является ССЫЛКА Документ.ЗаказПокупателя
Код
ВЫБРАТЬ
   ЗаказыРаспределение.Регистратор,
   ЗаказыРаспределение.ЗаказПокупателя,
   ЗаказыРаспределение.Номенклатура
ИЗ
   РегистрНакопления.ЗаказыРаспределение КАК ЗаказыРаспределение
ГДЕ
   ЗаказыРаспределение.Регистратор = &Регистратор
   И ЗаказыРаспределение.ЗаказПокупателя ССЫЛКА Документ.ЗаказПокупателя

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

и получаю ошибку


Подскажите, пожалуйста, как правильно заполучить информацию из ТЧ Товары в подобных случаях?
 
В принципе, получил, вот такой работающий код, тока не знаю, насколько он правильный в плане отсутствия тормозов...
Код
ВЫБРАТЬ
   ЗаказыРаспределение.Регистратор,
   ЗаказыРаспределение.ЗаказПокупателя,
   ЗаказыРаспределение.Номенклатура,
   ЗаказПокупателяТовары.УчетВеса
ИЗ
   Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыРаспределение КАК ЗаказыРаспределение
      ПО ЗаказПокупателяТовары.Номенклатура = ЗаказыРаспределение.Номенклатура
ГДЕ
   ЗаказыРаспределение.Регистратор = &Регистратор
   И ЗаказыРаспределение.ЗаказПокупателя ССЫЛКА Документ.ЗаказПокупателя
 
Со скоростью все нормально. Нужно добавить в условие соединения сравнение полей ЗаказПокупателяТовары.Ссылка = ЗаказыРаспределение.ЗаказПокупателя и ВЫБРАТЬ заменить ВЫБРАТЬ РАЗЛИЧНЫЕ.
 
Спасибо!
Я почему-то думал, что ЗаказПокупателяТовары.Ссылка - это ссылка на Товарную часть ЗаказаПокупателя, а не на сам ЗаказПокупателя, которому эта ТЧ принадлежит.
 
Ссылка - это ссылка на объект в базе она всегда одна, по ней можно связать шапку с ее таблицами. Грубый пример хранения таблиц документов и справочников в базе: каждый вид документа (ПКО, Поступление товаров и т.д.) это отдельная таблица базы данных. В таблице колонки это реквизиты шапки и ссылка. Если у документа есть табличная часть, то это отдельная дополнительная таблица, где колонки реквизиты таблицы и поле ссылка, по которой таблицу можно связать с шапкой. Если есть еще одна таблица то добавиться третья таблица и т.д.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С