Как устранить ошибки при работе с консолью запросов в толстом клиенте и выбрать удобный инструмент для тонкого клиента?

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

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

Анализ причин падения толстого клиента

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

Главная причина — отсутствие правильных директив препроцессора. В управляемом приложении код часто пишется с расчетом только на тонкий клиент и сервер. Однако толстый клиент — это особый гибридный режим, который требует явного указания условий компиляции. Рассмотрим пример правильного оформления кода в модулях менеджера или объекта:


#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
// Здесь располагается код, который должен выполняться на сервере или в толстом клиенте
Процедура ИнициализироватьДанные()
    // Логика процедуры
КонецПроцедуры
#КонецЕсли

Если этот код не обрамить соответствующей директивой, толстый клиент попытается скомпилировать методы, которые могут быть недоступны в его контексте, что приведет к критической ошибке.

Проблемы с расширениями конфигурации

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

Почему в тонком клиенте консоль выглядит «неудобно»?

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

Современные инструменты решают эту проблему следующими способами:

  1. Использование HTML-полей: Результат запроса рендерится внутри формы как HTML-страница. Это позволяет сохранять фиксированные заголовки, использовать CSS для подсветки строк и обеспечивать высокую скорость отрисовки даже на больших выборках.
  2. Динамические списки: Некоторые продвинутые консоли (например, из состава «Инструментов разработчика») выводят результат в динамический список, что дает возможность использовать стандартные механизмы поиска, фильтрации и группировки 1С прямо в окне результата.

Выбор альтернативного инструмента

Если используемая вами консоль (например, «Универсальные инструменты») работает нестабильно, рассмотрим проверенные альтернативы, адаптированные под управляемые формы:

Консоль от фирмы 1С (с диска ИТС): Это наиболее стабильный вариант. Она использует стандартные механизмы платформы и гарантированно работает в обоих режимах клиента. Рассмотрим её как базовый вариант, если вам нужна надежность превыше всего.

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

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

Диагностика падения с помощью системного лога

Если причина падения толстого клиента неочевидна, воспользуемся методом системной диагностики. Для этого запустим 1С через командную строку с параметром вывода лога:

1cv8.exe ENTERPRISE /F "ПутьКБазе" /Out "C:\temp\log.txt"

После падения платформы откроем файл log.txt. В нем будет зафиксирована последняя операция и описание ошибки (например, обращение к несуществующему методу модуля). Это позволит точно определить проблемный участок кода.

Ошибки при работе со «Схемой запроса»

Рассмотрим ситуацию, когда платформа вылетает при добавлении нескольких таблиц в конструктор. Это часто связано с использованием объекта СхемаЗапроса (Query Schema). В некоторых версиях платформы 8.3 этот объект работает нестабильно в толстом клиенте, если в метаданных базы присутствуют циклические ссылки или некорректно заимствованные таблицы в расширениях.

В таких случаях рекомендуется:

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

← На главную