1С 8.3 Просмотр данных временных таблиц запроса — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Перейти в раздел примеры кода 1С 8.3:

Пример №1: Получить содержимое временных таблиц запросов в 1С 8.3:
&НаСервере
Функция ПросмотрДанныхВременныхТаблицЗапроса_1 ( Запрос , НомерВременнойТаблицы ) // НомерВременнойТаблицы с 0
Возврат Запрос . МенеджерВременныхТаблиц . Таблицы [ НомерВременнойТаблицы ]. ПолучитьДанные (). Выгрузить ();
//Возвращает таблицу значений с данными временной таблицы
Пример №2: Получить содержимое временных таблиц запросов в 1С 8.3:
&НаСервере
Функция ПросмотрДанныхВременныхТаблицЗапроса_2 ( Запрос , НомерВременнойТаблицы ) // НомерВременнойТаблицы с 0
Возврат Запрос . ВыполнитьПакетСПромежуточнымиДанными ()[ НомерВременнойТаблицы ]. Выгрузить ();
//Возвращает таблицу значений с данными временной таблицы
Пример №3: Получить содержимое временных таблиц запросов в 1С 8.3:
&НаСервере
Функция ПросмотрДанныхВременныхТаблицЗапроса_3 ( Запрос , НаименованиеВременнойТаблицы ) // по имени ВТ
Возврат Запрос . МенеджерВременныхТаблиц . Таблицы . Найти ( НаименованиеВременнойТаблицы ). ПолучитьДанные (). Выгрузить ();
//Возвращает таблицу значений с данными временной таблицы
Получить данные временной таблицы

При добавлении данной функции в общий модуль, позволяет быстро и без внесения изменений в код получать данные из временных таблиц в запросе. Используется в случае, если МенеджерВременныхТаблиц = Неопределенно. Доступна с версии 8.3.8
//Функция возвращает содержимое временной таблицы в запросе по индексу // // Параметры: // Запрос - Запрос - исполняемый запрос // ИндексПакета - Число – индекс временной таблицы // // Возвращаемое значение: // - Таблица значений - таблица значений с содержимым временной таблицы. // Функция ПолучитьДанныеВременнойТаблицы(Запрос, ИндексПакета) Экспорт Возврат Запрос.ВыполнитьПакетСПромежуточнымиДанными()[ИндексПакета].Выгрузить(); КонецФункции
//Функция возвращает содержимое временной таблицы в запросе по индексу // // Параметры: // Запрос - Запрос - исполняемый запрос // ИндексПакета - Число – индекс временной таблицы // // Возвращаемое значение: // - Таблица значений - таблица значений с содержимым временной таблицы. // Функция ПолучитьДанныеВременнойТаблицы(Запрос, ИндексПакета) Экспорт Возврат Запрос.ВыполнитьПакетСПромежуточнымиДанными()[ИндексПакета].Выгрузить(); КонецФункции
13 13 0 0 0 Скопировано.
ред. 2 года назад
Недостаточно рейтинга для добавления отрицательного голоса. Шаблон будет скрыт из ваших результатов поиска.
1с как посмотреть временную таблицу в запросе
Привет вам знатоки типовых конфигураций на БСП!
Может кто знает, есть ли в служебных модулях функция, позволяющая посмотреть таблички из «МенеджерВременныхТаблиц» у запроса в отладке?
А есть смысл разработчикам БСп создавать такую функцию?
(0) В БСП не скажу, но в УТ11 есть
ОбщегоНазначенияУТ.ПоказатьВременнуюТаблицу
(1) а как вы тогда отлаживаете запросы в УТ11 например где в пакетном 20 шт временных таблиц? Просто устал каждый раз пихать в конфу которая на поддержке такое http://catalog.mista.ru/public/173803/
(2) отлично, спасибо
(4) + хотя УТ все равно все ломают а вот БП3 да еще и базовую как отладить. не нашел аналогичной функции . печаль
(5) в БП3:
УчетЗатрат.ВыгрузитьВременнуюТаблицу(МенеджерВременныхТаблиц, ИмяВременнойТаблицы)
(6) ооо, спасибо и вам !
(7) + ну и набравшись наглости спрошу о наличии такой функции в рознице 2.1 ? )))
ПроведениеСервер.ПоказатьВременнуюТаблицу(МенеджерВременныхТаблиц,ИмяВременнойТаблицы, Комментарий = «») Экспорт
(6) + о шикарно, там еще ОтладитьЗапрос(Запрос) есть который возвращает массив результата пакетного запроса. Печально что разработчики БСП не подумали о таких сервисных вещах (
(10) спасибо !
Вангую, что скоро опять все модули перекроят )))
http://devtool1c.ucoz.ru/ прекрасно работает в толстом клиенте. у него есть функция ОТ(), которая позволяет запрос закинуть в консоль запросов (с заполненными параметрами) и покрутить, включая временные таблицы и т.п.
(15) только в толстом?
(15) В толстом клиенте это все не имеет уже смысла
(16)(17) толстый клиент управляемые формы. галочка «разрешить обычные формы в управляемом приложении»
(18) все равно менять конфу (
(19) зато потом кайф
(20) А типовые то работают в таком режиме?
(21) да. проблемы именно в «толстых» формах иногда возникают, но обходятся. например при обработке результата запроса — надо открывать «консоль кода» и там ставить галочку «сервер», чтобы обработать результат по нормальному. еще интеллисенс глючит. Это все из-за того, что там все выполняется на клиенте, а у серверных модулей БСП предположение, что они юзаются из тонких форм со стороны сервера (и нет галки «вызов сервера»).
Временные таблицы в запросе 1С – что это и зачем они нужны

Временные таблицы в запросе 1С – это особые объекты системы управления базами данных (СУБД). Не стоит путать с таблицами значений, которые хранятся на 1С сервере. Они используются внутри 1С кода для повышения его производительности.
Глобально, временные таблицы в системе 1С хранятся в оперативной памяти, либо на жёстком диске. А если рассматривать более локально, то создание и хранение временных таблиц происходит обычно внутри базы TempDB. Если углубиться в вопрос подробнее, то можно понять, что по стандартным настройкам временные таблицы в запросе 1С создаются внутри оперативной памяти, внутри буферного кэша. Однако, следует отметить, что есть исключение – это тот вариант, когда временная таблица в системе 1С имеет слишком большой размер, в таком случае – таблица будет записана на диск.
Временные таблицы в запросе 1С создаются в памяти потому что чтение с оперативной памяти будет, в любом случае, быстрее, чем чтение с диска.
Экспериментально проверим где будет создана временная таблица в системе 1С, для этого нужно внутри консоли прописать такой запрос:
Внутри консоли прописываем запрос

Далее нужно запустить трассировку SQL Profiler, с событием SQL:BatchComplited, и выполним внутри консоли запрос, результатом которого будет:
Выполнение внутри консоли запрос 8.2, его результат

Таким образом, увидим лишь внесение данных (заполнение) временной таблицы в запросе 1С, код создания отображён не будет.
Для начала, определим откуда происходит считка сведений, для этого нужно знать считываются данные с диска или с памяти. Воспользуемся, чтобы это выяснить, показатель physical reads (данный показатель отвечает за количество чтений перед выполнением запроса, страницы по 8Кб). Далее создаём и читаем временную таблицу в системе 1С внутри Management Studio, чтобы узнать величину показателя.
В новом запросе нужно прописать следующее по порядку:
В новом запросе прописываем следующее

Как только код выше будет выполнен, то во вкладке «Сообщения» будет текст такого вида:
Вкладка «Сообщение»
Наиболее важное из такого сообщения – это число физических чтений, которое равно 0, и число логических чтений, которое равно единице, — что означает, что сведения читались лишь из самой памяти.
2. Как производить индексирование таблиц
На экзамене 1С требуют проводить индексацию полей внутри временных таблиц в системе 1С, в обязательном порядке. В обычной работе также используют индексирование таблиц, так как она стала уже привычной, однако с ней запросы выполняются медленнее. Стоит отметить, что случаев, когда индексация не нужна гораздо больше, чем обратных, это связано, в первую очередь, с оптимизацией.
Посмотрим, как на самом деле работает индексирование таблиц. Для начала, нужно создать новую временную таблицу в запросе 1С, которая будет иметь одно числовое поле со значениями от одного до одного миллиона. Это будет делаться через такой пакетный запрос:
Пакетный запрос
Запрос будет осуществлён примерно за 1.2 секунды. В трассировке SQL Profiler будет следующее:
Tрассировка SQL Profiler
Таблица будет создана за 1.1 секунды, а за 0.1 секунду будет произведено сканирование всей таблицы для возврата одной строки. Рассмотрим, что поменяется, если добавить индекс в таблицу ВТ_Числа.
Запрос будет выполнен примерно за 6 секунд. Таблица будет создаваться за 5.3 секунды. А поиск по индексу будет проходить за 0.5 секунд, однако без индекса будет длиться 0.1 секунды. Преимуществом запроса с индексированием будет то, что он имеет меньшее количество логических чтений (2057, а не 2233).
3. Удаление временных таблиц в конфигурации системы 1С
Рассмотрим то, нужно ли удалять временные таблицы в конфигурации системы 1С, после того, как они были созданы. Это будет зависеть от того, каким способом создавалась таблица. Для случая, когда временная таблица в запросе 1С была задействована для одного пакетного запроса, то она будет существовать до выполнения пакетного запроса, то есть, менеджер временных таблиц создан скрыто. В таком случае, MS SQL создаст новую временную таблицу в системе 1С ЕРП, которая будет локальной, и она будет иметь одну решётку. По окончанию пакетного запроса, менеджер временных таблиц 1С будет закрыт и будет команда «Truncate table», — именно она удалит временную таблицу.
В случае наличия индексации таблицы – сначала будет она удалена, а потом сама таблица.
Если используется менеджер временных таблиц 1С, то лучше удалять таблицу при помощи команды «Уничтожить», или же при помощи метода МВТ.Закрыть(). Специалист компании «Кодерлайн» Айдар Фархутдинов