Многие пользователи 1С сталкиваются с крайне раздражающей ситуацией: при работе в одной информационной базе окно программы внезапно сворачивается или уходит на задний план, а перед глазами появляется другая открытая база. Это происходит «само по себе», без нажатия клавиш Alt+Tab или кликов мышью. Особенно часто такая проблема наблюдается, когда одновременно открыты конфигурации Зарплата и управление персоналом и Бухгалтерия предприятия.
В этой статье мы подробно разберем, почему возникает этот эффект, проанализируем технические причины «прыгающих» окон и выясним, какие шаги нужно предпринять для стабилизации работы интерфейса.
Проанализируем ситуацию, описанную пользователями. В большинстве случаев проблема проявляется на платформе версии 8.3.18.х. Как показывает практика и официальные отчеты об ошибках, в этой серии релизов был допущен просчет в механизме обработки фокуса активного окна. Рассмотрим подробнее, что именно провоцирует переключение:
1cv8.exe.Поскольку проблема официально признана ошибкой платформы (баг в управлении модальностью и фокусом), самым эффективным методом лечения является переход на более стабильные версии. Разберем, какие релизы исправляют эту «болячку».
Разработчики переработали логику взаимодействия с графической подсистемой Windows в последующих ветках. Для полного устранения проблемы рекомендуется обновиться до следующих версий (или более актуальных):
Если по каким-то причинам оперативное обновление платформы невозможно (например, из-за жестких требований к совместимости с доработанной конфигурацией), попробуем минимизировать количество триггеров, вызывающих переключение фокуса.
Проанализируем работу сервиса «Интернет-поддержка». Часто именно скрытые уведомления заставляют окна «прыгать». Для отключения выполним следующие действия:
Также полезно проверить регламентные задания. Рассмотрим пример того, как полнотекстовый поиск может влиять на работу. Когда запускается задание ОбновлениеИндексаПолнотекстовогоПоиска, файловая база может кратковременно «затупить», что приведет к потере фокуса. Рекомендуется увеличить интервал выполнения этого задания или перенести его на нерабочее время.
Иногда странное поведение интерфейса связано с накоплением ошибок в локальном кэше пользователя. Посмотрим, как правильно произвести очистку. Самый простой способ — запустить программу с параметром /ClearCache. Для этого в окне запуска 1С выберем нужную базу, нажмем «Изменить», перейдем на последнюю закладку и в поле «Дополнительные параметры запуска» впишем:
/ClearCache
Кроме того, стоит изменить режим открытия форм. Если формы открываются в отдельных окнах, вероятность конфликтов фокуса выше. Переключимся в режим закладок:
Если 1С продолжает настойчиво перехватывать фокус, мы можем запретить приложениям изменять состояние активного окна на уровне операционной системы. Для этого потребуется внести изменения в реестр Windows. Внимание: этот метод требует прав администратора и осторожности.
Нам необходимо изменить параметр, отвечающий за время ожидания перед тем, как приложению будет позволено выйти на передний план. Путь к параметру в реестре:
HKEY_CURRENT_USER\Control Panel\Desktop
Параметр: ForegroundLockTimeout
Обычно значение этого параметра устанавливается в 200000 (в миллисекундах). Если установить большое значение, система будет игнорировать попытки 1С «выпрыгнуть» поверх других окон, пока вы сами не кликнете по ним.
Мы выяснили, что основная причина произвольного переключения баз — это техническое несовершенство платформы 8.3.18. Если вы столкнулись с этой проблемой, в первую очередь проверьте версию вашей платформы. Если она начинается на 8.3.18 — планируйте обновление. В качестве временных мер используйте отключение интернет-сервисов и настройку регламентных заданий, чтобы снизить нагрузку и исключить микро-зависания программы.