Как исправить баги интерфейса и потерю управления клавиатурой в 1С:УПП на платформе 8.3.12

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

Переход на новые версии платформы 1С часто сопровождается неожиданными трудностями, особенно если речь идет о поддержке конфигураций на обычных формах, таких как УПП 1.3. Платформа версии 8.3.12.1412 стала для многих камнем преткновения из-за существенных изменений в графической подсистеме. В рамках данной статьи мы подробно разберем, почему возникают проблемы с управлением окнами, как убрать артефакты отрисовки и восстановить работоспособность оповещений пользователя.

Проблема №1: Потеря фокуса и управления с клавиатуры

Одной из самых раздражающих проблем данной версии платформы является внезапное «оцепенение» формы. Пользователи замечают, что при открытии любого списка документов, если окно было максимизировано или минимизировано, перестают работать клавиши навигации: стрелки Вверх, Вниз, Enter, Del. Форма визуально доступна, но реагирует только на клики мышкой или закрытие через «крестик».

Проанализируем ситуацию: это поведение связано с зарегистрированной ошибкой платформы №10196417. При изменении размеров окна фокус ввода «проваливается» между системным слоем Windows и внутренними контейнерами 1С. Рассмотрим доступные способы «реанимации» окна без его закрытия:

  1. Метод принудительной активации: Нажмите правую кнопку мыши в любой области списка документов. Это заставляет графическую подсистему пересчитать координаты фокуса и вернуть управление клавиатуре.
  2. Системное переключение: Кратковременно нажмите клавишу Alt (для активации главного меню) или воспользуйтесь сочетанием Alt + Tab для переключения на другое приложение и обратно.
  3. Свертывание приложения: Сверните всё окно 1С в панель задач и разверните его снова.

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

Проблема №2: Белая полоса в справочнике «Сотрудники»

Многие разработчики столкнулись с графическим артефактом: в нижней части табполя справочника «Сотрудники» появляется пустая белая полоса, которая «съедает» полезное пространство. Это происходит из-за некорректной обработки привязок элементов управления (анкеров) в момент отрисовки формы в толстом клиенте.

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

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

  1. Откройте конфигуратор и найдите форму списка справочника Сотрудники.
  2. Перейдите в модуль формы.
  3. Добавьте или измените процедуру-обработчик события ОбновлениеОтображения.

Используем следующий код для принудительной перерисовки панели дополнительных сведений:


Процедура ОбновлениеОтображения()
    // Принудительно сбрасываем состояние свертки панели
    ЭлементыФормы.ПанельДополнительныеСведения.Свертка = РежимСверткиЭлементаУправления.Нет;
    
    // Устанавливаем корректное значение свертки (в данном случае - вниз)
    ЭлементыФормы.ПанельДополнительныеСведения.Свертка = РежимСверткиЭлементаУправления.Низ;
КонецПроцедуры

Этот нехитрый прием заставляет платформу заново рассчитать геометрию формы, после чего белая полоса исчезает. Обратите внимание, что объект ЭлементыФормы.ПанельДополнительныеСведения может называться иначе в вашей версии конфигурации — убедитесь в правильности имени элемента перед сохранением.

Проблема №3: Пропадание уведомлений (ПоказатьОповещениеПользователя)

Еще один неприятный баг версии 8.3.12.1412 — игнорирование команды ПоказатьОповещениеПользователя в толстом клиенте на обычных формах. Пользователи просто перестают видеть всплывающие сообщения в нижнем углу экрана.

Проанализируем ситуацию: в этой версии платформы 1С начала внедрять использование нативных уведомлений операционной системы. Если в настройках Windows выключены уведомления для приложения 1С или если база работает в специфическом режиме совместимости (например, 8.2.13), вызов метода может блокироваться.

Что мы можем сделать в этой ситуации:

Общие рекомендации по эксплуатации платформы 8.3.12

Если ваша организация планирует переход на ERP и использование платформы 8.3.12 является промежуточным шагом, рассмотрим стратегию минимизации рисков:

Во-первых, всегда проверяйте разрядность клиента. Описанные проблемы с фокусом и отрисовкой часто острее проявляются на x64 версии толстого клиента. Если оперативной памяти на рабочих станциях достаточно, попробуйте временно использовать x86 клиент — иногда это стабилизирует работу графики.

Во-вторых, уделите внимание настройкам SQL-сервера. Если база работает в режиме клиент-сервер, убедитесь, что настройки сетевых протоколов и задержки (latency) минимальны. Проблемы с «залипанием» интерфейса иногда могут быть усилены микро-задержками при обращении к серверу за данными для динамических списков.

В-третьих, если вы используете УПП, а идеологические соображения позволяют, рассмотрите возможность остаться на платформе 8.3.10 или сразу перейти на 8.3.14/8.3.16 в режиме совместимости. Ветка 8.3.12 считается одной из самых «переходных» и содержит большое количество изменений «под капотом», которые не всегда гладко ложатся на старый код обычных форм.

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

← На главную