1С не даёт обновить базу из-за подключённых пользователей: как освободить её и поставить обновление
Содержание
Чтобы обновить 1С при активных пользователях, базу сначала освобождают: включают блокировку новых сеансов, завершают текущие и только потом запускают «Обновить конфигурацию
базы данных». В типовой конфигурации это делается в режиме 1С:Предприятие через Администрирование → Обслуживание → Блокировка работы пользователей, на сервере — через консоль кластера или утилиту rac, в файловой базе — через тот же механизм блокировки плюс проверку открытых файлов.
Какой способ выбрать, зависит от вида базы и от того, сколько людей в ней работает. Для пяти бухгалтеров в файловой базе хватит блокировки и звонка коллегам. Для сервера на 50 пользователей с регламентными заданиями и обменами — блокировка через консоль или скрипт ночью.
| Способ | Когда подходит | Риск |
|---|---|---|
| Блокировка работы пользователей в программе | Файловая и серверная база, типовая конфигурация на БСП | Минимальный: пользователей предупреждают заранее |
| Консоль администрирования кластера | Клиент-серверная база, нужен быстрый результат | Сеанс рвётся, несохранённые данные теряются |
Утилита rac | Серверная база, автоматизация, ночные обновления | Тот же, плюс ошибка в скрипте ударит по всем базам |
Командная строка 1cv8 DESIGNER | Обновление по расписанию, много баз | Нужен код разрешения и контроль журнала |
| Запросы на стороне СУБД | Только диагностика зависших соединений | Высокий, сеанс 1С при этом обычно остаётся |
Почему обновление базы 1С упирается в активных пользователей
Само обновление конфигурации
проходит в два шага. Сначала обновляется основная конфигурация (из файла .cfu или через поставку). Этот шаг можно делать, пока люди работают. Второй шаг — «Обновить конфигурацию базы данных» — переносит изменения в таблицы. Если релиз меняет структуру данных, платформе нужен монопольный доступ, и тут она натыкается на чужие сеансы.
Сообщения, с которыми чаще всего сталкиваются:
- 🔒
Ошибка установки монопольного режима— в базе есть другие соединения; - 🔒
Ошибка блокировки информационной базы для конфигурирования— конфигурацию уже открыл другой администратор в Конфигураторе; - 🔒 при запуске обработчиков обновления в режиме Предприятия — предупреждение, что в программе работают другие пользователи и обновление нельзя продолжить.
Кто держит базу, кроме людей за компьютерами:
- 👤 забытые сеансы — пользователь закрыл крышку ноутбука, а сеанс висит;
- ⚙️ регламентные и фоновые задания — загрузка курсов валют, обмены, полнотекстовый поиск;
- 🔗 внешние соединения — COM-подключение из другой программы, веб-сервисы, HTTP-сервисы публикации, мобильное приложение;
- 🛠 второй Конфигуратор у коллеги-программиста.
Посмотреть список можно в программе (Администрирование → Обслуживание → Активные пользователи) или в Конфигураторе: Администрирование → Активные пользователи. Колонка с приложением сразу показывает, кто это: тонкий клиент, фоновое задание, COM-соединение или Конфигуратор.
Если структура данных в релизе не менялась, платформа предложит динамическое обновление — без выгона пользователей. Новые настройки они увидят после перезапуска программы. Для крупных релизов с изменением структуры этот вариант не сработает.
Подготовка к обновлению: что сделать до выгона пользователей
Порядок действий важнее скорости. Если сначала выгнать людей, а потом выяснить, что нет копии, базу всё равно придётся держать закрытой дольше.
- Выберите окно — вечер, обед, выходной. Предупредите пользователей сообщением или в общем чате минимум за 15–30 минут.
- Сделайте резервную копию. Для файловой базы — копия каталога с файлом
1Cv8.1CDили выгрузка.dt. Для серверной — бэкап средствами СУБД. - Подготовьте код разрешения — любое слово или число, например
upd2025. С ним администратор войдёт в заблокированную базу. - Проверьте версию платформы: в описании релиза указано, какой номер платформы нужен. Номер установленной должен быть не ниже требуемого.
- Обновите основную конфигурацию заранее, пока люди работают. На закрытую базу останется только шаг «Обновить конфигурацию базы данных».
Без резервной копии не запускайте обновление базы данных — откатить реструктуризацию без неё нельзя.
Способ 1. Блокировка работы пользователей в самой программе
Это самый мягкий путь. Он есть во всех конфигурациях на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, ERP, УНФ. Работает и в файловой, и в клиент-серверной базе.
Как включить блокировку
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей. - Установите флажок блокировки, задайте время начала и окончания.
- В поле сообщения напишите понятный текст: «Обновление программы с 19:00 до 20:00».
- Укажите код разрешения — тот, что придумали на этапе подготовки.
- Нажмите «Установить».
После этого новые входы запрещены. Тем, кто уже работает, программа показывает предупреждение и через несколько минут завершает их сеансы. В серверной базе блокировку можно заодно распространить на регламентные задания — в этой же форме есть отдельная настройка.
Как войти в заблокированную базу
Администратор запускает Конфигуратор или Предприятие с параметром /UC и кодом разрешения. В окне запуска: выделите базу, нажмите «Изменить», на последнем шаге в поле дополнительных параметров укажите:
/UCupd2025
Без этого параметра заблокированная база не пустит и вас.
Не забудьте снять блокировку после обновления. Если время окончания не задано, база останется закрытой до утра, а пользователи будут видеть ваше сообщение.
Способ 2. Завершение сеансов в консоли администрирования кластера
Для клиент-серверной базы это самый быстрый способ, когда кто-то «не выходит» или висит забытый сеанс.
Блокировка начала сеансов
- Запустите «Администрирование серверов 1С Предприятия».
- Разверните
Кластеры → <кластер> → Информационные базы, откройте свойства нужной базы. - Включите «Блокировка начала сеансов включена», заполните сообщение и «Код разрешения».
- При необходимости включите «Блокировка регламентных заданий включена».
- Сохраните.
Удаление сеансов
- Под базой откройте ветку «Сеансы».
- Отсортируйте по колонке приложения: отдельно видны тонкие клиенты, фоновые задания, Конфигураторы.
- Выделите сеансы, правой кнопкой — «Удалить».
Удаление сеанса обрывает работу пользователя без сохранения: незаписанный документ пропадёт. Делайте это после предупреждения и только в согласованное окно.
Если консоль не открывается или не видит кластер, проверьте, что radmin.dll зарегистрирована для той же версии и разрядности платформы, что и сервер. После обновления платформы её часто приходится перерегистрировать командой regsvr32 из каталога bin новой версии.
Способ 3. Монопольный режим в файловой базе
В файловой базе нет консоли кластера. Блокировку держит файл 1Cv8.1CL в каталоге базы, а сеансы — это процессы 1cv8.exe или 1cv8c.exe на компьютерах пользователей.
Пошагово
- Включите блокировку из способа 1 — она работает и для файловой базы.
- Откройте список активных пользователей и убедитесь, что остались только вы.
- Если база лежит в общей папке на Windows-сервере, проверьте, кто держит файлы:
Управление компьютером → Служебные программы → Общие папки → Открытые файлы. Там видно, с какого компьютера открыт1Cv8.1CD. - Если пользователь недоступен, а сеанс висит, закройте файл в этом списке или завершите процесс 1С на его компьютере.
- Запустите Конфигуратор с
/UCи выполните «Обновить конфигурацию базы данных».
Файл 1Cv8.1CL удаляют только тогда, когда точно никто не работает и процессы 1С на всех машинах закрыты. Если удалить его при живом сеансе, можно повредить базу. Сначала закройте сеансы, потом — файл.
Частый случай в небольших офисах: база на компьютере главбуха, а «висит» кладовщик, который ушёл домой и не закрыл программу. Пять минут в «Открытых файлах» быстрее, чем поиск ключей от кабинета.
Способ 4. Обновление 1С из командной строки
Командная строка нужна, когда баз несколько или обновление ставится на ночь планировщиком. Схема: заблокировать вход , завершить сеансы, обновить, снять блокировку.
Серверная база: блокировка через rac
Утилита rac работает через агент сервера (ras должен быть запущен). Сначала узнайте идентификаторы:
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
Включите блокировку сеансов и регламентных заданий:
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
--infobase-user=Администратор --infobase-pwd=*** ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Обновление программы" --permission-code=upd2025
Посмотрите сеансы и завершите оставшиеся:
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если в кластере задан администратор, добавьте параметры его логина и пароля. Точный список ключей для вашей версии — в rac help.
Обновление базы данных
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /S "srv1c\buh" ^
/N "Администратор" /P "***" /UCupd2025 ^
/UpdateDBCfg /Out "C:\upd\log.txt"
Для файловой базы вместо /S укажите путь: /F "D:\Bases\Buh". Если вы ещё не применили файл обновления, перед /UpdateDBCfg добавьте /UpdateCfg "C:\upd\1Cv8.cfu".
После завершения откройте журнал /Out. По сообщениям об успешном завершении или ошибке реструктуризации сразу видно, можно ли снимать блокировку.
Снять блокировку
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
--infobase-user=Администратор --infobase-pwd=*** ^
--sessions-deny=off --scheduled-jobs-deny=off
Для типовых конфигураций есть параметры запуска БСП в режиме Предприятия: /C"ЗавершитьРаботуПользователей" вместе с /UC ставит блокировку и выгоняет сеансы, /C"РазрешитьРаботуПользователей" снимает её. Это удобно для файловых баз, где rac не применим.
Почему не стоит завершать сеансы запросами в СУБД
На форумах часто советуют «убить» соединения прямо в SQL Server (KILL) или PostgreSQL (pg_terminate_backend). Для 1С это работает не так, как кажется.
- 🧩 Соединения с СУБД держит рабочий процесс сервера 1С, а не пользователь. Обрыв соединения не завершает сеанс 1С: рабочий процесс переподключится.
- 💥 Транзакция, которая шла в этот момент, откатится. Пользователь получит ошибку, а у фонового задания может остаться недоделанный обмен.
- 🚫 Перевод базы в однопользовательский режим на стороне СУБД закроет доступ и самому серверу 1С — обновить базу из Конфигуратора не получится.
Запросы в СУБД уместны для диагностики: посмотреть, какое соединение держит блокировку таблицы и как долго. Само завершение — через консоль кластера или rac. Если сеанс не удаляется даже из консоли, перезапускают рабочий процесс или службу сервера 1С. Перезапуск службы обрывает сеансы во всех базах кластера — только в согласованное окно и после предупреждения всех пользователей сервера.
Как не упираться в активные сеансы при каждом обновлении
- 📅 Закрепите регламент: обновления — в определённый день и час, пользователи знают об этом заранее.
- ⏰ В серверной базе ставьте блокировку с временем начала: сообщение увидят все, кто работает, ещё до выгона.
- 🔁 Обновляйте основную конфигурацию днём, а на закрытую базу оставляйте только обновление БД — окно сократится.
- 🌙 Для нескольких баз соберите bat-скрипт из способа 4 и запускайте его планировщиком Windows ночью.
- 🧹 Проверьте, какие внешние программы подключаются к базе через COM или веб-сервисы, и остановите их на время обновления.
- 🧾 В клиент-серверной базе в Конфигураторе есть фоновое обновление конфигурации базы данных: реструктуризация идёт, пока люди работают, а монопольный доступ нужен только на короткий финальный шаг принятия изменений.
После обновления базы данных первым входит администратор в режиме Предприятия. Программа выполнит обработчики обновления, и только потом стоит снимать блокировку. Отложенные обработчики дорабатывают в фоне уже при работе пользователей.