Содержимое временных таблиц

1. babLucy 08.01.22 21:53 Сейчас в теме
Есть публикация https://infostart.ru/1c/articles/822287/
Помогите понять, почему у меня ВременныеТаблицыЗапроса пустые, хотя в запросе ВТ есть. Тестирую внешнюю обработку.
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. glek 119 08.01.22 23:04 Сейчас в теме
(1) Установить менеджер временных таблиц у запроса.
3. glek 119 08.01.22 23:05 Сейчас в теме
(1) Т.е. что-то вроде
МВТ = Новый МенеджерВременныхТаблиц
Запрос.МенеджерВременныхТаблиц = МВТ;
4. FatPanzer 08.01.22 23:10 Сейчас в теме
(3) Конечно. Даёшь больше переменных для засорения оперативной памяти!
Потому что Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц нам почему-то не нравится, да?
VAAngelov; babLucy; +2 1 Ответить
5. glek 119 08.01.22 23:11 Сейчас в теме
6. babLucy 09.01.22 09:27 Сейчас в теме
(4) Результат не сильно отличается (скрин). Что еще не так?
Прикрепленные файлы:
7. FatPanzer 09.01.22 09:35 Сейчас в теме
(6) Я не говорил про разницу результата. Я говорил про культуру написания кода.
8. babLucy 09.01.22 09:58 Сейчас в теме
(7) За культуру - искренне благодарю! Не заморачивалась насчет оперативной памяти, теперь буду.
9. FatPanzer 09.01.22 10:01 Сейчас в теме
В какой момент сделан этот скриншот? До выполнения запроса или после?
10. babLucy 09.01.22 10:17 Сейчас в теме
11. a30v 09.01.22 11:14 Сейчас в теме
(10) Вероятно, вы во временную таблицу ничего не помещаете.
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	1 КАК Поле
	|ПОМЕСТИТЬ ВТ
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТ.Поле КАК Поле
	|ИЗ
	|	ВТ КАК ВТ";
		
	Результат = Запрос.Выполнить();
Показать
12. babLucy 09.01.22 11:22 Сейчас в теме
(11) Помещаю
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

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

Показать


Дальше выбираю из ВТ

Кажется начинаю понимать, почему так, и тут же возникает новый вопрос, Запрос2 и Запрос3 не помещается в вт_Позиция?
Прикрепленные файлы:
13. a30v 09.01.22 11:33 Сейчас в теме
(12) После вызова метода Запрос.Выполнить() не появляется таблица?
Прикрепленные файлы:
Пример.epf
14. a30v 09.01.22 11:41 Сейчас в теме +0.4 $m
(12)
Запрос2 и Запрос3 не помещается в вт_Позиция?

Помещаются. У вас же там объединение?
15. a30v 09.01.22 11:44 Сейчас в теме
(12)
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	1 КАК Поле
	|ПОМЕСТИТЬ ВТ
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	2
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	3
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВТ.Поле КАК Поле
	|ИЗ
	|	ВТ КАК ВТ";
		
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Сообщить(Выборка.Поле);	
	КонецЦикла;
Показать
16. babLucy 09.01.22 12:05 Сейчас в теме
(15) Да, так и есть. Тогда вопрос актуален - почему в отладчике нет ВТ скрин (6)
17. a30v 09.01.22 12:09 Сейчас в теме
18. babLucy 09.01.22 12:10 Сейчас в теме
(17) Нет, не вижу вт в отладчике
19. a30v 09.01.22 12:18 Сейчас в теме
(18) После выполнения запроса добавьте этот код Сообщить("Временных таблиц - " + Запрос.МенеджерВременныхТаблиц.Таблицы.Количество()); Какое число отобразилось?
20. babLucy 09.01.22 12:23 Сейчас в теме
(19) Две
Стоп, и таблицы соответственно видно.
Прикрепленные файлы:
22. Shwed 9 10.01.22 22:05 Сейчас в теме
(20) правильно, данные временных таблиц в менеджере временных таблиц, оттуда их можно выгрузить

Запрос.МенеджерВременныхТаблиц.Таблицы[0].ПолучитьДанные().Выгрузить()
Прикрепленные файлы:
21. PlatonStepan 38 10.01.22 05:55 Сейчас в теме
В отладчике после метода Запрос.Выполнить(), в РезультатЗапроса не будет видно данных временных таблиц, а только массив с описанием этих временных таблиц.
Если хотите получить данные таблиц в отладке, то используйте: массивРезультатаПакетаЗапроса = Запрос.ВыполнитьПакетСПромежуточнымиДанными().
babLucy; hottion; +2 Ответить
Оставьте свое сообщение

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