Что делать, если после обновления 1С:УНФ появляется пустое или зависшее окно, которое ни на что не реагирует?

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

Приветствуем вас, коллеги! Каждый администратор или программист 1С рано или позмя сталкивается с ситуацией, когда после планового обновления конфигурации (например, «Управления нашей фирмой» — УНФ) пользователи начинают жаловаться на странное поведение программы. База вроде бы запускается, но на экране поверх интерфейса зависает пустое серое или белое окно, которое абсолютно ни на что не реагирует, блокируя при этом всю остальную работу. Перезагрузка компьютера пользователя в этом случае чаще всего не приносит никакого результата.

В этой статье мы подробно проанализируем причины возникновения этой проблемы и разберем по шагам все возможные способы её решения — от простых административных манипуляций до тонкой настройки сервера 1С.

Почему после обновления конфигурации появляется «пустое» зависшее окно?

Давайте разберемся в механике работы современных конфигураций 1С. Начиная с внедрения Библиотеки стандартных подсистем (БСП), процесс обновления базы данных разделен на два основных этапа:

  1. Интерактивное (физическое) обновление — выполняется в Конфигураторе путем применения нового файла конфигурации.
  2. Отложенное обновление данных — выполняется непосредственно в режиме «1С:Предприятие» при первом запуске системы. В этот момент запускаются специальные фоновые и регламентные задания, которые реструктуризируют таблицы, заполняют новые реквизиты и переносят данные.

Именно во время второго этапа на экране пользователя появляется модальное окно с индикатором прогресса. Если на сервере или в локальной базе что-то мешает выполнению этих фоновых процессов, то графическая оболочка окна отрисовывается, но сам процесс обновления зависает. В итоге пользователь видит пустое, «мертвое» окно. Рассмотрим подробнее, как вернуть систему в рабочее состояние.

Способ 1. Запуск процесса обновления в монопольном режиме

Самая частая причина зависания стартовых окон после обновления — это отсутствие монопольного доступа к базе данных. Процедурам обновления БСП критически важно иметь полный и единоличный доступ к таблицам СУБД для предотвращения коллизий данных.

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

Проанализируем алгоритм действий по принудительному запуску обновления:

  1. Попросим абсолютно всех пользователей выйти из базы данных. Если база файловая — убедимся, что в диспетчере задач на компьютерах пользователей и сервере не зависли процессы 1cv8.exe или 1cv8c.exe.
  2. Запустим программу «монопольно». Для этого можно воспользоваться командной строкой или параметрами запуска в окне выбора баз 1С. Добавим в параметры запуска базы следующий ключ: /C ЗапуститьОбновлениеИнформационнойБазы Этот ключ принудительно инициирует выполнение всех отложенных процедур обновления БСП в текущем сеансе, минуя фоновые задания.
  3. Дождемся окончания процесса. На экране должно появиться штатное окно с ходом выполнения обновления. После его завершения база откроется в обычном режиме.

Способ 2. Завершение зависших сеансов и перезапуск службы сервера

Если база работает в клиент-серверном варианте (SQL), обычная перезагрузка компьютера пользователя, как описано в сообщении темы форума, не поможет. На сервере приложений 1С часто остаются «сеансы-призраки», спящие фоновые соединения или активные процессы COM/веб-сервисов.

Выясним, как полностью очистить сеансы на сервере:

  1. Откроем Консоль администрирования кластера серверов 1С Enterprise.
  2. Перейдем в ветку нашей информационной базы и откроем раздел Сеансы.
  3. Удалим все активные сеансы, кроме своего собственного. Особое внимание уделим фоновым заданиям, которые могут держать транзакции.
  4. Если сеансы не удаляются штатно, или база продолжает сообщать о наличии активных подключений, выполним радикальный, но самый надежный шаг — перезапустим службу сервера 1С:Предприятия. На сервере приложений откроем оснастку «Службы» (services.msc), найдем службу Агент сервера 1С:Предприятия 8.3 и нажмем Перезапустить.
  5. После перезапуска службы зайдем в базу первым сеансом и дадим системе корректно завершить обновление.

Способ 3. Очистка кэша платформы 1С

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

Разберем по шагам, как правильно и полностью очистить локальный кэш 1С:

  1. Закроем программу 1С на проблемном компьютере.
  2. Откроем проводник Windows и перейдем в каталоги временных файлов пользователя. Для быстрого перехода введем в адресную строку проводника следующие пути:
    • %userprofile%\AppData\Local\1C\1cv8
    • %userprofile%\AppData\Roaming\1C\1cv8
  3. Внутри этих каталогов мы увидим множество папок с длинными буквенно-цифровыми названиями (например, 4a8f9b2d-3c1e-...). Это и есть кэш баз данных. Смело удаляем все эти папки. При следующем запуске 1С создаст их заново с актуальными данными конфигурации.
  4. Альтернативный быстрый способ: откроем окно запуска 1С, выберем нашу информационную базу, нажмем кнопку Удалить, а затем добавим её заново с тем же путем. При удалении базы из списка платформа автоматически отвязывает и очищает связанный с ней локальный кэш.

Способ 4. Проверка обновления конфигурации базы данных

Бывают ситуации, когда специалист выполнил обновление основной конфигурации, но забыл нажать клавишу F7 (или синюю бочку на панели инструментов) для применения изменений к конфигурации базы данных (БД). Также это могло произойти из-за сбоя при так называемом «динамическом обновлении» (когда конфигурация обновляется «на лету» без выгона пользователей).

Посмотрим на пример решения этой проблемы через Конфигуратор:

  1. Запустим базу данных в режиме Конфигуратор.
  2. Обратим внимание на заголовок окна конфигурации. Если рядом с названием конфигурации стоит восклицательный знак или признак модифицированности, значит, конфигурация базы данных не соответствует основной.
  3. Попробуем выполнить обновление конфигурации базы данных, нажав клавишу F7. Если система выдаст предупреждение о наличии активных сеансов, вернемся к Способу 2.
  4. Если произошло зависание из-за некорректного динамического обновления (проблема «демона» 1С), выполним очистку кэша динамического обновления. Для этого в Конфигураторе выберем меню Конфигурация -> Настройка динамического обновления и очистим его, либо воспользуемся тестированием и исправлением информационной базы с установленным флагом проверки логической целостности.

Способ 5. Специфика отображения окон в режиме RemoteApp (Терминальный сервер)

Если ваши пользователи работают с 1С на терминальном сервере под управлением Windows Server по технологии RemoteApp, то пустое и зависшее окно — это известный баг отрисовки интерфейса Windows.

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

Проанализируем методы борьбы с этим явлением:

Способ 6. Проверка блокировки регламентных заданий

Если вы используете клиент-серверный вариант базы, обязательно проверьте настройки самой базы данных в консоли кластера 1С.

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

Для исправления этой ситуации выполним следующие шаги:

  1. Запустим Консоль администрирования кластера серверов 1С.
  2. Откроем свойства нашей информационной базы.
  3. Найдем флаг Блокировка регламентных заданий включена.
  4. Если флаг установлен, снимем его, введем имя администратора базы и нажмем ОК для применения настроек.

После снятия блокировки фоновые процессы обновления запустятся автоматически, и «зависшее» окно успешно закроется через несколько минут, открыв пользователю рабочий интерфейс программы.

← На главную