Для 1С есть обработка "КонсольЗапросов", с помощью которой можно отлаживать и тестировать запросы. Но есть проблема: она не работает в отладчике и если в коде на сервере мы вычисляем сложный запрос с большим количеством параметров, особенно вида "ТаблицаЗначений", "СписокЗначений", "Массив", то протестировать такой запрос в режиме 1С Предприятие очень сложно, т.к. нужно вручную заполнить в Консоли запросов много параметров.
Чтобы этого не делать, можно сохранить запрос в буфер обмена и вставить его в немного доработанную обработку "ИнструментыРазработчикаКонсольЗапросовСОтладкой.epf". Эту обработку я взял с диска ИТС и добавил в неё кнопку "Восстановить запрос из хранилища". Теперь сложный запрос с трудными параметрами можно тестировать в режиме 1С Предприятие.
Алгоритм переноса запроса из отладчика:
1) Запускаем программу, ставим точку останова в месте выполнения интересующего нас запроса.
2) Когда отладка остановилась на нужном нам запросе, запускаем Вычислить выражение =
ЗначениеВСтрокуВнутр(Новый Структура("Текст, Параметры", Запрос.Текст, Запрос.Параметры))
В результате получим строку, описывающую запрос. Скопируем эту строку в буфер обмена.
3) Завершаем отладку или открываем новое окно 1С: Предприятие. В режиме 1С: Предприятие запускаем обработку ИнструментыРазработчикаКонсольЗапросовСОтладкой.epf
4) В обработке нажимаем кнопку "Восстановить запрос из хранилища". В открывшееся окно вводим строковое описание запроса из буфера обмена.
5) Запрос со всеми параметрами загружен в КонсольЗапросов. С ним можно работать.
Есть также второй способ преобразования запроса в строку для копирования в буфер обмена: при вычислении выражения в точке останова Вместо
ЗначениеВСтрокуВнутр(Новый Структура("Текст, Параметры", Запрос.Текст, Запрос.Параметры))
Нужно вычислить выражение вида
ВнешниеОбработки.Создать("E:WorkИнфостартКонсольЗапросовИнструментыРазработчикаКонсольЗапросовСОтладкой.epf").ЗапросВВидеСтроки(Запрос)
где нужно указать путь доступа к обработке "КонсольЗапросов", доступный серверу 1С. Такой способ аналогичен первому способу, но он также позволяет копировать таблицы из Менеджера временных таблиц, которые будут помещены в таблицы консоли запросов с добавлением инициализирующих из запросов.
Тестировалась на Управление торговлей, редакция 11 (11.4.5.111).
Платформа 1С:Предприятие 8.3 (8.3.12.1595).
Инструменты разработчика от (tormozit) или Запросник принципиально не используете. Предпочитаете самостоятельно все инструменты разрабатывать?
У консоли запросов с ИТС есть требования к бсп и режиму совместимости.
Недавно было на эту темуОтладка в упр. формах
как-то слишком много телодвижений — мне будет лень столько работать руками, тем более, что есть инструменты которые избавят от лишних действий
Это все конечно хорошо, но попробуйте отладить запрос в типовом ЗУП 3, например.
Там используется 100500 временных таблиц и промежуточных результатов.
(4) ИР вроде анализирует запрос, вытаскивает имена временных таблиц, выгружает их в таблицы, потом при отладке подгружает.
С этим вроде порядок. Надо только потратить немного времени, чтобы разобраться, а потом экономить его при отладке сложных запросов.
(5) там дело не в этом, там вся сложность в том, что запрос состоит из кучи временных таблиц, которые внутри менеджера живут и полный запрос получить не удается т.к он раскидан по куче модулей
(6) Так это проблема Зуп, Вам не кажется?
(2) Спасибо, не видел. Вообще, не знал про существование альтернативных Запросников.
(6) (7) Кто вам сказал что это проблема ЗУП? Это крутая фишка (!)
Совместно с механизмом Представлений это вообще «бомба» получается, замедленного действия ))))
В том смысле что при желании и умении отлаживается довольно легко. А если из этого чего то не хватает, то может где то и рвануть )))
(9) Т.е. Вы серьезно считаете, что запросы в зуп крутая фича?)
(10) Ах да, забыл теги поставить <sarcasm></sarcasm>
Ну а если серьезно, то конечно серединка-наполовинку. С одной стороны разобраться с непривычки сложно, часть можно было бы сделать проще.
Ну а с другой стороны:
1) когда данные обрабатываются в основном посредством запросов (не только выборка из БД, но и сами расчеты) это всегда плюс к быстродействию и ресурсоемкости.
2) опыт, сын ошибок трудных… После более чем десятка лет работы с зарплатой — запросы в других конфигурациях часто просто элементарны. Если думаете что фича запросов только в ЗУП 3, то ошибаетесь. Посмотрите отчетность в 2.5 например )
Читаю рассылку за неделю… прям эпидемия))) Три разные публикации на одну и ту-же тему.
в Модуле объекта правил 2032 строку, добавил попытку:
по ошибке вылетало