Имя: Пароль:
1C
1С v8
хранение временной таблицы
,
0 qwerty072
 
29.12.11
13:43
есть условие в запросе
И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры
 И ЗаказПокупателя В    (ВЫБРАТЬ                                ВыборкаПоЗаказу.ДокЗаказ                            ИЗ ВыборкаПоЗаказу)

где используется временная таблица, подскажите как поместить её в переменную, чтобы постоянно не генерировать и в дальнейшем брать из неё данные, это делается через выгрузить() а потом через установку параметров в запросе передать её, так?
1 ZanderZ
 
29.12.11
13:45
пакет запросов
2 qwerty072
 
29.12.11
13:46
первоначально так и делаю, но потом в другом запросе необходимо в выборке опять генерировать эти таблицы
3 Fragster
 
гуру
29.12.11
13:47
МенеджерВременныхТаблиц ищи в СП
4 azernot
 
29.12.11
13:48
(2) Тебе необходимо использовать МенеджерВременныхТаблиц. Второму запросу устанавилваешь МВТ из первого - тогда сможешь использовать временные таблицы первого запроса во втором.
5 qwerty072
 
29.12.11
13:50
(3)

Описание:
Предназначен для хранения временных таблиц. При уничтожении или закрытии объекта временные таблицы, находящиеся в нем, удаляются.
Пример:
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

Запрос.Выполнить();
Запрос.Текст="ВЫБРАТЬ * из ВременнаяОсновная";
ТзПередано=Запрос.Выполнить().Выгрузить();

МенеджерВременныхТаблиц а сюда как мою поместить? сделав ранее Запрос.Выполнить().Выгрузить()
6 Марина Викторовна
 
29.12.11
13:54
в запросе используешь ПОМЕСТИТЬ
7 qwerty072
 
29.12.11
13:56
Запрос = Новый Запрос;
   Запрос.Текст =
"ВЫБРАТЬ
   |    ЗаказПокупателя.Ссылка КАК ДокЗаказ
   |ПОМЕСТИТЬ ВыборкаПоЗаказу
   |ИЗ
   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
   |ГДЕ
   |    ЗаказПокупателя.Дата МЕЖДУ &ДатаНач И &ДатаКон
   |    И ЗаказПокупателя.Проведен = ИСТИНА
   |    И ЗаказПокупателя.Ответственный В ИЕРАРХИИ(&Ответственный)
   |;"
ВрТаблица = запрос.выполнить().выгрузить();

Запрос2.МенеджерВременныхТаблиц = ВрТаблица;
так?
8 Fragster
 
гуру
29.12.11
14:00
ВрТаблица = запрос.выполнить();
9 Fragster
 
гуру
29.12.11
14:00
а вообще - внимательно прочитать СП
10 Fragster
 
гуру
29.12.11
14:01
Запрос2.МенеджерВременныхТаблиц = МенеджерВременныхТаблицТотЖеЧтоИУПервогоЗапроса
11 Марина Викторовна
 
29.12.11
14:01
(10) +1
12 qwerty072
 
29.12.11
14:05
а две временные таблицы можно поместить в запрос?
13 Stepa86
 
29.12.11
14:06
(12) да хоть 3
14 fisher
 
29.12.11
14:07
(12) Создать две временные таблицы в одном пакете запросов, ты хотел сказать? Можно, конечно.
15 azernot
 
29.12.11
14:10
МойМВТ= Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МойМВТ;

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


Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц  = МойМВТ;
   Запрос2.Текст =
"ВЫБРАТЬ
   |   *
   |ИЗ ВыборкаПоЗаказу";

ТаблицаЗаказов = Запрос2.выполнить().Выгрузить();
16 qwerty072
 
29.12.11
14:10
Запрос2.МенеджерВременныхТаблиц = МенеджерВременныхТаблицТотЖеЧтоИУПервогоЗапро

я вот про это, как потом передать их в запрос
Запрос2.МенеджерВременныхТаблиц один ведь а таблицы две, друг друга не перетрут?!
17 qwerty072
 
29.12.11
14:11
(15) щас попробуем
18 Starhan
 
29.12.11
14:14
На то он и менеджер что управляет несколькими таблицами )
19 fisher
 
29.12.11
14:15
(16) Таблицы в менеджере не хранятся. В нем вообще ничего не хранится. Временные таблицы остаются на сервере БД. Менеджер нужен только как признак того, сколько им жить и кому быть доступными.
AdBlock убивает бесплатный контент. 1Сергей