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

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

Рассмотрим достаточно распространенную и неприятную ситуацию: после обновления конфигурации у одного конкретного пользователя программа 1С начинает зависать на одну-две минуты. Симптомы очень характерны: зависание происходит строго после записи и закрытия измененного документа. При этом проблема не привязана к компьютеру — под этим же пользователем она воспроизводится на любой машине, а под другими пользователями на том же компьютере все работает нормально. Анализ производительности и кода ничего не показывает, так как зависание наступает уже после отработки всех процедур и функций. Глубокий анализ показывает, что в момент "зависания" платформа устанавливает длительное соединение с сервером баз данных (СУБД), которое и длится те самые пару минут. Давайте разберем, что является причиной такого поведения и как это исправить.

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

Анализ проблемы: Динамический список и его обновление

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

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

В итоге, мы видим зависание интерфейса, которое на самом деле является ожиданием ответа от СУБД на очень ресурсоемкий запрос, инициированный обновлением динамического списка с некорректными настройками.

Решение 1: Сброс настроек конкретного динамического списка

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

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

После выполнения этих действий попросите пользователя снова открыть документ, изменить, записать и закрыть его. С вероятностью 99% проблема зависания исчезнет. Сброс настроек вернет вид списка к состоянию "по умолчанию", заложенному разработчиком, убрав проблемную сортировку или отбор.

Решение 2: Полная очистка пользовательских настроек

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

Выполнить очистку можно несколькими способами:

  1. Через интерфейс администрирования. Зайдите в 1С под пользователем с правами администратора. Перейдите в раздел Администрирование -> Настройки пользователей и прав. Откройте справочник Пользователи, найдите проблемного сотрудника, откройте его карточку. В карточке пользователя найдите ссылку или кнопку "Настройки" и воспользуйтесь командой "Очистить настройки". Путь может немного отличаться в зависимости от конфигурации.
  2. С помощью стандартных обработок. В некоторых конфигурациях есть специальные обработки для управления настройками пользователей. Их можно найти в разделе администрирования или в дополнительных обработках.

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

Решение 3: Создание нового пользователя

Это крайний, но 100% рабочий метод, если предыдущие не дали результата. Иногда данные о настройках могут быть повреждены на уровне системных таблиц базы данных, и стандартные средства очистки не могут это исправить.

В этом случае необходимо:

  1. Создать в базе нового пользователя 1С (не копированием старого, а именно нового).
  2. Назначить ему те же права и настройки, что были у проблемного пользователя.
  3. Передать новому пользователю его задачи (если используются бизнес-процессы).
  4. Старого, проблемного пользователя можно пометить на удаление или сделать неактивным.

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

Дополнительные возможные причины и методы диагностики

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

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

← На главную