В процессе активной разработки или поддержки сложных информационных систем на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда в Конфигураторе открывается огромное количество расширений. Каждое расширение — это отдельное дерево объектов, которое занимает место на экране и потребляет ресурсы системы. Проблема усугубляется тем, что стандартная команда Окна — Закрыть все не помогает, так как она предназначена для закрытия окон редакторов (кода, форм, макетов), но не самих панелей конфигураций.
В этой статье мы подробно разберем, как эффективно управлять окнами расширений, как закрыть их «одним махом» и что сделать, чтобы они не восстанавливались при каждом запуске Конфигуратора.
Прежде чем переходить к решениям, проанализируем ситуацию. Платформа 1С сохраняет состояние рабочего стола пользователя для каждой информационной базы. В это состояние входит список открытых окон, их расположение (прикрепленное или свободное) и активность тех или иных панелей. Если вы просто закрыли Конфигуратор, оставив деревья расширений открытыми, система запоминает это состояние и при следующем запуске пытается восстановить «рабочее окружение», открывая все 100500 расширений заново.
Самый простой и быстрый способ, который был найден опытным путем участниками сообщества, заключается в использовании контекстного меню самого окна конфигурации. Рассмотрим этот алгоритм по шагам:
Важный нюанс: если ваши окна расширений «склеены» (сгруппированы) в одну панель с основной конфигурацией, то нажатие кнопки Закрыть в контекстном меню часто приводит к закрытию всей группы окон расширений сразу. Это именно то, что нужно, когда их накопилось слишком много.
Часто программисты открывают дерево объектов расширения двойным кликом из общего списка расширений. Чтобы навести порядок, проанализируем ситуацию в специальном интерфейсе:
Если расширения прикреплены (docked) и отображаются в виде вкладок в нижней части панели конфигурации, мы можем нажать правой кнопкой мыши на конкретную закладку внизу и выбрать «Закрыть». Если же мы нажмем на крестик в заголовке всей панели, где сгруппированы расширения, платформа может закрыть всю группу окон.
Бывают случаи, когда интерфейсных действий недостаточно: например, расширений так много, что Конфигуратор зависает при попытке их отрисовать, или настройки рабочего стола повредились и окна открываются вопреки вашим действиям. В такой ситуации мы воспользуемся очисткой файлов настроек рабочего стола.
Выясним причину: состояние окон хранится в файле configcfg.xml (или аналогичных .cfg файлах) в локальном кэше пользователя. Удаление этого файла сбросит состояние интерфейса Конфигуратора к заводским настройкам (расположение панелей, открытые деревья объектов), при этом сами данные базы и код расширений не пострадают.
Выполним следующие действия:
%LOCALAPPDATA%\1C\1Cv8\<Уникальный_ID_базы>
Config.configcfg.xml и удалим его. Если вы хотите полной очистки настроек интерфейса, можно удалить все содержимое папки Config.После этой процедуры Конфигуратор откроется «чистым»: будет активно только дерево основной конфигурации (и то, если оно было открыто), а все окна расширений будут закрыты навсегда, пока вы не откроете их снова вручную.
Нужно четко понимать внутреннюю логику платформы 1С. Рассмотрим подробнее:
Окна — Закрыть все воздействует только на MDI-окна. Это внутренние окна редакторов объектов.Ctrl + Shift + C.Чтобы ситуация не повторялась, проанализируем правила «гигиены» работы в Конфигураторе. Система фиксирует состояние окон в момент штатного закрытия программы. Если вы хотите, чтобы при следующем запуске расширения не открывались:
Если произойдет аварийное завершение работы (например, через Диспетчер задач или из-за ошибки Access Violation), 1С может не успеть обновить файл настроек, и при следующем запуске вы снова увидите тот же хаос из окон, который был до попытки их закрытия. В этом случае поможет только Способ 3 с удалением файла настроек.
Использование этих методов позволит вам держать рабочее пространство в чистоте, экономя время и ресурсы компьютера при разработке на платформе 1С:Предприятие.