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

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

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

Встроенные возможности платформы: эволюция конструктора

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

Если мы используем современные версии платформы (например, 8.3.15 и выше), работа конструктора стала значительно стабильнее. Тем не менее, как отмечают специалисты, даже на версии 8.3.12 могли возникать ошибки вида «поле не найдено», что зачастую связано с кэшированием метаданных или ограничениями прав доступа в конкретном сеансе. При возникновении подобных проблем рекомендуется очистить кэш или проверить доступность объектов метаданных для текущего пользователя.

Популярные внешние консоли для тонкого клиента

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

Еще одним мощным инструментом являются «Инструменты разработчика» (ИР). Проанализируем их преимущества перед стандартными решениями:

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

Пример типичного кода, который генерируют подобные консоли для использования в модулях:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Номенклатура.Ссылка КАК Ссылка,
    |	Номенклатура.Код КАК Код
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    // Обработка результата
КонецЦикла;

Проблема расширений языка запросов для СКД

Важный нюанс, который мы должны рассмотреть — это использование фигурных скобок {}, предназначенных для Системы Компоновки Данных (СКД). Обычный конструктор запроса в тонком клиенте часто выдает ошибку при попытке редактирования текста с такими расширениями. Это происходит потому, что контекст вызова конструктора ограничен простым текстовым запросом.

Чтобы обойти это ограничение, современные консоли используют программную инициализацию объекта СхемаКомпоновкиДанных. Когда конструктор вызывается внутри контекста схемы, он начинает корректно распознавать и позволять редактировать параметры и условия, заключенные в фигурные скобки. Если вам часто приходится работать с отчетами, выбирайте консоли, построенные на базе СКД.

Альтернативный метод: переключение режима запуска

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

Для этого в настройках информационной базы в списке баз или в параметрах отладки конфигуратора необходимо изменить режим запуска с «Авто» или «Тонкий клиент» на «Толстый клиент». Рассмотрим преимущества этого метода:

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

Особенности работы с большими данными

Проанализируем риски выполнения тяжелых запросов в тонком клиенте. Поскольку данные должны передаваться с сервера на клиент, получение результата в 100 000 строк может привести к зависанию интерфейса. Продвинутые консоли решают эту проблему через «ленивую загрузку» или постраничный вывод. При написании собственных инструментов отладки следует использовать объект ДанныеФормыКоллекция и ограничивать количество выводимых строк для обеспечения отзывчивости системы.

Использование консоли через расширения конфигурации

В современных реалиях 1С (версии 8.3.10+) наиболее удобным способом подключения консоли является использование расширений (.cfe). Подключив консоль как расширение, а не как внешнюю обработку, мы получаем ряд преимуществ:

  1. Консоль всегда доступна в интерфейсе для всех разработчиков базы.
  2. Снимаются многие ограничения профилей безопасности (Safe Mode), которые часто блокируют работу конструктора во внешних обработках .epf.
  3. Упрощается работа с типами данных, определенными в самой конфигурации.

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

← На главную