Обновление конфигурации 1С не заканчивается: как понять, что она встала, и вернуть базу в строй
Содержание
Не снимайте процесс сразу. Обновление конфигурации 1С с индикатором «на месте» может честно работать час и дольше: система перестраивает таблицы базы, и окно при этом выглядит замершим. Зависание подтверждается не картинкой, а нулевой нагрузкой на сервер, диск и процессор в течение 20-30 минут.
Если нагрузка есть, ждите. Если её нет, а в списке сеансов висят чужие пользователи, значит, 1С зависла на обновлении конфигурации из-за блокировки, и лечится это иначе, чем сбой платформы. Ниже порядок действий от самых безопасных проверок к самым жёстким.
Прежде чем что-то прерывать: убедитесь, что есть свежая копия базы. Принудительное завершение посреди реструктуризации может оставить базу в неконсистентном состоянии.
Как понять, что 1С действительно зависла, а не работает
Долгое обновление и зависание снаружи неотличимы. Отличает их нагрузка.
Что смотреть на компьютере или сервере
Откройте диспетчер задач (Ctrl+Shift+Esc) и найдите процесс 1cv8.exe (конфигуратор или клиент). Для клиент-серверной базы смотрите ещё процессы rphost.exe на сервере и процесс СУБД.
- 📈 Процессор или диск у процесса заметно загружены и меняются, значит, идёт работа. Ждите.
- 📉 Нагрузка 0-1% и не меняется 20-30 минут, значит, процесс, скорее всего, стоит.
- 💾 В файловой базе следите за размером и временем изменения файла
1Cv8.1CD: растёт или меняется, значит, идёт запись. - 🧠 Память процесса растёт без остановки до упора, значит, дело в нехватке ресурсов, а не в блокировке.
Сколько обновление занимает обычно
Ориентиры очень приблизительные и зависят от диска и размера базы.
| Размер базы | Релиз с реструктуризацией | Нормальное время |
|---|---|---|
| до 5 ГБ, SSD | небольшой | 5-20 минут |
| 10-30 ГБ | крупный | 30-90 минут |
| больше 50 ГБ, HDD | с пересчётом итогов или регистров | несколько часов |
Крупные регистры накопления и сведений перестраиваются дольше всего. Если ваш случай похож на нижнюю строку, начинайте не с отмены, а с ожидания.
Запустите обновление вечером в пятницу, а не в середине рабочего дня. Любая вынужденная пауза тогда ничего не стоит.
Первая проверка: журнал регистрации и логи
Пока процесс «висит», журнал регистрации часто уже показывает, на чём он остановился. Для файловой базы и сервера он ведётся в самой базе, для сервера дополнительно полезны логи кластера.
Журнал регистрации в конфигураторе
Откройте второй экземпляр конфигуратора или базу в режиме «1С:Предприятие» (если она ещё пускает) и вызовите журнал: в конфигураторе пункт меню «Администрирование», далее «Журнал регистрации». В Предприятии он открывается из раздела администрирования.
Фильтруйте по времени запуска обновления и смотрите:
- Уровень «Ошибка» и «Предупреждение» за последние минуты.
- События, связанные с конфигурацией и обновлением информационной базы.
- Сообщения о таймаутах блокировок и об ошибках СУБД.
Если последняя запись старше получаса, а процесс без нагрузки, это сильный признак зависания.
Логи платформы и СУБД
На сервере 1С логи кластера лежат в каталоге данных кластера, а для разбора тяжёлых случаев включается технологический журнал (настраивается файлом logcfg.xml в каталоге conf платформы). Это путь для администратора: он даёт запросы, ожидания и взаимные блокировки.
Для СУБД смотрите её собственные средства:
- Microsoft SQL Server: процедура
sp_who2показывает, кто кого блокирует (колонка BlkBy). - PostgreSQL: представление
pg_stat_activityсо статусом ожидания.
Если СУБД показывает длинный запрос в статусе выполнения, обновление работает и надо ждать. Если запрос ждёт другой сеанс, нашли виновника.
Что делать с сеансами и блокировками
Самая частая реальная причина: в базе остались чужие подключения. Для обновления конфигурации нужен монопольный доступ, и пока висят сеансы, конфигуратор либо не стартует, либо крутит ожидание.
Закройте пользователей
- Откройте список активных пользователей. В режиме Предприятия это раздел администрирования, пункт «Активные пользователи». В конфигураторе: «Администрирование», «Активные пользователи».
- Отправьте сообщение или попросите выйти.
- Выберите зависшие сеансы и завершите принудительно.
На сервере удобнее консоль администрирования серверов 1С: найдите кластер, затем информационную базу, затем «Сеансы». Там видны время последней активности, приложение и компьютер пользователя.
Сеанс «Фоновое задание» или «Обмен» вешают не люди. Регламентные задания надо остановить перед обновлением: включите запрет на подключения и запрет регламентных заданий в свойствах базы в консоли.
Блокировка новых входов на время работ
В консоли администрирования в свойствах информационной базы включите запрет начала сеансов с указанием кода разрешения. Тогда никто, кроме вас, не зайдёт, пока вы не снимете флажок. Свой сеанс запускайте с ключом /UC и этим кодом.
Если сеанс не завершается
Бывает, что клиент «умер», а сеанс остаётся. Тогда его удаляют из консоли серверов. В файловой базе нет консоли, поэтому остаётся закрыть процесс 1cv8.exe на компьютере пользователя через диспетчер задач или ждать перезагрузки машины.
⚠️ Зависшие транзакции в СУБД иногда держат блокировку даже после завершения сеанса. Это видно в sp_who2 или pg_stat_activity и лечится завершением процесса в СУБД, но делать это нужно, понимая последствия.
Запуск в монопольном режиме и отладка
Если обновление не получилось довести обычным путём, проведите его вручную в монопольном режиме. Он исключает чужие сеансы и позволяет увидеть истинную ошибку.
Пошагово в конфигураторе
- Убедитесь, что никого нет в базе (предыдущий раздел).
- Откройте базу в режиме «Конфигуратор» из списка баз.
- Если конфигуратор сообщает, что монопольный доступ получить не удалось, вернитесь к сеансам.
- Выполните обновление конфигурации через пункт «Конфигурация», «Поддержка», «Обновить конфигурацию ».
- После загрузки новой конфигурации примените её к базе: «Конфигурация», «Обновить конфигурацию
базы данных» (клавиша
F7).
Именно на последнем шаге идёт реструктуризация. Окно может надолго остановиться на одном названии таблицы, это нормально, если нагрузка есть.
Что даёт запуск с отладкой
Если конфигуратор сообщает об ошибке, текст ошибки уже ценнее любой догадки. Скопируйте его целиком, он нужен для поиска. Для клиентской части полезно запустить базу в режиме «1С:Предприятие» и посмотреть, на каком сообщении останавливается обновление информационной базы: после смены версии при первом входе платформа выполняет обработчики обновления, и именно они чаще всего «висят» на больших регистрах.
Очистка кэша клиента
Иногда зависает не база, а локальный клиент. Закройте 1С, удалите содержимое папок кэша и запустите заново.
Папки обычно лежат здесь:
%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8
Либо запустите клиент с параметром очистки кэша:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /ClearCache
Путь к исполняемому файлу у вас может отличаться: смотрите свойства ярлыка.
Кэш чистит только локальные временные данные, на базу это не влияет. Но не удаляйте ничего вне указанных папок.
Что делать, если процесс не оживает: прерывание и откат
Решение «прервать» принимают, когда нагрузка нулевая, сеансы закрыты, а сообщений нет в течение разумного времени (ориентир: 30-60 минут для средней базы).
Мягкое прерывание
В конфигураторе и клиенте иногда помогает сочетание Ctrl+Break: оно прерывает текущую операцию. Если окно отзывается, подождите несколько минут, прежде чем делать что-то ещё.
Жёсткое завершение
Только если мягкое не сработало:
- В диспетчере задач завершите процесс
1cv8.exe. - На сервере при необходимости перезапустите службу «Агент сервера 1С:Предприятие 8.3». Все пользователи вылетят из всех баз кластера, поэтому делайте это ночью.
- В файловой базе после жёсткого закрытия проверьте, нет ли оставшегося файла блокировки
1Cv8.cdnрядом с базой. Удаляйте его, только когда уверены, что в базе никого нет.
Восстановление из копии
После жёсткого прерывания не пытайтесь запускать обновление повторно поверх повреждённой базы. Порядок такой:
| Тип базы | Как вернуться | Комментарий |
|---|---|---|
| Файловая | подменить файл 1Cv8.1CD копией | копия должна быть сделана до обновления, при закрытой базе |
| Клиент-серверная, MS SQL | восстановить базу из полной резервной копии | средствами СУБД |
| Клиент-серверная, PostgreSQL | восстановить из дампа | утилитами PostgreSQL |
| Любая | загрузить выгрузку .dt | в конфигураторе «Администрирование», «Загрузить информационную базу» |
После восстановления проверьте, что база открывается и версия конфигурации соответствует прежней. Затем разберитесь с причиной и повторяйте попытку.
Не удаляйте повреждённую базу, пока не убедились, что копия открывается и данные на месте.
Тестирование и исправление
Если после аварийного завершения база открывается, но ведёт себя странно, запустите проверку: в конфигураторе «Администрирование», «Тестирование и исправление». Начинайте с режима «Только тестирование», без исправлений, и смотрите отчёт. Исправлять вслепую на единственной копии нельзя.
Типичные ошибки платформы при обновлении и как их убрать
Ниже самые частые сообщения. Формулировки могут слегка отличаться в разных релизах, ищите по смыслу.
Если в базе есть доработки, зависание нередко вызвано ими: при объединении с новой версией типовая конфигурация и ваши изменения конфликтуют. Тогда помогает сравнение и объединение конфигураций с разбором каждого конфликта, а не обновление «в один клик».
Как не получить зависание в следующий раз
Большинство долгих обновлений предсказуемы. Вот что делают заранее.
Что ещё стоит сделать:
- 🔧 Обновлять платформу и конфигурацию по очереди, не одновременно: так проще найти виновника.
- 🧹 Раз в квартал сворачивать лишние данные и чистить журнал регистрации, если он разросся.
- 🗂 На сервере держать базу и журнал транзакций СУБД на быстрых дисках.
- 🧪 Крупные релизы сначала проверять на тестовой копии и замерять время. Если копия обновилась за 40 минут, на боевой закладывайте с запасом час-полтора.
- 📝 Вести короткий журнал обновлений: версия до, версия после, время, проблемы. Через пару раз это даёт точную картину.
Если база большая, а окно простоя мало, обсудите с администратором оптимизацию: индексы СУБД, обслуживание статистики и отдельный сервер СУБД. Это снимает львиную долю «зависаний».