Обновление 1С встало на полпути: как довести его до конца без потери базы

· 10 мин

Содержание

Если 1С зависла во время обновления, сначала проверьте в диспетчере задач, грузит ли процесс 1cv8.exe (или rphost.exe на сервере) процессор и диск. Есть нагрузка — обновление идёт, ждите. Нагрузки нет 20–30 минут — закройте зависший процесс, затем откройте базу в Конфигураторе и выполните Конфигурация → Обновить конфигурацию базы данных (F7) либо откатитесь к прежней конфигурации.

Дальше всё зависит от того, на каком этапе обновить 1С не получилось. Зависнуть может скачивание файлов обновления, загрузка новой конфигурации, реструктуризация таблиц или обработчики обновления при первом запуске. У каждого этапа свой безопасный выход. Речь о платформе 8.3 в файловом и клиент-серверном варианте; порядок действий общий для БП 3.0, ЗУП 3.1, УТ 11 и других типовых конфигураций.

Как понять, что обновление 1С зависло, а не просто идёт долго

Самая частая ошибка — убить процесс, который на самом деле работал. Реструктуризация базы на 30–50 ГБ легко занимает час-два, и всё это время окно 1С может не отвечать и показывать «Не отвечает» в заголовке.

Проверьте три признака:

  • 🔍 Процессор. В диспетчере задач на вкладке «Подробности» найдите 1cv8.exe (файловая база) или rphost.exe и процесс СУБД — sqlservr.exe или postgres.exe (серверная). Колебания загрузки — работа идёт.
  • 💾 Диск. Откройте «Монитор ресурсов» → вкладка «Диск». Если процесс пишет в файл 1Cv8.1CD или в файлы базы данных СУБД — обновление живо.
  • ⏱ Размер файлов. В файловом варианте посмотрите размер 1Cv8.1CD и временных файлов в папке базы. Меняется раз в несколько минут — реструктуризация продолжается.

Если все три показателя стоят на нуле больше 20–30 минут, процесс завис. Чаще всего его держит чужая блокировка: в базе остался пользователь, фоновое задание или открытый по сети файл.

Не судите по полосе прогресса. На этапе «Обновление конфигурации базы данных» она может стоять на месте долго, а потом прыгнуть сразу до конца.

Диагностика: выберите симптом

Зависший клиент: что сделать в первые минуты

Когда точно ясно, что процесс мёртв, его нужно корректно убрать и освободить базу.

  1. Закройте зависшее окно через диспетчер задач: «Подробности» → 1cv8.exe → «Снять задачу». Для тонкого клиента процесс называется 1cv8c.exe.
  2. Проверьте, что в системе не осталось других процессов 1cv8*.exe текущего пользователя.
  3. Для файловой базы на сетевой папке зайдите на компьютер, где лежит база, и откройте Управление компьютером → Общие папки → Открытые файлы. Если там висит 1Cv8.1CD от другого пользователя, попросите его выйти или закройте файл оттуда же.
  4. Очистите кеш клиента. Быстрый способ — запустить базу с ключом /ClearCache. Ручной — закрыть 1С и удалить папки с длинными GUID-именами в каталогах:
%APPDATA%\1C\1cv8
%LOCALAPPDATA%\1C\1cv8

Удаляйте только папки-GUID, а не весь каталог: в нём лежат настройки пользователя и шаблоны обновлений.

Закрывать процесс во время реструктуризации файловой базы опасно: запись в 1Cv8.1CD обрывается на середине. Снимайте задачу только при полном отсутствии активности и только при наличии свежей копии базы.

Если после этого база не открывается или ругается на повреждённый файл, запустите утилиту chdbfl.exe из папки bin нужной версии платформы, например C:\Program Files\1cv8\8.3.24.1691\bin\. Она проверяет и исправляет файл 1Cv8.1CD, базу при этом никто не должен открывать.

Серверная база зависла: снимаем сеансы и перезапускаем службу

В клиент-серверном варианте процесс на компьютере пользователя — лишь часть картины. Обновление выполняет рабочий процесс rphost.exe на сервере 1С, а данные меняет СУБД.

Сеансы и блокировка входа

Откройте «Консоль администрирования серверов 1С Предприятия» (через агент сервера, порт 1540). Дальше:

  1. Разверните кластер → «Информационные базы» → ваша база → «Сеансы».
  2. Посмотрите, кто подключён. Фоновые задания и сеансы «Конфигуратор» здесь тоже видны.
  3. В свойствах базы включите «Блокировка начала сеансов включена», задайте время и код разрешения, например UPD2024.
  4. Удалите лишние сеансы через контекстное меню.

Чтобы зайти в заблокированную базу самому, добавьте к строке запуска параметр /UC с этим кодом:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /UC UPD2024

В конфигурациях на БСП то же самое делается из программы: Администрирование → Обслуживание → Блокировка работы пользователей. Удобно, если доступа к консоли нет.

Перезапуск службы и очистка кеша сервера

Если сеансы не удаляются, а рабочий процесс висит, остаётся перезапуск службы «Агент сервера 1С:Предприятия 8.3». Это оборвёт сеансы всех пользователей всех баз на этом сервере — делайте вне рабочего времени или предупредите людей заранее.

Порядок:

  1. Остановите службу агента в оснастке «Службы» (services.msc).
  2. Убедитесь, что процессы ragent.exe, rmngr.exe и rphost.exe исчезли.
  3. При необходимости очистите сеансовые данные: в каталоге кластера (по умолчанию srvinfo\reg_1541) удалите папки, имя которых начинается с snccntx. Сами базы и списки кластера при этом не затрагиваются.
  4. Запустите службу и повторите обновление.

Для PostgreSQL полезно убедиться, что на стороне СУБД не осталось подвисшего запроса:

SELECT pid, state, query_start, left(query, 80)
FROM pg_stat_activity
WHERE datname = 'buh';

Транзакция, которую СУБД не успела завершить при обрыве, откатывается. Поэтому серверная база при прерванной реструктуризации обычно возвращается к состоянию до обновления, а не ломается.

Как завершить обновление конфигурации, прерванное на полпути

Обновление в Конфигураторе состоит из двух частей. Сначала новая конфигурация загружается в основную конфигурацию. Затем её нужно применить к базе данных — это и есть реструктуризация. Если всё оборвалось между ними, при запуске пользовательского режима появится запрос Конфигурация базы данных не соответствует сохраненной конфигурации. Продолжить?.

Есть два выхода:

ВариантКогда выбиратьРиск
Конфигурация → Обновить конфигурацию базы данных (F7)Новая конфигурация загружена полностью, копия базы естьПовторная реструктуризация, нужно время и монопольный доступ
Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БДНе уверены, что загрузка прошла целиком, или нужно срочно вернуть людям базуИзменения в основной конфигурации теряются, обновление придётся начать заново
Восстановление из .dtНи один вариант не сработал, база не открываетсяПотеря данных, введённых после выгрузки

Повторная попытка выглядит так:

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

Если при загрузке файла .cfu или .cf Конфигуратор сам висит на чтении файла, проверьте, что файл обновления подходит к текущему релизу. Обновления типовых конфигураций ставятся последовательно: файл .cfu рассчитан на определённые предыдущие релизы, и перепрыгнуть через несколько версий одним файлом обычно нельзя.

Зависание на обработчиках обновления

После реструктуризации при первом входе в пользовательский режим запускаются обработчики — программа пересчитывает и переносит данные под новый релиз. Окно с текстом про обновление версии программы может висеть 10–40 минут, в крупных базах дольше.

Часть обработчиков отложенная: они идут в фоне уже после того, как пользователи начали работать. Ход отложенной обработки видно в разделе Администрирование → Обслуживание, в группе с результатами обновления. Пока она не закончена, часть отчётов может показывать неполные данные.

Если обработчик падает с ошибкой, обновление откатывается, и при следующем входе всё начнётся снова. Текст ошибки и имя обработчика ищите в журнале регистрации.

Журнал регистрации и технологический журнал: где искать причину

Перезапуск без причины ведёт к повтору зависания. Причину почти всегда видно в журналах.

Журнал регистрации

  • Из Конфигуратора: Администрирование → Журнал регистрации.
  • Из программы на БСП: Администрирование → Обслуживание → Журнал регистрации.

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

Сами файлы журнала лежат:

  • 📁 файловая база — в папке 1Cv8Log внутри каталога базы;
  • 📁 серверная — в srvinfo\reg_1541\<GUID базы>\1Cv8Log на сервере 1С.

Если журнал разросся до нескольких гигабайт, он сам замедляет работу. Сократить его можно в Конфигураторе: Администрирование → Настройка журнала регистрации — там же задаётся сокращение старых записей.

Технологический журнал

Когда в журнале регистрации пусто, а процесс всё равно висит, включают технологический журнал. Создайте файл logcfg.xml в папке conf платформы, например C:\Program Files\1cv8\conf\:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1C_techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

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

Если зависло обновление самой платформы 1С

Платформа и конфигурация обновляются отдельно. Новая версия платформы ставится рядом со старой, в свою папку вида C:\Program Files\1cv8\8.3.xx.xxxx.

Установщик обычно виснет по трём причинам:

  • 🔒 запущены процессы 1cv8.exe, 1cv8c.exe или 1cv8s.exe — закройте все сеансы 1С на компьютере;
  • 🔒 на сервере работает служба агента старой версии — её останавливают перед установкой серверных компонентов, а после установки регистрируют службу уже для новой версии;
  • 🔒 завис предыдущий запуск установщика Windows — проверьте процесс msiexec.exe, при необходимости перезагрузите компьютер.

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

Когда конфигурация требует платформу новее установленной, мастер обновления в программе честно сообщает минимальную версию. Сначала обновите платформу, затем конфигурацию.

Как обновлять 1С, чтобы она не зависала в следующий раз

Перед обновлением
Выполнено: 0 / 6

Ещё несколько правил из практики:

  • 🕘 Время. Обновляйте вечером или в выходной. Так реструктуризации никто не помешает, а ошибку будет время исправить.
  • 🧪 Копия. Для больших и доработанных баз сначала обновите копию. Так вы узнаете реальное время реструктуризации и заранее увидите ошибки обработчиков.
  • 🌐 Сеть. Файловую базу по сети лучше обновлять прямо на компьютере, где она лежит. Обрыв Wi-Fi или VPN посреди реструктуризации — частая причина повреждения 1Cv8.1CD.
  • 📏 Журнал регистрации. Настройте сокращение старых записей, чтобы журнал не разрастался до гигабайтов.
  • 🧰 Тестирование. После неудачного обновления файловой базы запустите Администрирование → Тестирование и исправление в Конфигураторе. Режим требует монопольного доступа.

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

Частые вопросы

Сколько по времени должно длиться обновление 1С?
Небольшая файловая база на 1–3 ГБ обновляется за 5–15 минут. Серверная база на десятки гигабайт — от часа и больше. Точное время покажет пробное обновление копии на том же оборудовании.
Можно ли работать в базе, пока идёт отложенная обработка данных?
Да, для этого её и сделали отложенной. Но отчёты по данным, которые ещё обрабатываются, могут показывать неполные цифры. Важные отчёты формируйте после завершения обработки.
Почему 1С зависает при обновлении через интернет-поддержку?
Чаще всего из-за прокси, антивируса или нехватки места в каталоге шаблонов %APPDATA%\1C\1cv8\tmplts. Если мастер в программе виснет снова и снова, скачайте файл обновления вручную и загрузите его в Конфигураторе.
Что делать, если обновление прервалось из-за отключения электричества?
Для файловой базы — сначала сделайте копию папки базы как есть, затем запустите chdbfl.exe или «Тестирование и исправление». Если ошибки не исправляются, восстановите базу из последней выгрузки .dt.
Нужно ли перезагружать сервер, если обновление зависло?
Обычно нет. Достаточно снять сеансы в консоли администрирования или перезапустить службу агента сервера 1С. Перезагрузку всего сервера оставьте на случай, когда процессы не завершаются никаким другим способом.