Есть публикация https://infostart.ru/1c/articles/822287/ Помогите понять, почему у меня ВременныеТаблицыЗапроса пустые, хотя в запросе ВТ есть. Тестирую внешнюю обработку.
(3) Конечно. Даёшь больше переменных для засорения оперативной памяти!
Потому что Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц нам почему-то не нравится, да?
(10) Вероятно, вы во временную таблицу ничего не помещаете.
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| 1 КАК Поле
|ПОМЕСТИТЬ ВТ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ.Поле КАК Поле
|ИЗ
| ВТ КАК ВТ";
Результат = Запрос.Выполнить();
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| КадровыйПеревод.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
| КадровыйПеревод.Должность КАК Должность,
| КадровыйПеревод.Сотрудник КАК Сотрудник,
| ИзменениеШтатногоРасписанияПозиции.Позиция КАК Позиция,
| ИзменениеШтатногоРасписанияПозиции.Ссылка КАК ИзменениеШР,
| КадровыйПеревод.Подразделение КАК Подразделение,
| МероприятияТрудовойДеятельности.ИдМероприятия КАК ИдМероприятия
|ПОМЕСТИТЬ вт_Позиция
|ИЗ
| Документ.КадровыйПеревод КАК КадровыйПеревод
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИзменениеШтатногоРасписания.Позиции КАК ИзменениеШтатногоРасписанияПозиции
| ПО (ИзменениеШтатногоРасписанияПозиции.Позиция = КадровыйПеревод.ДолжностьПоШтатномуРасписанию)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МероприятияТрудовойДеятельности КАК МероприятияТрудовойДеятельности
| ПО КадровыйПеревод.Ссылка = МероприятияТрудовойДеятельности.Регистратор
|ГДЕ
| КадровыйПеревод.Ссылка = &Ссылка
| И КадровыйПеревод.Сотрудник = &Сотрудник
Показать
Дальше выбираю из ВТ
Кажется начинаю понимать, почему так, и тут же возникает новый вопрос, Запрос2 и Запрос3 не помещается в вт_Позиция?
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| 1 КАК Поле
|ПОМЕСТИТЬ ВТ
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 2
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| 3
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ.Поле КАК Поле
|ИЗ
| ВТ КАК ВТ";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Поле);
КонецЦикла;
(18) После выполнения запроса добавьте этот код Сообщить("Временных таблиц - " + Запрос.МенеджерВременныхТаблиц.Таблицы.Количество()); Какое число отобразилось?
В отладчике после метода Запрос.Выполнить(), в РезультатЗапроса не будет видно данных временных таблиц, а только массив с описанием этих временных таблиц.
Если хотите получить данные таблиц в отладке, то используйте: массивРезультатаПакетаЗапроса = Запрос.ВыполнитьПакетСПромежуточнымиДанными().