Каталог решений - Временные таблицы запроса

Временные таблицы запроса

Временные таблицы запроса

В наличии

Решил опубликовать эту маленькую статью для самых начинающих программистов 1С. Особенно для тех, кто часто сталкивается с отладкой запросов, а именно временных таблиц этих запросов. Сложность решений продуктов 1С сейчас заключается в том, что код нас уводит далеко вглубь общих модулей, перебрасывая из одного в другой и формируя в них временные таблицы запроса. Назад мы получаем кучу временных таблиц запроса, которые очень неудобно просматривать в отладчике. Для этого я и предлагаю свое ненавязчивое решение в виде расширения.

Категория:

Описание

Решил опубликовать эту маленькую статью для самых начинающих программистов 1С. Особенно для тех, кто часто сталкивается с отладкой запросов, а именно  временных таблиц этих запросов. Сложность решений продуктов 1С сейчас заключается в том, что код нас уводит далеко вглубь общих модулей, перебрасывая из одного в другой и формируя в них временные таблицы запроса. Назад мы получаем кучу временных таблиц запроса, которые очень неудобно просматривать в отладчике. Для этого я и предлагаю свое ненавязчивое решение в виде расширения.

Для примера я взял конфигурацию ERP 1C. Допустим мне надо при открытии формы сотрудника и получении его кадровых данных и их анализа что-то изменить. Для этого, мне надо увидеть какие временные таблицы использует запрос, что в этих таблицах. Поехали.

Подключаю расширение, надеюсь, как это делать, не стоит рассказывать.

 

 

Для примера я нашел модуль, где формируется запрос с кадровыми данными сотрудника, вот он:

 

 

Запускаем программу в пользовательском режиме и попробуем открыть форму сотрудника, должна сработать точка останова в месте, где я указал на скрине выше. Далее я бы хотел посмотреть, какие таблицы содержатся в менеджере временных таблиц, для этого мне надо выполнить несколько стандартных операций

 

 

То есть выделить Выражение Запрос.МенеджерВременныхТаблиц, потом открыть окно выражений, в этом окне опять открыть у значения свойство Таблицы и снова нажать вычислить выражение и только тогда мы получим список временных таблиц нашего запроса и т.д.

Так как мы люди ленивые, то я в своем расширении это упростил и теперь достаточно в окне выражений набрать следующее:

КС_МенеджерВременныхТаблиц.ПолучитьСписокТаблиц(Запрос.МенеджерВременныхТаблиц)

Вот как это выглядит:

 

 

Я всего лишь вывожу то же самое, но в виде списка, но я еще в представление добавил количество строк в каждой таблице, чтобы понимать,  что из этого можно просматривать, а на что не стоит тратить времени, так ка таблиц бывает много. Далее вы можете под себя переделать и выводить что вам угодно и в каком виде угодно.

Вторая часть и самая важная это просмотр данных временных таблиц. Если пользоваться стандартными методами, то из скрина выше с временными таблицами мы должны запомнить индекс таблицы,  данные которой требуется просмотреть, и потом набрать в окне выражений вот такую команду

Запрос.МенеджерВременныхТаблиц.Таблицы[2].ПолучитьДанные().Выгрузить()

 

 

Неудобство в том, что надо всегда понимать какой индекс к какой таблице относится.

Для лентяев, в своем расширении достаточно написать эту команду

КС_МенеджерВременныхТаблиц.ПолучитьДанныеТаблицы(Запрос.МенеджерВременныхТаблиц, 2)

 

 

Или, чего нет у 1С, вместо индекса таблицы можем передать имя таблицы

КС_МенеджерВременныхТаблиц.ПолучитьДанныеТаблицы(Запрос.МенеджерВременныхТаблиц, "ВТКадровыеДанныеСотрудников")

Получим то же самое, но зная имя таблицы не надо искать его индекс

 

 

Подведем итог. Расширение использует две функции ПолучитьСписокТаблиц и ПолучитьДанныеТаблицы. Функции можно запускать в любом месте  и получать данные временных таблиц. Это на треть сокращает время, чем при поиске стандартным методом.

Прилагаю скрин самих функций, надеюсь Вам не составит труда это быстро сделать. Сам общий модуль Серверный

 

 

Проверено на платформе  8.3.18.1289.

Всем спасибо, надеюсь, начинающим это поможет!

has been added to your cart:
Оформление заказа