Переход на новые версии платформы 1С часто сопровождается неожиданными трудностями, особенно если речь идет о поддержке конфигураций на обычных формах, таких как УПП 1.3. Платформа версии 8.3.12.1412 стала для многих камнем преткновения из-за существенных изменений в графической подсистеме. В рамках данной статьи мы подробно разберем, почему возникают проблемы с управлением окнами, как убрать артефакты отрисовки и восстановить работоспособность оповещений пользователя.
Одной из самых раздражающих проблем данной версии платформы является внезапное «оцепенение» формы. Пользователи замечают, что при открытии любого списка документов, если окно было максимизировано или минимизировано, перестают работать клавиши навигации: стрелки Вверх, Вниз, Enter, Del. Форма визуально доступна, но реагирует только на клики мышкой или закрытие через «крестик».
Проанализируем ситуацию: это поведение связано с зарегистрированной ошибкой платформы №10196417. При изменении размеров окна фокус ввода «проваливается» между системным слоем Windows и внутренними контейнерами 1С. Рассмотрим доступные способы «реанимации» окна без его закрытия:
Alt (для активации главного меню) или воспользуйтесь сочетанием Alt + Tab для переключения на другое приложение и обратно.Важно понимать, что это временные меры. Если ваша работа предполагает постоянное изменение размеров окон, единственным стабильным решением будет обновление платформы до версии 8.3.12.1529 или выше, либо переход на ветку 8.3.14, где механизмы работы с оконным интерфейсом были пересмотрены.
Многие разработчики столкнулись с графическим артефактом: в нижней части табполя справочника «Сотрудники» появляется пустая белая полоса, которая «съедает» полезное пространство. Это происходит из-за некорректной обработки привязок элементов управления (анкеров) в момент отрисовки формы в толстом клиенте.
Выясним причину: в обычных формах 1С 8.3 при использовании определенных режимов совместимости механизм автоматического расчета высоты панелей может давать сбой, если на форме присутствуют сворачиваемые элементы. Посмотрим на программный способ решения этой проблемы.
Для исправления отображения нам необходимо вмешаться в процесс обновления формы. Мы воспользуемся событием ОбновлениеОтображения, которое вызывается системой при необходимости перерисовки элементов. Разберем по шагам реализацию фикса:
Сотрудники.ОбновлениеОтображения.Используем следующий код для принудительной перерисовки панели дополнительных сведений:
Процедура ОбновлениеОтображения()
// Принудительно сбрасываем состояние свертки панели
ЭлементыФормы.ПанельДополнительныеСведения.Свертка = РежимСверткиЭлементаУправления.Нет;
// Устанавливаем корректное значение свертки (в данном случае - вниз)
ЭлементыФормы.ПанельДополнительныеСведения.Свертка = РежимСверткиЭлементаУправления.Низ;
КонецПроцедуры
Этот нехитрый прием заставляет платформу заново рассчитать геометрию формы, после чего белая полоса исчезает. Обратите внимание, что объект ЭлементыФормы.ПанельДополнительныеСведения может называться иначе в вашей версии конфигурации — убедитесь в правильности имени элемента перед сохранением.
Еще один неприятный баг версии 8.3.12.1412 — игнорирование команды ПоказатьОповещениеПользователя в толстом клиенте на обычных формах. Пользователи просто перестают видеть всплывающие сообщения в нижнем углу экрана.
Проанализируем ситуацию: в этой версии платформы 1С начала внедрять использование нативных уведомлений операционной системы. Если в настройках Windows выключены уведомления для приложения 1С или если база работает в специфическом режиме совместимости (например, 8.2.13), вызов метода может блокироваться.
Что мы можем сделать в этой ситуации:
8.3 рекомендуется использовать режим не ниже 8.3.8, однако для УПП 1.3 это может потребовать масштабного тестирования всей системы.Сообщить(), если критически важно донести информацию до пользователя, а штатные уведомления не работают.AppData часто недостаточно. Рекомендуется удалить базу из списка и добавить её заново, предварительно очистив каталоги с идентификаторами баз.Если ваша организация планирует переход на ERP и использование платформы 8.3.12 является промежуточным шагом, рассмотрим стратегию минимизации рисков:
Во-первых, всегда проверяйте разрядность клиента. Описанные проблемы с фокусом и отрисовкой часто острее проявляются на x64 версии толстого клиента. Если оперативной памяти на рабочих станциях достаточно, попробуйте временно использовать x86 клиент — иногда это стабилизирует работу графики.
Во-вторых, уделите внимание настройкам SQL-сервера. Если база работает в режиме клиент-сервер, убедитесь, что настройки сетевых протоколов и задержки (latency) минимальны. Проблемы с «залипанием» интерфейса иногда могут быть усилены микро-задержками при обращении к серверу за данными для динамических списков.
В-третьих, если вы используете УПП, а идеологические соображения позволяют, рассмотрите возможность остаться на платформе 8.3.10 или сразу перейти на 8.3.14/8.3.16 в режиме совместимости. Ветка 8.3.12 считается одной из самых «переходных» и содержит большое количество изменений «под капотом», которые не всегда гладко ложатся на старый код обычных форм.
Подводя итог, можно сказать, что большинство проблем решается либо точечным программным вмешательством в события форм (как в случае со справочником сотрудников), либо административными мерами (обновление минорной версии платформы). Совместными усилиями разработчиков и системных администраторов можно добиться стабильной работы даже на таких капризных версиях ПО.