Рассмотрим достаточно распространенную и неприятную ситуацию: после обновления конфигурации у одного конкретного пользователя программа 1С начинает зависать на одну-две минуты. Симптомы очень характерны: зависание происходит строго после записи и закрытия измененного документа. При этом проблема не привязана к компьютеру — под этим же пользователем она воспроизводится на любой машине, а под другими пользователями на том же компьютере все работает нормально. Анализ производительности и кода ничего не показывает, так как зависание наступает уже после отработки всех процедур и функций. Глубокий анализ показывает, что в момент "зависания" платформа устанавливает длительное соединение с сервером баз данных (СУБД), которое и длится те самые пару минут. Давайте разберем, что является причиной такого поведения и как это исправить.
Основная причина такого поведения почти всегда кроется в пользовательских настройках, а точнее — в настройках формы списка, из которой был открыт документ.
Проанализируем ситуацию по шагам. Пользователь открывает список документов (например, "Реализация товаров и услуг"). Из этого списка он открывает один из документов, вносит изменения, записывает и закрывает его. В этот момент платформа 1С пытается обновить данные в исходном списке, чтобы показать актуальную информацию (например, измененную сумму или статус).
Именно на этапе обновления данных в динамическом списке и возникает проблема. Если у пользователя сохранены специфические настройки этого списка, которые приводят к выполнению "тяжелого", неоптимального запроса к базе данных, система будет ждать его завершения. Таким "тяжелым" запросом может быть:
В итоге, мы видим зависание интерфейса, которое на самом деле является ожиданием ответа от СУБД на очень ресурсоемкий запрос, инициированный обновлением динамического списка с некорректными настройками.
Это самый быстрый и точный способ решения проблемы, который в большинстве случаев помогает. Вместо полной очистки всех настроек пользователя (что может быть неудобно), мы сбросим настройки только для той формы списка, которая вызывает проблему.
Дата или Номер, а что-то более сложное, скорее всего, причина в этом. Попробуйте кликнуть на заголовок колонки "Дата" или "Номер", чтобы установить простую и быструю сортировку.После выполнения этих действий попросите пользователя снова открыть документ, изменить, записать и закрыть его. С вероятностью 99% проблема зависания исчезнет. Сброс настроек вернет вид списка к состоянию "по умолчанию", заложенному разработчиком, убрав проблемную сортировку или отбор.
Если сброс настроек одного списка не помог или определить проблемную форму невозможно, следует прибегнуть к полной очистке всех сохраненных настроек для данного пользователя. Важно: перед выполнением этой операции пользователь должен выйти из базы 1С.
Выполнить очистку можно несколькими способами:
Администрирование -> Настройки пользователей и прав. Откройте справочник Пользователи, найдите проблемного сотрудника, откройте его карточку. В карточке пользователя найдите ссылку или кнопку "Настройки" и воспользуйтесь командой "Очистить настройки". Путь может немного отличаться в зависимости от конфигурации.Что будет удалено? Эта операция удалит все персональные настройки пользователя: расположение окон, ширину колонок в таблицах, сохраненные варианты отчетов, отборы в списках и т.д. Пользователю придется настраивать рабочее пространство заново, но это гарантированно решит проблему, если она была связана с настройками.
Это крайний, но 100% рабочий метод, если предыдущие не дали результата. Иногда данные о настройках могут быть повреждены на уровне системных таблиц базы данных, и стандартные средства очистки не могут это исправить.
В этом случае необходимо:
Этот способ решает проблему, так как для нового пользователя создается абсолютно чистый профиль настроек в базе данных.
Хотя проблема чаще всего в настройках, в редких случаях причиной могут быть и другие факторы. Если вышеописанные методы не помогли, стоит проверить следующее:
%AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.Microsoft Print to PDF.Таким образом, столкнувшись с проблемой зависания 1С у одного пользователя, начинайте диагностику с самого простого и вероятного — с настроек динамических списков. Это сэкономит вам время и, скорее всего, быстро решит проблему.