Почему не открывается редактор СКД и как исправить ошибку «Необходимо запустить в режиме толстого клиента»?

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

При работе в современных конфигурациях, таких как 1С:Управление торговлей 11, ERP 2 или Комплексная автоматизация, разработчики и аналитики часто сталкиваются с необходимостью настройки произвольных запросов в схемах компоновки данных (СКД). Одной из наиболее раздражающих проблем является ситуация, когда при попытке отредактировать схему (например, в справочнике Виды цен) система выдает предупреждение: «Для того, чтобы редактировать схему компоновки, необходимо запустить конфигурацию в режиме толстого клиента». Самое странное в этой ситуации то, что пользователь уже запустил программу в режиме толстого клиента, и в окне «О программе» это подтверждается, но редактор все равно не открывается.

В этой статье мы подробно разберем, почему возникает этот «парадокс», проанализируем причины программного сбоя и рассмотрим несколько способов решения проблемы: от временных «костылей» до системных исправлений.

Разберем причину: почему платформа «не видит» толстый клиент?

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


#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
    // Открытие формы конструктора СКД
#Иначе
    ПоказатьПредупреждение(Неопределено, НСтр("ru='Для того, чтобы редактировать схему компоновки, необходимо запустить конфигурацию в режиме толстого клиента.'"));
#КонецЕсли

Проблема заключается в том, что в определенных версиях платформы 1С (особенно часто это замечали в релизах 8.3.14.х — 8.3.16.х) наблюдается баг препроцессора. Несмотря на то что приложение запущено как Толстый клиент, инструкции препроцессора внутри кода могут ошибочно возвращать Ложь. Это происходит из-за некорректной самоидентификации клиента в момент выполнения конкретного серверного или клиентского вызова. Платформа «забывает», в каком режиме она работает, и переходит в ветку #Иначе.

Способ 1: Радикальное решение — правка программного кода

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

  1. Запустите Конфигуратор и найдите процедуру, которая вызывает редактор (обычно это происходит в модуле формы или связанном с ней обработчике).
  2. Найдите блок кода с инструкциями #Если ТолстыйКлиент....
  3. Закомментируйте проверку и оставьте только непосредственный вызов конструктора.

Пример модифицированного кода:


// #Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
    // Процедура открытия редактора
    ОткрытьФормуРедактированияСхемы(); 
// #Иначе
//    ПоказатьПредупреждение(...);
// #КонецЕсли

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

Способ 2: Управление версиями платформы

Выясним, на каких версиях этот баг проявляется чаще всего. Опытным путем пользователи установили, что релиз 8.3.15.1656 часто страдает этой проблемой, в то время как на более старых (например, 8.3.12.1790) или значительно более новых (начиная с 8.3.18 и выше) ошибка встречается крайне редко.

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

Способ 3: Очистка кэша и параметры запуска

Иногда причиной некорректного поведения препроцессора становится «замусоренный» кэш клиент-серверных вызовов. Рассмотрим, как правильно выполнить очистку:

  1. Полная очистка кэша: Удалите базу из списка и добавьте её заново, либо вручную очистите содержимое папок в %AppData%\1C\1Cv8\.
  2. Параметр /ClearCache: Добавьте в дополнительные параметры запуска базы ключ /ClearCache. Это заставит систему обновить метаданные при старте.
  3. Принудительный режим: В настройках запуска (кнопка «Изменить» — далее — далее) убедитесь, что в поле «Основной режим запуска» явно выбрано Толстый клиент, а не «Выбирать автоматически».

Способ 4: Проверка способа подключения (Web-сервер)

Важно помнить, что если вы подключаетесь к базе через веб-сервер (http/https), то даже запуск исполняемого файла толстого клиента не всегда дает нужный результат. Многие графические редакторы 1С требуют прямого соединения с сервером приложений по протоколу TCP/IP (порт 1541 и др.).

Проанализируем ситуацию: если в строке соединения указан адрес вида http://myserver/mybase, попробуйте изменить его на прямое подключение (указав имя сервера и имя базы), если это позволяет сетевая инфраструктура. Это обеспечит полнофункциональную работу толстого клиента и доступ к ActiveX-компонентам, которые используются в редакторе СКД.

Дополнительные рекомендации

Если ни один из вышеперечисленных способов не помогает, обратите внимание на следующие нюансы:

Подведем итог: проблема чаще всего носит платформенный характер. Мы рекомендуем начать с очистки кэша и проверки прямого подключения к серверу, а если это не помогает — обновить платформу или временно закомментировать проверку в коде конфигурации.

← На главную