|
Второй запрос не видит временную таблицу | ☑ | ||
---|---|---|---|---|
0
Baters
28.03.14
✎
15:20
|
Добрый день.
Пытаюсь разобраться с запросами в 1С, возникла проблема с временными таблицами.....при попытке. Создаю временную таблицу ДокТЧ, но при попытке проведения документа вылетает ошибка,"Таблица не найдена "ДокТЧ"". Подскажите плиз, что я делаю не так. Процедура ОбработкаПроведения(Отказ, Режим) Движения.ТоварыНаСкладах.Записывать=Истина; Движения.ТоварыНаСкладах.Очистить(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | СУММА(РеализацияТоваровТовары.КолВо) КАК КолВо, | РеализацияТоваровТовары.Номенклатура КАК Номенклатура, | СУММА(РеализацияТоваровТовары.Сумма) КАК Сумма, | РеализацияТоваровТовары.Ссылка.Склад |ПОМЕСТИТЬ ДокТЧ |ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары |ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РеализацияТоваровТовары.Номенклатура, | РеализацияТоваровТовары.Ссылка.Склад | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДокТЧ.КолВо, | ДокТЧ.Номенклатура, | ДокТЧ.Сумма, | ДокТЧ.Склад |ИЗ | ДокТЧ КАК ДокТЧ"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение=Движения.ТоварыНаСкладах.Добавить(); Движение.ВидДвижения=ВидДвиженияНакопления.Расход; Движение.Период=Дата; Движение.КолВо=ВыборкаДетальныеЗаписи.КолВо; Движение.Номенклатура= ВыборкаДетальныеЗаписи.Номенклатура; Движение.Склад=ВыборкаДетальныеЗаписи.Склад; // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; Движения.Записать(); Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КолВоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &ГраницаВремени, | (Номенклатура, Склад) В | (ВЫБРАТЬ | ДокТЧ.Номенклатура, | ДокТЧ.Склад | ИЗ | ДокТЧ КАК ДокТЧ)) КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.КолВоОстаток < 0"; Запрос.УстановитьПараметр("ГраницаВремени",Новый Граница(МоментВремени(),ВидГраницы.Включая)); РезультатЗапроса=Запрос.Выполнить(); Если НЕ РезультатЗапроса.Пустой() Тогда ВыборкаДетЗаписи=РезультатЗапроса.Выбрать(); Пока ВыборкаДетЗаписи.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "не хватает " +ВыборкаДетЗаписи.Номенклатура + " в количестве " + -ВыборкаДетЗаписи.КолВоОстаток ; Сообщение.Сообщить(); КонецЦикла; Отказ=Истина; КонецЕсли; Если Отказ Тогда Возврат; КонецЕсли; КонецПроцедуры |
|||
1
kosts
28.03.14
✎
15:21
|
Запрос=Новый Запрос; - второе убрать, наверное
|
|||
2
Maxus43
28.03.14
✎
15:24
|
МВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МВТ; ... тряляля ... Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МВТ; |
|||
3
Maxus43
28.03.14
✎
15:27
|
А вобще - пользуйся пакетными запросами, зачем разрывать?
Запрос.ВыполнитьПакет() есть такое дело... Разрывают на разные запросы когда этого требует логика, или например передать в другую процедуру МВТ надо |
|||
4
Адинэснег
28.03.14
✎
15:28
|
новый запрос - новый МВТ
|
|||
5
Baters
28.03.14
✎
15:40
|
Большое спасибо!!!
Помогли разобраться... 10 мин и все...(сам 3 часа в него лупился). Maxus43, до пакетов запросов еще не дошел (в процессе). Еще раз спасибо. |
|||
6
Maxus43
28.03.14
✎
15:44
|
(5) собственно первый - уже пакетный, просто можно ещё один запрос туда же добавить, будет в одном запросе 2 выборки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |