Вопрос поиска удобного инструмента для отладки запросов в среде 1С:Предприятие 8.3 актуален для каждого разработчика. Долгое время существовало ограничение, при котором штатный конструктор запросов был доступен только в толстом клиенте или в конфигураторе. Однако с развитием платформы ситуация изменилась. Разберем подробно, какие существуют варианты использования консоли запросов в тонком клиенте и как обеспечить работу конструктора.
Для начала проанализируем ситуацию с точки зрения платформы. До версии 8.3.5 программный вызов конструктора запросов в тонком клиенте был действительно невозможен. Начиная с версии 8.3.5.1068, компания "1С" добавила объект КонструкторЗапроса в состав доступных инструментов для тонкого клиента.
Важно понимать, что работа конструктора в управляемом приложении имеет свои особенности. Если в обычном приложении вызов был модальным, то в современном интерфейсе "Такси" рекомендуется использовать асинхронные вызовы. Проанализируем пример кода, который позволяет вызвать конструктор программно:
&НаКлиенте
Процедура ОткрытьКонструктор(Команда)
Конструктор = Новый КонструкторЗапроса;
Конструктор.Текст = Объект.ТекстЗапроса;
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияКонструктора", ЭтотОбъект);
Конструктор.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияКонструктора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.ТекстЗапроса = Результат.Текст;
КонецЕсли;
КонецПроцедуры
Использование метода Показать() вместо устаревшего метода Открыть() позволяет инструменту корректно работать в веб-клиенте и тонком клиенте без использования модальных окон.
Самым надежным и "чистым" решением является использование типовой обработки от разработчиков 1С. Рассмотрим, как ее получить и использовать. На ресурсе ИТС (Информационно-технологическое сопровождение) регулярно обновляется "Консоль запросов для управляемых форм".
Преимущества данного решения:
Чтобы конструктор заработал, убедитесь, что в свойствах вашей конфигурации Режим использования модальности установлен в значение "Не использовать", а Режим совместимости соответствует версии не ниже 8.3.5. В противном случае платформа может заблокировать вызов окна конструктора.
Если вы работаете с современной типовой конфигурацией (например, 1С:ERP, УТ 11 или БП 3.0), в нее уже встроена мощная консоль запросов, входящая в состав Библиотеки стандартных подсистем (БСП). Выясним, как ее найти.
Обычно она скрыта в меню для администраторов. Перейдите в раздел НСИ и администрирование — Обслуживание — Отчеты и обработки. Там часто можно найти "Консоль запросов". Если она не выведена в интерфейс, ее можно запустить через "Функции для технического специалиста", набрав в поиске Консоль запросов.
Эта консоль максимально оптимизирована под тонкий клиент. Она умеет сохранять историю запросов, работать с несколькими планами выполнения и, что самое главное, в ней реализован механизм вызова конструктора, который учитывает текущие права пользователя.
Существуют расширенные версии консолей, такие как "Инструменты разработчика" Сергея Старостина. Это профессиональный набор инструментов, который значительно превосходит типовые возможности.
Рассмотрим подробнее возможности таких консолей:
Однако стоит учитывать, что сложные консоли часто требуют наличия определенных прав (например, "Администрирование" или "Интерактивное открытие внешних обработок") и могут нестабильно работать в веб-клиенте из-за ограничений браузера на использование диалоговых окон.
Проанализируем основные причины, по которым кнопка "Конструктор" в консоли может быть неактивна или выдавать ошибку в тонком клиенте:
КонструкторЗапроса на клиенте будет недоступен.Открыть(), а в конфигурации модальность запрещена, окно просто не появится. В этом случае нужно искать обновленную версию обработки.Подведем итог. Если вам нужен простой и надежный инструмент для написания запросов "на лету", используйте консоль с ИТС или встроенную консоль БСП. Они гарантированно работают в тонком клиенте и поддерживают конструктор.
Если же ваша задача — сложная оптимизация запросов с анализом планов исполнения и содержимого временных таблиц, стоит обратить внимание на Инструменты разработчика. Помните, что для работы любого конструктора в тонком клиенте критически важна доступность метаданных и актуальная версия платформы. Рассмотрим ситуацию: если вы работаете через интернет (через 1С:Линк или веб-сервер) в тонком клиенте, конструктор будет работать медленнее, чем в локальной сети, так как ему требуется передавать описания таблиц с сервера на клиент.