При переходе на новые версии платформы разработчики часто сталкиваются с неожиданным поведением интерфейса. Одной из наиболее раздражающих проблем в версии 1С:Предприятие 8.5 стал баг в Конфигураторе, когда после длительной работы с кодом (обычно более 15–20 минут) в полноэкранном режиме внезапно исчезают кнопки закрытия, сворачивания и разворачивания окна модуля. Это не просто визуальный дефект: при попытке закрыть окно «по привычке», нажимая в правый верхний угол, пользователь зачастую случайно закрывает весь Конфигуратор целиком, теряя несохраненные данные или контекст работы.
В этой статье мы подробно разберем причины возникновения этой «фигни» в конфигураторе, проанализируем связь с новыми технологиями 1С и определим конкретные шаги, которые помогут стабилизировать работу в среде разработки.
Для начала выясним причину, почему интерфейс ведет себя нестабильно. В версии 8.5 фирма 1С предприняла масштабную попытку сближения классического Конфигуратора и новой среды разработки 1C:Enterprise Development Tools (EDT). Одним из этапов этого процесса стало внедрение компонентов на базе Chromium непосредственно в оболочку конфигуратора для рендеринга определенных областей.
Проанализируем ситуацию: когда вы открываете модуль в полноэкранном режиме (через F11 или максимизацию окна внутри рабочей области), за отрисовку верхней панели (неклиентской области окна) начинают отвечать новые алгоритмы расчета координат. Проблема проявляется наиболее остро в следующих случаях:
Рассмотрим, почему эта проблема так часто встречается именно у тех, кто работает с конфигурацией «Управление нашей фирмой» (УНФ). Данное прикладное решение исторически является «полигоном» для обкатки новых технологий. В последних версиях УНФ активно внедряются элементы, построенные на технологии 1С:Элемент. Платформа 8.5 служит своего рода мостом для запуска таких компонентов внутри стандартной среды.
Когда вы правите код модуля, который связан с подсистемами, использующими веб-компоненты (например, новые дашборды или планировщики), Конфигуратор вынужден держать в памяти дополнительные библиотеки рендеринга. Это создает дополнительную нагрузку на графическую подсистему 1cv8.exe, ускоряя деградацию интерфейса.
Посмотрим на конкретные способы решения и обхода этой проблемы, пока фирма 1С не выпустила финальный патч для ветки 8.5.
1. Отказ от режима F11. Экспериментально установлено, что баг чаще всего проявляется именно в режиме «чистого» полноэкранного редактирования. Вместо этого рекомендуем использовать обычную максимизацию окна модуля внутри стандартного интерфейса Конфигуратора. Если вам не хватает места, лучше скрыть вспомогательные панели (Свойства, Дерево конфигурации) горячими клавишами, чем переходить в F11.
2. Сброс графического кэша. Если вы заметили, что кнопки начали «уплывать» или мерцать, не дожидайтесь их полного исчезновения. Помогает принудительная очистка локального кэша конфигуратора. Для этого можно использовать скрипт или вручную очистить папку %LOCALAPPDATA%\1C\1cv8\. Обратите внимание на идентификаторы баз — удалять нужно папки, соответствующие вашей информационной базе. Для такой задачи подойдёт утилита для очистки кэша и удаления временных файлов 1С.
3. Настройка аппаратного ускорения. В некоторых сборках платформы 8.5 помогает отключение аппаратного ускорения графики на уровне операционной системы для приложения 1cv8.exe. Это заставляет платформу использовать программный рендеринг интерфейса, который более стабилен в части расчета координат окон.
Выясним еще один важный момент: почему на платформе 8.5 часто «отваливаются» расширения, которые раньше работали корректно? В новой версии была изменена структура метаданных и ужесточен контроль типизации. Если ваше расширение пытается переопределить методы, помеченные как Internal, или нарушает новую иерархию пространств имен, платформа может заблокировать загрузку расширения.
Если вы столкнулись с тем, что после «насильного» подключения расширения начались глюки интерфейса, проверьте совместимость через встроенную проверку:
// Пример проверки программного подключения расширения (условно)
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Если Не Расширение.Активно Тогда
ЗаписатьЛогСобытий("Ошибка активации расширения: " + Расширение.Имя);
КонецЕсли;
КонецЦикла;
При работе в УНФ на платформе 8.5 крайне важно следить за тем, чтобы расширение было создано или обновлено именно в этой версии платформы. Попытка подсунуть .cfe файл, созданный в 8.3.22 и ниже, без пересборки часто приводит к Access Violation в графическом модуле Конфигуратора.
Подводя итог нашему анализу, составим пошаговый алгоритм действий для программиста, вынужденного работать на 8.5:
Ctrl+S и переоткрывать окно модуля. Это сбрасывает часть графических буферов.F12, зависает подсказка) — первым делом закрывайте 1С и чистите временные файлы.Несмотря на то, что платформа 8.5 пока выглядит «сырой», понимание механики ее работы и причин возникновения графических артефактов позволяет минимизировать риски и продолжать разработку в стабильном режиме. Мы продолжим следить за обновлениями и новыми баг-репортами, чтобы вовремя находить способы решения технических проблем.