Отладка запросов из отладчика в варианте Клиент-Сервер

12.11.18

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

Описывается способ отладки запроса, полученного через отладчик. Работает как на сервере, так и на клиенте.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Отладка запросов из отладчика в варианте Клиент-Сервер:
.epf 101,47Kb ver:1.1
30
30 Скачать (1 SM) Купить за 1 850 руб.

Для 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).

См. также

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

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

12000 руб.

02.09.2020    169275    937    403    

905

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

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

8400 руб.

20.08.2024    12601    99    42    

101

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

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

9360 руб.

17.05.2024    26530    90    48    

134

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

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16826    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190550    1150    0    

918

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

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

15000 руб.

10.11.2023    11392    40    27    

66

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    776    2    0    

4

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103926    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. json 3357 12.11.18 12:21 Сейчас в теме
Инструменты разработчика от (tormozit) или Запросник принципиально не используете. Предпочитаете самостоятельно все инструменты разрабатывать?
У консоли запросов с ИТС есть требования к бсп и режиму совместимости.
2. Evg-Lylyk 4894 12.11.18 13:13 Сейчас в теме
8. budidich 418 13.11.18 10:59 Сейчас в теме
(2) Спасибо, не видел. Вообще, не знал про существование альтернативных Запросников.
3. VmvLer 12.11.18 13:14 Сейчас в теме
как-то слишком много телодвижений - мне будет лень столько работать руками, тем более, что есть инструменты которые избавят от лишних действий
4. agentz 40 12.11.18 13:17 Сейчас в теме
Это все конечно хорошо, но попробуйте отладить запрос в типовом ЗУП 3, например.
Там используется 100500 временных таблиц и промежуточных результатов.
5. json 3357 12.11.18 13:38 Сейчас в теме
(4) ИР вроде анализирует запрос, вытаскивает имена временных таблиц, выгружает их в таблицы, потом при отладке подгружает.
С этим вроде порядок. Надо только потратить немного времени, чтобы разобраться, а потом экономить его при отладке сложных запросов.
AGit1C; tormozit; +2 Ответить
6. agentz 40 12.11.18 17:32 Сейчас в теме
(5) там дело не в этом, там вся сложность в том, что запрос состоит из кучи временных таблиц, которые внутри менеджера живут и полный запрос получить не удается т.к он раскидан по куче модулей
7. ice-net 19 13.11.18 09:20 Сейчас в теме
(6) Так это проблема Зуп, Вам не кажется?
9. СергейКа 670 14.11.18 09:20 Сейчас в теме
(6) (7) Кто вам сказал что это проблема ЗУП? Это крутая фишка (!)
Совместно с механизмом Представлений это вообще "бомба" получается, замедленного действия ))))
В том смысле что при желании и умении отлаживается довольно легко. А если из этого чего то не хватает, то может где то и рвануть )))
10. ice-net 19 14.11.18 14:37 Сейчас в теме
(9) Т.е. Вы серьезно считаете, что запросы в зуп крутая фича?)
11. СергейКа 670 14.11.18 15:03 Сейчас в теме
(10) Ах да, забыл теги поставить <sarcasm></sarcasm>
Ну а если серьезно, то конечно серединка-наполовинку. С одной стороны разобраться с непривычки сложно, часть можно было бы сделать проще.
Ну а с другой стороны:
1) когда данные обрабатываются в основном посредством запросов (не только выборка из БД, но и сами расчеты) это всегда плюс к быстродействию и ресурсоемкости.
2) опыт, сын ошибок трудных... После более чем десятка лет работы с зарплатой - запросы в других конфигурациях часто просто элементарны. Если думаете что фича запросов только в ЗУП 3, то ошибаетесь. Посмотрите отчетность в 2.5 например )
12. DrAku1a 1748 17.11.18 15:46 Сейчас в теме
Читаю рассылку за неделю... прям эпидемия))) Три разные публикации на одну и ту-же тему.
13. bob_ 96 24.10.19 14:15 Сейчас в теме
в Модуле объекта правил 2032 строку, добавил попытку:
Попытка
	ЭлементПараметр.Тип = ?(Флаг, ЭлементСписка.Значение, XMLТип(ТипЗнч(КлючЗначение.Значение)).ИмяТипа);
	ЭлементПараметр.Значение = ЗначениеВСтрокуВнутр(КлючЗначение.Значение); 
Исключение
	ЭлементПараметр.Тип = "Массив";
	ЭлементПараметр.Значение = ЗначениеВСтрокуВнутр(КлючЗначение.Значение); 

КонецПопытки;


по ошибке вылетало
Оставьте свое сообщение