1С не даёт обновить базу из-за подключённых пользователей: как освободить её и поставить обновление

· 9 мин

Содержание

Чтобы обновить 1С при активных пользователях, базу сначала освобождают: включают блокировку новых сеансов, завершают текущие и только потом запускают «Обновить конфигурацию базы данных». В типовой конфигурации это делается в режиме 1С:Предприятие через Администрирование → Обслуживание → Блокировка работы пользователей, на сервере — через консоль кластера или утилиту rac, в файловой базе — через тот же механизм блокировки плюс проверку открытых файлов.

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

СпособКогда подходитРиск
Блокировка работы пользователей в программеФайловая и серверная база, типовая конфигурация на БСПМинимальный: пользователей предупреждают заранее
Консоль администрирования кластераКлиент-серверная база, нужен быстрый результатСеанс рвётся, несохранённые данные теряются
Утилита racСерверная база, автоматизация, ночные обновленияТот же, плюс ошибка в скрипте ударит по всем базам
Командная строка 1cv8 DESIGNERОбновление по расписанию, много базНужен код разрешения и контроль журнала
Запросы на стороне СУБДТолько диагностика зависших соединенийВысокий, сеанс 1С при этом обычно остаётся

Почему обновление базы 1С упирается в активных пользователей

Само обновление конфигурации проходит в два шага. Сначала обновляется основная конфигурация (из файла .cfu или через поставку). Этот шаг можно делать, пока люди работают. Второй шаг — «Обновить конфигурацию базы данных» — переносит изменения в таблицы. Если релиз меняет структуру данных, платформе нужен монопольный доступ, и тут она натыкается на чужие сеансы.

Сообщения, с которыми чаще всего сталкиваются:

  • 🔒 Ошибка установки монопольного режима — в базе есть другие соединения;
  • 🔒 Ошибка блокировки информационной базы для конфигурирования — конфигурацию уже открыл другой администратор в Конфигураторе;
  • 🔒 при запуске обработчиков обновления в режиме Предприятия — предупреждение, что в программе работают другие пользователи и обновление нельзя продолжить.

Кто держит базу, кроме людей за компьютерами:

  • 👤 забытые сеансы — пользователь закрыл крышку ноутбука, а сеанс висит;
  • ⚙️ регламентные и фоновые задания — загрузка курсов валют, обмены, полнотекстовый поиск;
  • 🔗 внешние соединения — COM-подключение из другой программы, веб-сервисы, HTTP-сервисы публикации, мобильное приложение;
  • 🛠 второй Конфигуратор у коллеги-программиста.

Посмотреть список можно в программе (Администрирование → Обслуживание → Активные пользователи) или в Конфигураторе: Администрирование → Активные пользователи. Колонка с приложением сразу показывает, кто это: тонкий клиент, фоновое задание, COM-соединение или Конфигуратор.

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

Подготовка к обновлению: что сделать до выгона пользователей

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

  1. Выберите окно — вечер, обед, выходной. Предупредите пользователей сообщением или в общем чате минимум за 15–30 минут.
  2. Сделайте резервную копию. Для файловой базы — копия каталога с файлом 1Cv8.1CD или выгрузка .dt. Для серверной — бэкап средствами СУБД.
  3. Подготовьте код разрешения — любое слово или число, например upd2025. С ним администратор войдёт в заблокированную базу.
  4. Проверьте версию платформы: в описании релиза указано, какой номер платформы нужен. Номер установленной должен быть не ниже требуемого.
  5. Обновите основную конфигурацию заранее, пока люди работают. На закрытую базу останется только шаг «Обновить конфигурацию базы данных».

Без резервной копии не запускайте обновление базы данных — откатить реструктуризацию без неё нельзя.

Перед тем как закрыть базу
Выполнено: 0 / 5

Способ 1. Блокировка работы пользователей в самой программе

Это самый мягкий путь. Он есть во всех конфигурациях на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, ERP, УНФ. Работает и в файловой, и в клиент-серверной базе.

Как включить блокировку

  1. Откройте Администрирование → Обслуживание → Блокировка работы пользователей.
  2. Установите флажок блокировки, задайте время начала и окончания.
  3. В поле сообщения напишите понятный текст: «Обновление программы с 19:00 до 20:00».
  4. Укажите код разрешения — тот, что придумали на этапе подготовки.
  5. Нажмите «Установить».

После этого новые входы запрещены. Тем, кто уже работает, программа показывает предупреждение и через несколько минут завершает их сеансы. В серверной базе блокировку можно заодно распространить на регламентные задания — в этой же форме есть отдельная настройка.

Как войти в заблокированную базу

Администратор запускает Конфигуратор или Предприятие с параметром /UC и кодом разрешения. В окне запуска: выделите базу, нажмите «Изменить», на последнем шаге в поле дополнительных параметров укажите:

/UCupd2025

Без этого параметра заблокированная база не пустит и вас.

Не забудьте снять блокировку после обновления. Если время окончания не задано, база останется закрытой до утра, а пользователи будут видеть ваше сообщение.

Способ 2. Завершение сеансов в консоли администрирования кластера

Для клиент-серверной базы это самый быстрый способ, когда кто-то «не выходит» или висит забытый сеанс.

Блокировка начала сеансов

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

Удаление сеансов

  1. Под базой откройте ветку «Сеансы».
  2. Отсортируйте по колонке приложения: отдельно видны тонкие клиенты, фоновые задания, Конфигураторы.
  3. Выделите сеансы, правой кнопкой — «Удалить».

Удаление сеанса обрывает работу пользователя без сохранения: незаписанный документ пропадёт. Делайте это после предупреждения и только в согласованное окно.

Если консоль не открывается или не видит кластер, проверьте, что radmin.dll зарегистрирована для той же версии и разрядности платформы, что и сервер. После обновления платформы её часто приходится перерегистрировать командой regsvr32 из каталога bin новой версии.

Способ 3. Монопольный режим в файловой базе

В файловой базе нет консоли кластера. Блокировку держит файл 1Cv8.1CL в каталоге базы, а сеансы — это процессы 1cv8.exe или 1cv8c.exe на компьютерах пользователей.

Пошагово

  1. Включите блокировку из способа 1 — она работает и для файловой базы.
  2. Откройте список активных пользователей и убедитесь, что остались только вы.
  3. Если база лежит в общей папке на Windows-сервере, проверьте, кто держит файлы: Управление компьютером → Служебные программы → Общие папки → Открытые файлы. Там видно, с какого компьютера открыт 1Cv8.1CD.
  4. Если пользователь недоступен, а сеанс висит, закройте файл в этом списке или завершите процесс 1С на его компьютере.
  5. Запустите Конфигуратор с /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 или веб-сервисы, и остановите их на время обновления.
  • 🧾 В клиент-серверной базе в Конфигураторе есть фоновое обновление конфигурации базы данных: реструктуризация идёт, пока люди работают, а монопольный доступ нужен только на короткий финальный шаг принятия изменений.

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

Ошибки, из-за которых обновление срывается

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

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

Можно ли обновить 1С, не выгоняя пользователей вообще?
Да, если релиз не меняет структуру базы данных: платформа предложит динамическое обновление. Пользователи увидят изменения после перезапуска. Крупные релизы типовых конфигураций почти всегда требуют монопольного доступа.
Сколько времени база будет закрыта?
Зависит от размера и изменений. Для файловой базы в несколько гигабайт — обычно минуты, для серверной базы на сотни гигабайт реструктуризация может идти часами. Узнать заранее помогает пробное обновление на копии.
Что будет с документом, который пользователь не успел записать?
При удалении сеанса он пропадёт. Записанные и проведённые документы сохраняются, поэтому пользователей предупреждают заранее.
Нужно ли блокировать базу при обновлении платформы?
Для установки новой версии на клиентские компьютеры — нет. Для обновления сервера 1С служба перезапускается, и сеансы во всех базах кластера оборвутся.
Где посмотреть, кто сейчас в базе, если программа не открывается?
В серверной базе — в консоли кластера, ветка «Сеансы». В файловой — в списке открытых файлов на компьютере, где лежит база.