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

Декоративное изображение

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

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

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

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

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


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