Быстрая отладка временных таблиц запроса

25.12.15

Разработка - Инструментарий разработчика

В настоящей публикации описывается простой и быстрый механизм получения данных временных таблиц запросов

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Конфигурация с функциями механизма в общем модуле
.cf 6,01Kb ver:1.0
2 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

На данном сайте я встретил разработки, позволяющие отлаживать временные таблицы в консоли запросов, но требующие внесения изменений в отлаживаемый код, необходимых для открытия консоли.

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

Функция ПолучитьДанныеВременнойТаблицы(МенеджерВременныхТаблиц,ИмяТаблицы) Экспорт
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    Запрос.Текст = 
    "ВЫБРАТЬ * ИЗ "+ИмяТаблицы+" КАК "+ИмяТаблицы;
    Возврат Запрос.Выполнить();
КонецФункции 

Функция ВыгрузитьВременнуюТаблицу(МенеджерВременныхТаблиц,ИмяТаблицы) Экспорт
    Возврат ПолучитьДанныеВременнойТаблицы(МенеджерВременныхТаблиц,ИмяТаблицы).Выгрузить();
КонецФункции  

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

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

Предлагаемый механизм прост и быстр как в реализации, так и в эксплуатации.

Надеюсь, будет кому-нибудь полезен.

В файле находится cf-файл с общим модулем, содержащим указанные функции

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    220034    1204    413    

1061

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

14400 руб.

20.08.2024    44811    248    123    

228

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    28073    74    30    

101

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    14911    25    7    

34

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    39951    145    57    

183

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    19857    76    39    

92

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 руб.

22.11.2024    2706    2    0    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. klinval 344 25.12.15 13:07 Сейчас в теме
Я попробовал поискать аналоги предлагаемого механизма на сайте, но ничего не нашел

http://infostart.ru/public/76529/
http://infostart.ru/public/100801/
http://infostart.ru/public/173803/
и т.д. И это только на ИС, а вне его ещё больше упоминаний.
Альтернативный способ просмотра без временных таблиц:
http://infostart.ru/public/347354/
2. alex271 371 25.12.15 14:49 Сейчас в теме
(1) klinval, Соглашусь.
Но авторы перечисленных публикаций тоже скромно написали, что не смогли найти аналога.
Вероятно, это вопрос к работе поиска публикаций на сайте.
3. Поручик 4596 26.12.15 17:51 Сейчас в теме
(0) Да таких работ и функций полно со времён 8.1., вернее с тех времён, когда появились временные таблицы.
4. Поручик 4596 26.12.15 17:52 Сейчас в теме
Аналог вашей функции есть в БСП, только искать лениво
5. soulsteps 73 28.12.15 14:30 Сейчас в теме
Если не ошибаюсь, в консоли запроса (по крайней мере) от Чистова можно "подобные функции" найти. Сам еще для себя оформил в модуле отладки функцию
Функция ИзвлечьДанныеВременнойТаблицы(МВТ, ИмяВТ) Экспорт

Ответ = Неопределено;
Если ПустаяСтрока(ИмяВТ) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Не указано наименование временной таблицы");
Возврат Ответ;
КонецЕсли;

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "ВЫБРАТЬ * ИЗ " + ИмяВТ;

Попытка
Ответ = Запрос.Выполнить().Выгрузить();
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Получение данных временной таблицы <" + ИмяВТ +">");
КонецПопытки;

Возврат Ответ;

КонецФункции //ИзвлечьДанныеВременнойТаблицы()

Соглашусь с автором, что механизм прост. Но это не открытие. Для новичков, возможно, самое то.
6. Vovan58 64 03.01.16 18:09 Сейчас в теме
Первый вопрос : Почему две функции а не одна?

Второй момент - менеджер временных таблиц не всегда задан, поэтому удобнее , чтобы параметр в функции был бы запросом.
И вот что получается :
Функция СмотретьВТ(ЗапросИсследуемый, ИмяВременнойТаблицы) Экспорт 
	ЗапросВТ = Новый Запрос ("ВЫБРАТЬ * ИЗ " + ИмяВременнойТаблицы);
	ЗапросВТ.МенеджерВременныхТаблиц = ЗапросИсследуемый.МенеджерВременныхТаблиц;
	Возврат ЗапросВТ.Выполнить().Выгрузить();
КонецФункции
Для отправки сообщения требуется регистрация/авторизация