Запрос! Help!

Новая тема
"Подскажите, пожалуйста. Пытаюсь из счет-фактуры полученной через документ-основание, из вкладки "Услуги", из субконто1, которое "подразделения организации", вытащить КПП этого подразделения.

ЗапросНаКПП = Новый Запрос();
ЗапросНаКПП.Текст = "ВЫБРАТЬ
                   | ПоступлениеТоваровУслуг.Услуги.(
                   | Субконто1
                   | )
                   |ИЗ
                   | Документ.СчетФактураПолученный КАК СчетФактураПолученный
                   | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
                   | ПО СчетФактураПолученный.ДокументОснование = ПоступлениеТоваровУслуг.Ссылка";

КПП1 = ЗапросНаКПП.Выполнить().Выбрать();
КПП = КПП1.ПодразделенияОрганизаций.КПП;

Выдает ошибку, что не находит ПодразделенияОрганизаций. Где ошибка?)"
> Выдает ошибку, что не находит ПодразделенияОрганизаций. Где ошибка?)

Ошибка в ДНК :)

А по сути... очень странный запрос. Сомневаюсь что он вообще хоть что нибудь выбирает.
Конфигурация, релиз?
Какую задачу пытаетесь решить?

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

2. Не удивительно, что выдает ошибку - в запросе выбирается только Субконто1, поэтому:
КПП = КПП1.Субконто1.КПП; (тут правда тоже возможна ошибка, если у Субконто1 нет реквизита КПП - никогда не знаешь, что в этих субконто поставят)

3. Не понятно, выбрать-то выбрали, а перебор где? Или просто решили сократить?
КПП1 = ЗапросНаКПП.Выполнить().Выбрать();
Пока КПП1.Следующий() Цикл
 КПП = КПП1.Субконто1.КПП;
КонецЦикла;"
Чисто получить результат...
вот к примеру

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


хотя если делать по уму, то дополнительно надо проверить (так навскидку, не анализируя вероятные ситуации)
1. Включен ли в счет-фактуре флаг  разрешающий использовать несколько документов оснований. (в зависимости от флага нужно задавать ту или иную выборку в запросе)
2. Является ли документ основание типом документа "Поступление товаров и услуг"
3. Имеется ли в получаемой строке документа основания субконто нужного нам типа. (может мы затраты по одной строке посадили к примеру на 91-й)

З.Ы. Маленькая подсказка... Обработка "Консоль запросов" жутко удобный инструмент при конструировании текста запроса.
"Спасибо большое за подсказку. Только начинаю работать с запросами, поэтому все в новинку.
У меня этот запрос срабатывает только при определенном условии, поэтому у меня всегда у Субконто1 есть реквизит КПП.
Единственное, не совсем понятно вот с этой строчкой.
| СчетФактураПолученный.Ссылка = &Ссылка"
Я теперь должна в параметр Ссылка запихнуть документ-основание?
ЗапросНаКПП.УстановитьПараметр("Ссылка", ???);
Спасибо большое, что помогаете разобраться)"
Спасибо большое за помощь. Консолью запросов пользуюсь, но пока я с этой обработкой на "вы"))
У меня вопрос по этой строчке, может вы подскажете, что передавать в параметре ТекДокумент?
|СчетФактураПолученный.Ссылка = &ТекДокумент
> Спасибо большое за помощь. Консолью запросов пользуюсь, но пока я с этой обработкой на "вы"))
> У меня вопрос по этой строчке, может вы подскажете, что передавать в параметре ТекДокумент?
> |СчетФактураПолученный.Ссылка = &ТекДокумент

Так как при выводе на печать вы формируете запрос в модуле объекта из класса "ДокументОбъект", то передавать соответственно нужно "ЭтотОбъект.Ссылка"
"> Спасибо большое за подсказку. Только начинаю работать с запросами, поэтому все в новинку.
> У меня этот запрос срабатывает только при определенном условии, поэтому у меня всегда у Субконто1 есть реквизит КПП.
Запрос может и вызывается при определенном условии, вот только без слова ГДЕ - выбирает все, что попадется без условий, поскольку ничего не знает. Так что условие, которое я написал - это что бы не получить все Счета-фактуры, а только данные касающиеся одной-конкретной.

> Единственное, не совсем понятно вот с этой строчкой.
> | СчетФактураПолученный.Ссылка = &Ссылка"
> Я теперь должна в параметр Ссылка запихнуть документ-основание?
Не документ основание. Таблица - СчетФактураПолученный, вот ссылку на СчетФактураПолученный и надо сунуть.
> ЗапросНаКПП.УстановитьПараметр("Ссылка", ???);
Именно этой процедурой.

"
Спасибо большое за помощь!
У меня получилось:)
Читают тему
(гостей: 1)

Быстрый переход