Запрос

1. гыук320 18 28.01.13 16:31 Сейчас в теме
Собственно вопрос в следующем, был рабочий запрос, но не хватало цен номенклатуры, немного по гуглив внес изменения, теперь выдает ошибку
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(28, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
(пробовал несколько вариантов конструкций ИЗ и ГДЕ, ошибка остается прежней, С запросами пока на "Вы" :)
Текст запроса ниже, все изменения выделены жирным

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);

Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;

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

|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
53. Ягг 497 31.01.13 11:37 Сейчас в теме
(51) гыук320, я не вижу сообщения в личке от тебя :(
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ягг 497 28.01.13 16:34 Сейчас в теме
(1) гыук320, вместо

"РегистрСведений.ЦеныНоменклатуры.Номенклатура КАК Товар, "

нужно

"Цена.Номенклатура КАК Товар, "

Обращение в запросе идет по псевдониму, а не по физическому имени таблицы
28. Win98 30.01.13 12:58 Сейчас в теме
(1) гыук320, сорри, не видел (7)
3. гыук320 18 28.01.13 16:40 Сейчас в теме
После замены ошибка осталась прежней
4. Ягг 497 28.01.13 16:42 Сейчас в теме
(3) гыук320, очень странно :)

1. Полный текст запроса какой темепрь?
2. Пользовательский режим после записи конфигурации перезапускали?
5. anterehin 15 28.01.13 16:44 Сейчас в теме
Ам...прошу прощения... а где параметры то устанавливаются?
6. Ягг 497 28.01.13 16:45 Сейчас в теме
Блин, там же еще запятая лишняя :)

Цена.Номенклатура КАК Товар
ИЗ

вот так (без запятой перед ИЗ)
7. гыук320 18 28.01.13 16:46 Сейчас в теме
конфу перезапускал, текущий текс запроса

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);

Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;

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

|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
8. Ягг 497 28.01.13 16:47 Сейчас в теме
(7) гыук320, запятая лишняя :)

так правильно:

| Цена.Номенклатура КАК Товар
|ИЗ

Перед ИЗ не должно быть запятой
9. anterehin 15 28.01.13 16:49 Сейчас в теме
И всё же мне интересно где устанавливаются вот эти параметры)))
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
11. Ягг 497 28.01.13 16:52 Сейчас в теме
(9) anterehin, да это не так уж важно счас - нет параметров там другая ошибка возникнет - "Не установлен параметр". :)

Кстати, по момоему его (цену т.е.) нужно еще в "скобки" выборки загнать (связка то по номенклатуре идет)
12. гыук320 18 28.01.13 16:53 Сейчас в теме
(9) anterehin,
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);

Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;
13. anterehin 15 28.01.13 16:55 Сейчас в теме
(12) гыук320, интересное сокращение...надо будет попробовать)
14. anterehin 15 28.01.13 16:57 Сейчас в теме
(13) гыук320, А если всё же вот так?
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
гыук320; +1 Ответить
10. гыук320 18 28.01.13 16:52 Сейчас в теме
после удаления запятой, новая ошибка
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 44)}: Поле не найдено "Товар"
ПО СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар
15. Ягг 497 28.01.13 16:59 Сейчас в теме
(10) гыук320, блин, что-то меня колбасит к вечеру :)

Связка

ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура

только, кажется поле "Цена.Номенклатура КАК Товар" нужно в скобки загнать.
И еще, а ты уверен что тебе из регистра (все то же поле "Как товар") нужно имено "Товар"? Он и так есть как Номенклатура. Из регистра тебе наверно нужен ресурс "Цена" или как он там.

Тогда должно быть

| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| Цена.Цена КАК ЦенаТовара)
| ИЗ

Если я опять ничего не напутал :)

ЗЫ. А про параметры правильн тебе сказали - ты их не установил - но там другая ошибка полезет - мы до нее еше не дошли :)
16. anterehin 15 28.01.13 17:01 Сейчас в теме
Моя (15) Ягг, Ну наверно логичней с них начать всё же). Дома почитаю завершение) Всем удачи
17. гыук320 18 28.01.13 17:03 Сейчас в теме
Так конечно лучше, но ошибка остается прежней видимо как-то криво товар присваиваю

{Документ.СборкаЗапасов.МодульМенеджера(7333)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 45)}: Поле не найдено "Товар"
ПО (СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар)
18. Ягг 497 28.01.13 17:04 Сейчас в теме
(17) гыук320, пост (15) посмотри. условие соединения измени
19. гыук320 18 28.01.13 17:18 Сейчас в теме
После всех рекомендаций запрос стал следующем


Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда

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

|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();


ОШИБКА
: Неоднозначное поле "Цена.Номенклатура"
ПО СборкаЗапасов.Продукция.Номенклатура = <<?>>Цена.Номенклатура
20. Ягг 497 28.01.13 17:25 Сейчас в теме
(19) гыук320, я же не знаю как называется ресурс в регистре где хранится цена. Я как пример написал :)
МОжет он называется например ЗначениеЦены (посмотри структуру в регистре).

Ладно, в любом случае избавляемся от неоднозначности - меням псведаним регстра на тЦена.


| тЦена.Цена КАК ЦенаТовара) // вот тут может быть и тЦена.ЗначениеЦены - смотря что в регистре
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
гыук320; +1 Ответить
21. Программист 1С 159 28.01.13 17:41 Сейчас в теме
Что вам мешает пользоваться консолью запросов в приложении?
22. гыук320 18 28.01.13 18:09 Сейчас в теме
(21) VadimGorbunov, отсутствие опыта
(20) Ягг, тогда следующая ошибка
по причине:
Ошибка выполнения запроса
по причине:
Запрос невозможно исполнить


регистр называется ЦеныНоменклатуры
ресурс цена
26. Ягг 497 29.01.13 07:10 Сейчас в теме
(22) гыук320, стыдно признаться, но я не могу придумать в чем может быть ошибка :(

Выложи еще раз текст полученого запроса.

Я проверил на своих базах (на аналогичной ситуации) - у меня работает (ошибки нет).

Мой запрос (структура примерно такая же):
ВЫБРАТЬ
	АктТранспортированияГруза.Вагоны.(
		Вагон,
		РейсыВагоновСрезПоследних.Операция
	),
	АктТранспортированияГруза.Номер,
	АктТранспортированияГруза.Дата
ИЗ
	Документ.АктТранспортированияГруза КАК АктТранспортированияГруза
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РейсыВагонов.СрезПоследних КАК РейсыВагоновСрезПоследних
		ПО АктТранспортированияГруза.Вагоны.Вагон = РейсыВагоновСрезПоследних.Вагон
ГДЕ
	АктТранспортированияГруза.Ссылка = &Ссылка
Показать
27. гыук320 18 30.01.13 12:55 Сейчас в теме
(26) Ягг,


Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,

| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,

| тЦена.Цена КАК ЦенаТовара )

|

|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
30. Ягг 497 30.01.13 13:17 Сейчас в теме
(27) гыук320, сожалею, я не знаю в чем может быть ошибка (не сумел ее повторить у себя). :(

1. Проверь в отладчике чему при формировании запроса у тебя равно ТекущаяДата()
2. Попробуй сделсть просто запрос к регистру ЦеныНоменклатуры и посмотри будет ли он работать с теми же параметрами. т.е. просто так:

Выбрать тЦена.Цена как ЦенаТовара из РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена 

не важно какой будет результат запроса, важно что бы он выполнился (не было ошибки "невозможно выполнить запрос".)


Не совсем представляю с чем может быть связана такая ошибка (если только не с порушением итогов). Когда разберешся - напиши в чем причина
гыук320; +1 Ответить
31. LechatS 30.01.13 22:53 Сейчас в теме
(27)
...
| СборкаЗапасов.Продукция.(
...

| тЦена.Цена КАК ЦенаТовара )

|

|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
...
так нельзя, т.к. ЛЕВОЕ СОЕДИНЕНИЕ снаружи содержит номенклатуру, которая меняется внутри скобок


Пробуйте просто (даже отдельным запросом):

Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасовПродукция.НомерСтроки, // тут у меня почему-то на неоднозначность обругалось
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
...
| тЦена.Цена КАК ЦенаТовара

|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ТипЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасовПродукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасовПродукция.Ссылка.Ссылка = &ТекущийДокумент";

ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
32. Ягг 497 31.01.13 10:31 Сейчас в теме
(31) LechatS, я тоже думал что нельзя, но у меня в аналогичном запросе (приведен в (26) ) никаких проблем не было. База вообще была на платформе 8.1.
23. Программист 1С 159 28.01.13 18:17 Сейчас в теме
1. Войдите в консоль запросов.
2. Введите туда исходный запрос (когда ещё не было изменений).
3. Войдите в меню приложения Текст->Констуктор запросов и там делайте все исправления.
4. В консоле запросов на закладке параметры укажите - параметры получить из запроса.
5. Выполните запрос.

Этот правильный путь быстро приведёт к результату.
гыук320; +1 Ответить
24. гыук320 18 28.01.13 18:19 Сейчас в теме
(23) VadimGorbunov, спасибо ща буду пробовать
25. Программист 1С 159 28.01.13 18:23 Сейчас в теме
Консоль запросов есть во многих приложениях. Посмотрите Операции->Обработки->Консоль запросов.
Если её нет, скачайте с диска ИТС \1CIts\EXE\EXTREPS\UNIREPS82\RequestConsole\КонсольЗапросов.epf.
Если и ИТС нет, укажите адрес, я скину эту полезную обработку!
29. IfYouWant_YouCan 30.01.13 13:09 Сейчас в теме
запятую перед ИЗ уберите)
33. anterehin 15 31.01.13 10:41 Сейчас в теме
Дело было не в бабине...
Как понимает моя логика проблема в том что в запросе построен не через табличную часть а через виртуальную таблицу шапки.. исходный запрос делает выборку реквизитов шапки документа и возвращает табличную часть Продукция как результат запроса а потом это дело выгружается
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Получается пакет не выполняется так как не может в запросе сделать связь по номенклатуре...
Переписал запрос:
ВЫБРАТЬ
	СборкаЗапасовПродукция.Ссылка.Дата КАК ДатаДокумента,
	СборкаЗапасовПродукция.Ссылка.Организация КАК Организация,
	СборкаЗапасовПродукция.Ссылка.Номер КАК Номер,
	СборкаЗапасовПродукция.Ссылка.Организация.Префикс КАК Префикс,
	СборкаЗапасовПродукция.Ссылка.СтруктурнаяЕдиница КАК Отправитель,
	СборкаЗапасовПродукция.Ссылка.СтруктурнаяЕдиницаПродукции КАК Получатель,
	СборкаЗапасовПродукция.НомерСтроки,
	СборкаЗапасовПродукция.Номенклатура.НаименованиеПолное КАК Запас,
	СборкаЗапасовПродукция.Номенклатура.Артикул КАК Артикул,
	СборкаЗапасовПродукция.Количество КАК КоличествоМест,
	СборкаЗапасовПродукция.Цена,
	СборкаЗапасовПродукция.Сумма,
	СборкаЗапасовПродукция.Резерв,
	СборкаЗапасовПродукция.Ссылка.ЗаказПокупателя,
	СборкаЗапасовПродукция.Характеристика,
	СборкаЗапасовПродукция.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
	СборкаЗапасовПродукция.Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
	СборкаЗапасовПродукция.Номенклатура.Код КАК ТоварКод,
	СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
	СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
	ВЫБОР
		КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
			ТОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
		ИНАЧЕ 1
	КОНЕЦ КАК КоличествоВОдномМесте,
	тЦена.Цена КАК ЦенаИзРегистра
ИЗ
	Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
		ПО СборкаЗапасовПродукция.Номенклатура = тЦена.Номенклатура
ГДЕ
	СборкаЗапасовПродукция.Ссылка.Ссылка = &ТекущийДокумент
Показать


Но тогда соответственно не отрабатывает:
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Заменяем данную строку на :
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();

И будет вам счастье
гыук320; +1 Ответить
34. Ягг 497 31.01.13 10:50 Сейчас в теме
(33) anterehin, не совсем понял, но

1. ошибка "Запрос не может ыбть выполнен" свзазана имено с командой "Запрос.Выполнить()", а то что там потом идет выгрузка это уже не так важно. Хотя, надо конечно уточнить на какой строчке вываливается ошибка.

2. я проверял запрос на консоле запросов, а там, в конце, имено что все выгружается в таблицу значений. Проблем никаких нет (счас еще раз проверил с другим аналогичным случаем).

Или я чего-то не догоняю
35. anterehin 15 31.01.13 10:54 Сейчас в теме
(34) Ягг, Ну опять же я не гуру... в типовом запросе используется таблица документа а не табличной части..
Соответственно если его выполнить то у нас в консоли не выходят поля из табличной части , а выводится сама табличная часть в виде таблицы с указанными полями.. Соответственно при добавление регистра ЦеныНоменклатуры мы делаем связь.. и вот здесь мне кажется проблема и была.. поэтому запрос не выполнялся
37. Ягг 497 31.01.13 11:00 Сейчас в теме
(35) anterehin, повторюсь (может чего-то не замечаю).
Вот аналогичный запрос

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


тут тоже используется таблица документа. У меня в консоле запрос выполняется без проблем и данные возвращает правильные.

Правда платформа у меня 8.1 (в данонм случае)
39. anterehin 15 31.01.13 11:04 Сейчас в теме
(37) Ягг, Вижу единственное пока различие...попробуй вытащить в поля какой нибудь реквизит шапки..
Слав я не знаю что у тебя за конфа, а запрос который обсуждается из УНФ .. но хотя какая разница... Но вижу пока одно отличие попробуй.. плюс выше привел пример, выдает туже ошибку
41. Ягг 497 31.01.13 11:06 Сейчас в теме
(39) anterehin, тоже без проблем :

ВЫБРАТЬ
	ОтправкаВагонов.МестоОтгрузки,
	ОтправкаВагонов.Вагоны.(
		Вагон,
		тРейсы.Состояние
	),
	ОтправкаВагонов.Дата
ИЗ
	Документ.ОтправкаВагонов КАК ОтправкаВагонов
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РейсыВагонов.СрезПоследних(&Дата2, Состояние = &Состояние) КАК тРейсы
		ПО ОтправкаВагонов.Вагоны.Вагон = тРейсы.Вагон
ГДЕ
	ОтправкаВагонов.Ссылка = &Ссылка
Показать
36. anterehin 15 31.01.13 10:58 Сейчас в теме
Проверил.. накидал в консоли запрос... та же ошибка
ВЫБРАТЬ
	РасходнаяНакладная.Ссылка,
	РасходнаяНакладная.Запасы.(
		Номенклатура
	),
	ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
	Документ.РасходнаяНакладная КАК РасходнаяНакладная
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
		ПО РасходнаяНакладная.Запасы.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
	РасходнаяНакладная.Ссылка = &Ссылка
Показать
38. Ягг 497 31.01.13 11:03 Сейчас в теме
(36) anterehin, у тебя запрос вываливается с ошибкой?
40. anterehin 15 31.01.13 11:05 Сейчас в теме
(38) Ягг, да в консоли вываливается вот с такой ошибкой:

{ВнешняяОбработка.КонсольЗапросов_82.МодульОбъекта(55)}: Ошибка при вызове метода контекста (ВыполнитьПакет): Ошибка выполнения запроса: Запрос невозможно исполнить
43. Ягг 497 31.01.13 11:11 Сейчас в теме
(40) anterehin, проверил на 8.2. (на другой конфе, тоже моей)

ВЫБРАТЬ
	ПриходнаяНакладная.Склад,
	ПриходнаяНакладная.Материалы.(
		Материал,
		тЦена.Номенклатура
	)
ИЗ
	Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних КАК тЦена
		ПО ПриходнаяНакладная.Материалы.Материал = тЦена.Номенклатура
ГДЕ
	ПриходнаяНакладная.Ссылка = &Ссылка
Показать


без проблем.

Единственоне что в голову лезет, возможно нюанс в организации регистра (раз у обоих одна и та же ошибка). Попробуйте убрать параметры виртуальной таблицы - осанется ошибка или нет?
42. anterehin 15 31.01.13 11:11 Сейчас в теме
Я вот этой части не пойму...
  ОтправкаВагонов.Вагоны.(
        Вагон,

        тРейсы.Состояние
    )

тРейсы регистр сведений, что он за скобкой где перечисляются поля делает?
44. Ягг 497 31.01.13 11:13 Сейчас в теме
(42) anterehin, за скобкой он соединяет две таблицы, но результат возвращается в "Скобку". Я смотрел ту таблицу (результрующую) там все в порядке.
45. Ягг 497 31.01.13 11:16 Сейчас в теме
А вообще что это за конфигурация? Качну гляну -уж больно инетерсно что такое с ней

Или пустите кто-нить через тим-вьювер :))))))))
46. anterehin 15 31.01.13 11:20 Сейчас в теме
47. Ягг 497 31.01.13 11:23 Сейчас в теме
(46) anterehin, у меня безопасники такую скачку не пропустят :(. Это какая-то типовая конфа (какая) ?
48. anterehin 15 31.01.13 11:23 Сейчас в теме
(47) Ягг, УНФ : Управление небольшой фирмой
49. Ягг 497 31.01.13 11:24 Сейчас в теме
50. anterehin 15 31.01.13 11:29 Сейчас в теме
(49) Ягг, Управление небольшой фирмой, редакция 1.4 (1.4.4.10)
51. гыук320 18 31.01.13 11:30 Сейчас в теме
(45) Ягг, в личку скиул инфу (teamviewer запущен)
52. Ягг 497 31.01.13 11:36 Сейчас в теме
(51) гыук320, нашел у себя версию (1.3.1.4). Выполняю запрос из (36) в консоле. вот теперь инетерсная картина:

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

во как
53. Ягг 497 31.01.13 11:37 Сейчас в теме
(51) гыук320, я не вижу сообщения в личке от тебя :(
54. anterehin 15 31.01.13 13:15 Сейчас в теме
(53) Ягг, у меня в толстом не работает в консоли
55. гыук320 18 31.01.13 13:45 Сейчас в теме
Вообщем итог такой: после двух часового онлайн мучения Славы, он же Ягг (за что ему огромное спасибо), предварительный вывод: данный запрос должен работать, но есть какой-то конфликт видимо в релези конфы и версии платформы, для данного конкретного примера. При этом он написал вариант запроса, который сейчас отлично работает (за что ему еще раз ОГРОМНОЕ СПАСИБО).
Для всех форумчан выкладываю его здесь думаю может пригодится в других подобных ситуациях:

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
шапка =новый Структура;
шапка.Вставить("ДатаДокумента",ТекущийДокумент.Дата);
шапка.Вставить("Организация",ТекущийДокумент.Организация);
шапка.Вставить("Номер",ТекущийДокумент.Номер);
шапка.Вставить("Префикс",ТекущийДокумент.Организация.Префикс);
шапка.Вставить("Отправитель",ТекущийДокумент.СтруктурнаяЕдиница);
шапка.Вставить("Получатель",ТекущийДокумент.СтруктурнаяЕдиницаПродукции);
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.НомерСтроки,
| СборкаЗапасов.Номенклатура.НаименованиеПолное КАК Запас,
| СборкаЗапасов.Номенклатура.Артикул КАК Артикул,
| СборкаЗапасов.Количество КАК КоличествоМест,
| СборкаЗапасов.Количество * ЕСТЬNULL(тЦена.Цена, 0) КАК Сумма,
| СборкаЗапасов.Резерв КАК Резерв,
| СборкаЗапасов.Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| СборкаЗапасов.Характеристика,
| СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| СборкаЗапасов.Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| СборкаЗапасов.Номенклатура.Код КАК ТоварКод,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| тЦена.Цена КАК Цена
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Номенклатура = тЦена.Номенклатура
| И СборкаЗапасов.Характеристика = тЦена.Характеристика
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();

Так те хочу поблагодорить и других участников форума, которые приняли участие в этой ветке, особенно Александра Терехина, он же anterehin.

На этом считаю данную тему можно закрывать.

Ёще раз всем спасибо!!!
56. anterehin 15 31.01.13 13:52 Сейчас в теме
Не а мне интересно.. Ягг какая у тебя платформа? я хочу покрутить дальше)
57. Ягг 497 31.01.13 14:04 Сейчас в теме
(56) anterehin,

платформа 1С:Предприятие 8.2 (8.2.16.363)
Релиз конфы УНФ 1.3 (1.3.1.4) - другой у меня нет
В консоле в "управляемом толстом клиенте" мучили запрос

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


У меня ошибки не вываливает.

Надоб было бы сделать отдельную (новую) конфигурацию у Андрея; там организовать регистры и посмотреть как она себя поведет. Тут или какая-то настройка в конфе вредит или что-то не так с платформой (хотя пробовали под другим релизом 8.2.15 - ошибка оставалась). Тестирование и исправляние, чекДБФ делали.

Все таки видимо какая-то "галочка" в конфигурации
58. Программист 1С 159 31.01.13 14:08 Сейчас в теме
Всё-таки, пользуйтесь консолью запросов. Вот текст, полученный с помощью консоли,
а в прикреплённом файле скриншот связей:
ВЫБРАТЬ
СборкаЗапасов.Дата КАК ДатаДокумента,
СборкаЗапасов.Организация КАК Организация,
СборкаЗапасов.Номер КАК Номер,
СборкаЗапасов.Организация.Префикс КАК Префикс,
СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
СборкаЗапасов.Продукция.(
НомерСтроки,
Номенклатура.НаименованиеПолное КАК Запас,
Номенклатура.Артикул КАК Артикул,
Количество КАК КоличествоМест,
Резерв КАК Резерв,
Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
Характеристика,
ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
Номенклатура.Код КАК ТоварКод,
Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
ВЫБОР
КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоличествоВОдномМесте
),
ЦеныНоменклатуры.Цена
ИЗ
Документ.СборкаЗапасов КАК СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО СборкаЗапасовПродукция.Номенклатура.Ссылка = ЦеныНоменклатуры.Номенклатура.Ссылка
ПО СборкаЗапасов.Ссылка = СборкаЗапасовПродукция.Ссылка
ГДЕ
СборкаЗапасов.Ссылка = &ТекущийДокумент
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот