База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему возникает ошибка «Таблица не найдена ВТ_Врем» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 18 часов, 29 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
8 сентября 2026 в 17:45 #38612
Таблица не найдена «ВТ_Врем»
<<?>>ВТ_Врем КАК ВТ_Врем -
8 сентября 2026 в 17:45 #38613
Ошибка «Таблица не найдена ВТ_Врем» означает, что в контексте выполнения запроса СКД или обычного запроса 1С нет временной таблицы с именем ВТ_Врем.
Причина: вы пытаетесь использовать временную таблицу, которую создали в запросе с ПОМЕСТИТЬ, но не передали её в СКД или не объявили в менеджере временных таблиц.
Как правильно работать с временными таблицами в запросах и СКД:
1. Если вы используете обычный запрос (не СКД), то запрос с ПОМЕСТИТЬ создаёт временную таблицу только внутри этого запроса. Чтобы использовать её во втором запросе, нужно либо объединить запросы в один, либо использовать менеджер временных таблиц.
2. Если вы используете СКД (систему компоновки данных), то для использования временных таблиц нужно:
— Создать объект МенеджерВременныхТаблиц
— Заполнить его нужными временными таблицами (например, из таблиц значений)
— Передать этот менеджер в ПроцессорКомпоновкиДанных при инициализации3. В вашем случае, если &ТЗ — это параметр типа ТаблицаЗначений, то сначала нужно создать временную таблицу ВТ_Врем в менеджере временных таблиц, а потом в запросе СКД обращаться к ней.
Пример кода в модуле отчёта (процедура ПриКомпоновкеРезультата):
1С (Код)12345678910111213141516171819202122232425262728293031323334Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)СтандартнаяОбработка = Ложь;// Создаём менеджер временных таблицМенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;// Заполняем временную таблицу из параметра &ТЗЗапросВТ = Новый Запрос;ЗапросВТ.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;ЗапросВТ.Текст ="ВЫБРАТЬ| ТЗ.Спецификация,| ТЗ.Номенклатура,| ТЗ.ЕдиницаИзмерения,| ТЗ.Количество,| ТЗ.МаркаСтали,| ТЗ.НомерГОСТа,| ТЗ.Характеристика,| ТЗ.СтатьяКалькуляции,| ТЗ.ПрименениеМатериалаРедактирование|ПОМЕСТИТЬ ВТ_Врем|ИЗ| &ТЗ КАК ТЗ";ЗапросВТ.УстановитьПараметр("ТЗ", ПараметрТЗ); // ПараметрТЗ - таблица значений с даннымиЗапросВТ.Выполнить();// Инициализируем компоновщик с менеджером временных таблицПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина, , МенеджерВременныхТаблиц);// Далее выполняете запросы СКД, где можно использовать ВТ_Врем// ...КонецПроцедуры4. В запросе СКД используйте таблицу ВТ_Врем как обычную таблицу:
|ВЫБРАТЬ
| ВТ_Врем.Спецификация,
| ВТ_Врем.Номенклатура,
| СпрНоменклатура.нсиКодНСИ КАК КодЕСНСИ,
| …
|ИЗ
| ВТ_Врем КАК ВТ_Врем
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
| ПО ВТ_Врем.Номенклатура = СпрНоменклатура.Ссылка—
Если не используете СКД, а обычный запрос, то нельзя разделять запросы с ПОМЕСТИТЬ и потом использовать временную таблицу во втором запросе — это разные контексты.
—
Рекомендую посмотреть подробный пример и объяснение здесь:
https://helpf.pro/faq/view/905.html
https://infostart.ru/1c/articles/1229680/
—
Если нужна помощь с конкретным кодом — приложите код процедуры, где формируете запрос и инициализируете СКД.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.