Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Запутался с временными таблицами в запросе (http://forums.kuban.ru/f1040/zaputalsya_s_vremennymi_tablicami_v_zaprose-2431904.html)

GODed 01.04.2012 11:00

Запутался с временными таблицами в запросе
 
Есть два запроса в одном документе
В одном заливаем в Временную таблицу.
МенеджерВТ = Новый МенеджерВременныхТаблиц;

Запрос = Новый Запрос;

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

Далее записываем регистры накопления
Ну и потом проверяем остатки по ним:


Если Режим = РежимПроведенияДокумента.Оперативный Тогда

//Проверить отрицательные остатки

Запрос3 = Новый Запрос;
Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос3.Текст = "ВЫБРАТЬ
| ОстаткиИОборотыПродукцииОстатки.Номенклатура,
| ОстаткиИОборотыПродукцииОстатки.КоличествоТоннОстаток
|ИЗ
| РегистрНакопления.ОстаткиИОборотыПродукции.Остатки(
| ,
| Номенклатура В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)
| И Склад = &Склад) КАК ОстаткиИОборотыПродукцииОстатки
|ГДЕ
| ОстаткиИОборотыПродукцииОстатки.КоличествоТоннОстаток < 0";

Запрос3.УстановитьПараметр("Склад",Склад);

РезультатЗапроса = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();


....


При попытки проведения выдает что ненайдена таблица ДокументНоменклатура.
Подскажите где ошибка.

GODed 01.04.2012 11:09

то естьне найдена таблица НоменклатураДокумента

Alex017 01.04.2012 11:49

Наверное так надо:

МенеджерВТ = Новый МенеджерВременныхТаблиц;

Запрос = Новый Запрос;

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

[b]Запрос.выполнить();
[/b]
Далее записываем регистры накопления
Ну и потом проверяем остатки по ним:


Если Режим = РежимПроведенияДокумента.Оперативный Тогда

//Проверить отрицательные остатки

[b]// [/b]Запрос3 = Новый Запрос;
[b]// [/b]Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
[b]Запрос[/b].Текст = "ВЫБРАТЬ
| ОстаткиИОборотыПродукцииОстатки.Номенклатура,
| ОстаткиИОборотыПродукцииОстатки.КоличествоТоннОста ток
|ИЗ
| РегистрНакопления.ОстаткиИОборотыПродукции.Остатки (
| ,
| Номенклатура В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)
| И Склад = &Склад) КАК ОстаткиИОборотыПродукцииОстатки
|ГДЕ
| ОстаткиИОборотыПродукцииОстатки.КоличествоТоннОста ток < 0";

[b]Запрос[/b].УстановитьПараметр("Склад",Склад);

РезультатЗапроса = [b]Запрос[/b].Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

GODed 01.04.2012 12:00

Спасибо за помощь. Ошибка была в том что я не выполнил первый запрос ну и во втором потом ошибка
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = [b]РезультатЗапроса[/b].Выбрать();


Текущее время: 05:34. Часовой пояс GMT +3.