← На главную
При переходе на работу с управляемым интерфейсом разработчики часто сталкиваются с ситуацией, когда проверенная временем внешняя обработка «Консоль запросов» отказывается запускаться в рабочей базе. При попытке открыть файл через меню «Файл — Открыть» платформа выдает сообщение: «Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Режим запуска: Толстый клиент, управляемое приложение».
Проанализируем природу этой ошибки, выясним технические ограничения платформы и разберем по шагам все способы запуска консоли запросов в управляемом приложении.
Причины возникновения ошибки и архитектурные ограничения
Классическая консоль запросов, разработанная фирмой «1С» для платформы 8.1 и 8.2, создана на основе обычных форм. В управляемом приложении действуют строгие правила отображения интерфейса:
- Несоответствие типа формы и режима запуска: управляемый интерфейс по умолчанию ожидает управляемую форму. Если у внешней обработки создана только обычная форма, платформа не может найти подходящий графический интерфейс для отображения.
- Ограничения тонкого и веб-клиентов: обычные формы физически не могут быть отображены в тонком клиенте или веб-клиенте. Они поддерживаются исключительно в толстом клиенте под управлением ОС Windows.
- Ограничения визуального конструктора запросов: интерактивный инструмент
КонструкторЗапроса на уровне платформы реализован только внутри толстого клиента. Даже если консоль переписана на управляемых формах, при запуске в тонком клиенте кнопка вызова конструктора запросов будет недоступна.
Способ 1. Включение использования обычных форм в свойствах конфигурации
Если вам необходимо работать именно с классической консолью на обычных формах, и конфигурация находится на поддержке с возможностью редактирования, выполним следующую настройку конфигурации.
- Откроем информационную базу в режиме «Конфигуратор».
- Перейдем в главное меню: «Сервис» — «Параметры».
- На вкладке «Общие» найдем переключатель режимов редактирования конфигурации. Установим его в положение «Управляемое и обычное приложение» и нажмем «ОК». Это действие делает видимыми устаревшие свойства в палитре свойств.
- Откроем дерево метаданных конфигурации, выделим корневой элемент (имя конфигурации) и нажмем правую кнопку мыши, выбрав пункт «Свойства».
- В открывшейся палитре свойств найдем флаг «Использовать обычные формы в управляемом приложении» и установим его.
- Вернемся в меню «Сервис» — «Параметры» и при желании вернем переключатель обратно в положение «Управляемое приложение».
- Сохраним изменения в конфигураторе и обновим конфигурацию базы данных (клавиша F7).
- Запустим сеанс «1С:Предприятие» в режиме «Толстый клиент (управляемое приложение)». Теперь внешняя обработка с обычной формой успешно откроется.
Способ 2. Запуск сеанса в режиме толстого клиента без изменения метаданных
Если конфигурация находится на строгой типовой поддержке (замок) и снимать ее с поддержки нельзя, изменять свойства дерева объектов не разрешается. В этом случае мы можем настроить запуск клиента в нужном режиме:
- В окне запуска информационных баз выделим рабочую базу и нажмем кнопку «Изменить».
- Перейдем на страницу настройки параметров запуска (нажав «Далее»).
- В поле «Основной режим запуска» переключим значение с «Выбирать автоматически» или «Тонкий клиент» на «Толстый клиент».
- В поле дополнительных параметров запуска можно явно указать ключ:
/RunModeThickApplication.
- Если обработка предназначена для обычного приложения, также можно настроить запуск отдельного пользователя с режимом запуска «Обычное приложение», если конфигурация поддерживает такой режим совместимости.
Способ 3. Переход на современную консоль запросов для управляемых форм
Наиболее надежным и универсальным решением является использование консолей, изначально спроектированных на управляемых формах. Рассмотрим их преимущества и особенности работы:
- Работа в тонком клиенте: управляемая консоль открывается в любой типовой базе без изменения свойств конфигурации и без включения флагов совместимости. Выполнение запроса происходит через вызов серверного контекста.
- Поддержка пакетных запросов и временных таблиц: современные консоли позволяют получать результаты не только основного запроса, но и выгружать содержимое промежуточных временных таблиц менеджера временных таблиц для анализа.
- Работа с конструктором запросов: чтобы внутри управляемой консоли стала доступна кнопка запуска штатного окна
КонструкторЗапроса, сеанс управляемого приложения необходимо запустить именно через толстый клиент (используя команду /RunModeThickApplication). В этом случае интерфейс останется управляемым, но платформа предоставит доступ к визуальному конструктору.
Решение проблемы с блокировкой редактирования параметров
Иногда при открытии внешней консоли в толстом клиенте возникает сопутствующая ошибка: при нажатии кнопки добавления параметра поле ввода значения или типа остается неактивным. Разберем, чем это вызвано в современных конфигурациях:
- Запрет модальных окон: в современных конфигурациях свойство «Режим использования модальности» установлено в значение
Не использовать. Старая консоль пытается открыть модальное окно типа через метод ОписаниеТипов.ВыбратьТип(). Поскольку модальность заблокирована платформой, выбор типа завершается сбоем или блокирует элемент управления.
- Запрет синхронных вызовов: при значении параметра конфигурации «Режим использования синхронных вызовов расширений и внешних компонент» в значении
Не использовать устаревшие диалоги не могут вернуть значение синхронно.
- Безопасный режим: если внешняя обработка открывается через справочник «Дополнительные отчеты и обработки», подсистема БСП может принудительно запускать ее в безопасном режиме, ограничивая доступ к метаданным и конструкторам типов. В этом случае открывайте обработку интерактивно через пункт меню «Файл — Открыть».
Таким образом, для быстрой отладки при наличии прав на изменение конфигурации достаточно включить опцию «Использовать обычные формы в управляемом приложении». Для долгосрочной и стабильной работы в современных базах рекомендуется использовать консоль на управляемых формах, запуская сеанс толстого клиента только тогда, когда требуется интерактивный конструктор запросов.