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

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 Ответить
Оставьте свое сообщение
Вакансии
Технический архитектор
Москва
зарплата от 300 000 руб. до 380 000 руб.
Полный день

Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день