Почему в 1С пропадает контекстное меню и перестают работать горячие клавиши после печати?

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

В работе системных администраторов и программистов 1С часто возникают ситуации, когда после штатного обновления платформы пользователи начинают жаловаться на странное поведение интерфейса. Одним из наиболее раздражающих «глюков», проявившихся в ветках 8.3.12 и 8.3.13, стала потеря интерактивности форм после выполнения печати документов. Рассмотрим подробнее, как проявляется эта проблема, почему она возникает и как её правильно устранить.

Симптомы проблемы: когда интерфейс «замерзает»

Проанализируем типичный сценарий возникновения ошибки. Пользователь работает в терминальном режиме (RDP) на сервере под управлением Windows Server 2008 или новее. После формирования любой печатной формы (например, счета на оплату или требования-накладной) и её отправки на принтер, основное окно 1С начинает вести себя некорректно:

Интересной особенностью является то, что фокус возвращается, если переключиться на другое приложение (например, на панель задач или браузер) и снова вернуться в окно 1С. Это явный признак того, что платформа некорректно обрабатывает системные сообщения Windows о фокусе окна.

Разбор причины: ошибка платформы 10201636

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

Проблема характерна для файловых и клиент-серверных баз при использовании управляемых форм. Наиболее остро она проявилась в релизах 8.3.12.1616 и 8.3.13.1513. Рассмотрим, какие варианты решения существуют на текущий момент.

Вариант 1: Обновление платформы до исправленных релизов

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

  1. Для ветки 8.3.12 исправление внесено в релиз 8.3.12.1681 и выше.
  2. Для ветки 8.3.13 исправление доступно в релизе 8.3.13.1644 и выше.

Если ваша конфигурация позволяет использовать более современные ветки платформы (например, 8.3.18 или 8.3.22), рекомендуется перейти на них, так как в новых версиях исправлено множество других сопутствующих ошибок работы в RDP.

Вариант 2: Ловушка промежуточных релизов (Ошибка Истории данных)

Разберем важный нюанс. Некоторые пользователи пытались решить проблему установкой релиза 8.3.12.1529. Хотя «глюк» с контекстным меню в нем пропадает, этот релиз содержит другую, гораздо более опасную критическую ошибку под номером 10201267.

Внимание: В релизе 1529 при выполнении регламентной операции «Тестирование и исправление» (ТиИ) с включенным пунктом очистки ссылок на несуществующие объекты, происходит полное удаление данных из таблиц истории изменений (DataHistory). Это может привести к безвозвратной потере аудиторского следа в базе данных. Поэтому использовать релиз 8.3.12.1529 категорически не рекомендуется.

Вариант 3: Обходные пути для пользователей

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

Дополнительные странности новых платформ

Посмотрим на ситуацию шире. Помимо проблем с фокусом, пользователи новых версий 8.3.12 и 8.3.13 сталкивались и с другими аномалиями, о которых стоит знать системному администратору:

1. Пасхалка «Тестировщики правят миром!»

В релизе 8.3.13.1513 разработчики случайно оставили отладочное сообщение. Оно появляется при попытке редактирования номеров сообщений в планах обмена (синхронизация данных). При нажатии правой кнопкой мыши по номеру сообщения возникала надпись со смайликом. Это не является признаком вируса, а лишь подтверждает «сырость» тестирования конкретной сборки.

2. Повышенное потребление памяти (Chromium)

Начиная с ветки 8.3.12, 1С интегрировала движок на базе Chromium для отображения встроенной справки и некоторых элементов интерфейса. Это привело к тому, что каждый сеанс пользователя в терминале стал потреблять значительно больше оперативной памяти (в некоторых случаях до 1-1.5 Гб на процесс). Рассмотрим пример: если на сервере работают 20 пользователей, необходимо закладывать минимум 32 Гб ОЗУ только под нужды 1С, не считая операционной системы и SQL-сервера.

3. Проблемы с временным хранилищем в толстом клиенте

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

Итоговые рекомендации по выбору платформы

Подведем итог нашему анализу. Чтобы избежать проблем с контекстным меню, горячими клавишами и потерей данных, рекомендуем придерживаться следующей стратегии:

Всегда выполняйте резервное копирование перед обновлением платформы и тестируйте работу ключевых функций (печать, поиск, синхронизация) на копии базы данных в условиях, максимально приближенных к боевым (RDP-сессия).

← На главную