Где найти консоль запросов с конструктором для тонкого клиента 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Причина ограничения: архитектурные особенности платформы

Разберем ситуацию: почему в толстом клиенте конструктор работает, а в тонком — нет? Исторически объект КонструкторЗапроса был доступен только в контексте, имеющем доступ к библиотекам конфигуратора и толстого клиента. В старых версиях платформы 1С:Предприятие 8.3 попытка вызвать конструктор в тонком клиенте приводила к ошибке или простому отсутствию кнопки в интерфейсе.

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

Решение проблемы: использование адаптированных консолей

Если вы столкнулись с тем, что стандартная консоль с ИТС «молчит» при нажатии на кнопку конструктора, значит, она предназначена для работы в режиме толстого клиента. Рассмотрим основные пути решения:

  1. Специализированная обработка для тонкого клиента. Существуют модификации, такие как QueryConsoleThinClient_8.3.5.epf. В этих обработках вызов конструктора реализован через программное создание объекта КонструкторЗапроса, что стало возможным в новых версиях платформы.
  2. Запуск в режиме толстого клиента. Если конфигурация позволяет, можно временно перезапустить отладочный сеанс в режиме толстого клиента (через настройки в конфигураторе: «Сервис» — «Параметры» — «Запуск 1С:Предприятия» — «Основные» — «Приложение»).
  3. Использование внешних инструментов. Существуют мощные программные комплексы, которые значительно превосходят стандартную консоль по функционалу.

Разберем по шагам: как работает вызов конструктора в коде

Для понимания того, как современные консоли обходят ограничения, посмотрим на пример программного вызова конструктора запроса в управляемой форме. Рассмотрим фрагмент кода, который может использоваться в кнопке «Конструктор»:


&НаКлиенте
Процедура КомандаКонструктор(Команда)
    Конструктор = Новый КонструкторЗапроса;
    // Устанавливаем текущий текст из поля ввода в конструктор
    Конструктор.Текст = Объект.ТекстЗапроса;
    
    // Вызываем диалоговое окно конструктора
    ОписаниеОповещения = Новый ОписаниеОповещения("ЗавершитьРаботуСКонструктором", ЭтотОбъект);
    Конструктор.Показать(ОписаниеОповещения);
КонецПроцедуры

&НаКлиенте
Процедура ЗавершитьРаботуСКонструктором(Результат, ДополнительныеПараметры) Экспорт
    Если Результат <> Неопределено Тогда
        // Возвращаем измененный текст обратно в консоль
        Объект.ТекстЗапроса = Результат.Текст;
    КонецЕсли;
КонецПроцедуры

В данном примере мы используем асинхронный метод Показать(), который корректно работает в тонком клиенте и не блокирует интерфейс, что является современным стандартом разработки на платформе 1С.

Продвинутые альтернативы стандартной консоли

Рассмотрим более мощные инструменты, которые рекомендует сообщество для профессиональной разработки. Проанализируем их преимущества:

1. Инструменты разработчика (автор Tormozit)

Это целая экосистема для программиста. Консоль запросов в этом пакете умеет:

2. Консоли в интерфейсе «Такси» (с портала Infostart)

Многие авторы (например, Чистов или Гилев) выпустили свои версии консолей, оптимизированные под интерфейс «Такси». Их главные отличия:

3. Встроенные механизмы EDT (Enterprise Development Tools)

Если вы используете современную среду разработки EDT, вам доступна встроенная консоль запросов. Она работает независимо от типа клиента, так как интегрирована напрямую в среду разработки. Здесь реализована полноценная подсветка синтаксиса, автодополнение имен метаданных и моментальная проверка синтаксиса без обращения к серверу 1С.

Работа с временными таблицами в тонком клиенте

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

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

Ограничения веб-клиента

Важно помнить, что даже самая продвинутая консоль может столкнуться с ограничениями в веб-клиенте (через браузер). Нативный конструктор платформы 1С — это исполняемый код, который не всегда может быть запущен внутри браузерной песочницы. В таких ситуациях мы рекомендуем:

Подведем итоги

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

← На главную