Обновление 1С заблокировано сеансами: выгоняем пользователей из базы

· 9 мин

Содержание

Конфигуратор пишет, что для обновления нужен монопольный доступ, а в базе кто-то сидит. Первая мысль: убить процессы 1cv8.exe на сервере. Не надо. Так вы оставите в базе незавершённые транзакции и зависшие блокировки.

Правильный порядок такой: запретить новые входы, предупредить людей, закрыть сеансы штатно, а оставшиеся завершить принудительно. Ниже всё по шагам: как убрать активных пользователей в 1С 8.3 при обновлении в файловой и клиент-серверной базе и что делать, если сеанс не закрывается.

Почему базу нельзя обновить, пока в ней работают

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

Мешать могут не только живые люди:

  • 👤 пользователи, которые ушли обедать и не закрыли 1С;
  • 🕘 сеансы, оставшиеся с вечера на чьём-то компьютере;
  • ⚙️ фоновые и регламентные задания (обмены, загрузка курсов, проверка контрагентов);
  • 🌐 подключения через веб-клиент, тонкий клиент по HTTP, веб-сервисы и COM;
  • 🖥 сеансы самого Конфигуратора, открытые другим администратором.

Поэтому сначала нужно увидеть полный список: кто и откуда подключён.

Шаг 1. Где посмотреть активных пользователей в 1С 8.3

Есть три места, выбирайте по ситуации.

СпособГде открытьКогда подходит
Из программыраздел «Администрирование», группа «Поддержка и обслуживание», ссылка «Активные пользователи»вы вошли с правами администратора, база работает
Из Конфигуратораменю Администрирование → Активные пользователибаза уже открыта в Конфигураторе
Консоль кластераЦентральные серверы → кластер → Информационные базы → ваша база → Сеансыклиент-серверный вариант, нужен полный контроль

Если ссылки в разделе нет, откройте «Все функции» (при необходимости включите их в настройках интерфейса) и найдите обработку по слову «Активные». Расположение пункта немного отличается в разных конфигурациях и релизах.

В списке видны имя пользователя, компьютер, тип приложения и время начала сеанса. Тип приложения важен: Конфигуратор, Тонкий клиент, Веб-клиент, Фоновое задание. Последние два вида пользователи сами не закроют.

Запишите для себя тех, кто «висит» с утра и ничего не делает. С ними разговор короткий, а вот сеансы с активной записью лучше не рубить.

Шаг 2. Как закрыть активных пользователей в 1С 8.3 при обновлении штатно

Сначала нужно запретить новые входы, иначе люди будут возвращаться в базу, пока вы их выгоняете.

  1. Откройте форму «Активные пользователи» или «Блокировка работы пользователей» (в конфигурациях на БСП она доступна администратору).
  2. Включите блокировку начала сеансов и задайте время начала и окончания.
  3. Напишите сообщение, которое увидят пытающиеся войти. Например: Идёт обновление программы, вход закрыт до 19:30.
  4. Задайте код разрешения. С ним вы сможете войти сами, пока остальным вход закрыт.
  5. Предупредите людей лично или в рабочем чате минут за 10-15.

Своё подключение при блокировке запускайте с параметром:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /IBName "Бухгалтерия" /UC "РазрешитьВход"

Здесь РазрешитьВход — тот самый код разрешения, который вы задали в пункте 4 списка выше. Номер версии платформы подставьте свой.

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

Что увидят пользователи

Когда подходит время блокировки, у человека в программе появляется предупреждение, а затем сеанс завершается. Несохранённые данные в открытых формах пропадут. Это нужно сказать заранее, иначе вечером получите звонок про «исчезнувший» документ.

Шаг 3. Как убрать активных пользователей в 1С 8.3 принудительно

Если кто-то не отреагировал, сеанс можно завершить из списка активных пользователей.

В файловой базе

В файловом варианте нет сервера, который хранит сеансы, поэтому завершить чужой сеанс из программы нельзя. Остаётся три пути:

  • 📞 позвонить владельцу сеанса и попросить закрыть программу;
  • 🖥 зайти на его компьютер и закрыть 1С;
  • 📁 найти по имени компьютера из списка активных и завершить процесс там.

Файл блокировки 1Cv8.cdn в папке базы вручную удалять не стоит: пока сеанс жив, платформа его пересоздаёт, а при ошибке можно повредить базу.

В клиент-серверной базе

Здесь всё проще, сеансы живут на сервере и управляются из консоли кластера:

  1. Запустите консоль серверов 1С (или оснастку администрирования кластера).
  2. Раскройте Центральные серверы → кластер → Информационные базы.
  3. Выберите нужную базу, раздел «Сеансы».
  4. Выделите сеанс, нажмите «Удалить» (в части версий — «Завершить»).
  5. Для порядка проверьте и раздел «Соединения»: там остаются подключения, которые не закрылись вместе с сеансами.

В свойствах самой информационной базы в консоли есть два флажка, которые удобно включать на время обновления: «Блокировка начала сеансов включена» и «Блокировка регламентных заданий включена». Второй не даст фоновым заданиям захватить базу сразу после того, как вы выгнали людей.

Делаете обновления часто? Включите блокировку регламентных заданий заранее, за 5-10 минут до работ. Тогда задание, запущенное «на минуточку» в последний момент, не окажется в списке мешающих.

Шаг 4. Что делать, если сеанс не закрывается

Такое бывает: сеанс стёрт, а через секунду появился снова, или строка в списке не исчезает.

Проверьте по порядку:

  • 🔁 сеанс возвращается — у пользователя открыт ещё один экземпляр 1С или запущена автоматизация (например, обмен по расписанию). Блокировка входа не включена или у запускающей стороны есть код разрешения;
  • 🧟 сеанс «мёртвый» — компьютер выключился, а на сервере запись осталась. Такие записи обычно исчезают по таймауту, но быстрее удалить их в консоли;
  • 🌐 веб-клиент или сервис — закрывается через стоп соответствующего подключения либо перезапуск веб-публикации;
  • 🛠 Конфигуратор у коллеги — в списке тип приложения Конфигуратор, спросите, кто работает.

Если ничего не помогло и на сервере нет других баз, допустим перезапуск службы агента сервера 1С. Это крайняя мера: она оборвёт сеансы всех баз кластера сразу.

Шаг 5. Монопольный режим: как войти и обновлять

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

В Конфигураторе при открытии базы выберите режим «Монопольно», либо при запуске укажите параметр командной строки. Обновление релиза через поставку (.cfu) делается так:

  1. Откройте базу в Конфигураторе монопольно.
  2. Выберите Конфигурация → Поддержка → Обновить конфигурацию.
  3. Укажите файл обновления и пройдите мастер.
  4. После этого примите изменения структуры базы данных (Конфигурация → Обновить конфигурацию базы данных) и снимите блокировку входа.

Обновляете из самой программы по кнопке (в типовых конфигурациях с БСП)? Тогда помощник сам предложит заблокировать работу и закрыть сеансы, а вам останется убедиться, что список активных пользователей пуст.

Перед обновлением сделайте выгрузку информационной базы (.dt) или копию каталога файловой базы. Без копии не начинайте обновление.

Перед запуском обновления
Выполнено: 0 / 5

Завершение сеансов из командной строки

На сервере с несколькими базами удобно не кликать в консоли, а использовать утилиту администрирования rac. Она лежит рядом с ragent в каталоге bin платформы.

Порядок такой:

  1. Узнайте идентификатор кластера: rac cluster list.
  2. Найдите идентификатор базы: rac infobase summary list --cluster=<идентификатор кластера>.
  3. Выведите сеансы базы: rac session list --cluster=<кластер> --infobase=<база>.
  4. Завершите нужный сеанс: rac session terminate --cluster=<кластер> --session=<идентификатор сеанса>.

Если у кластера задан администратор, добавьте параметры --cluster-user и --cluster-pwd. Службу RAS перед этим нужно запустить.

Такой набор команд удобно сложить в bat-файл с блокировкой входа в начале и снятием в конце. Проверьте его на тестовой базе, а не на рабочей.

Какой способ выбрать

Не всегда нужен полный набор действий. Ориентируйтесь на вариант базы и на то, сколько людей в ней работает.

Какая у вас база и сколько в ней пользователей?

Как снять блокировку после обновления

Блокировка не снимается сама, если вы задали её без срока окончания. Выключите флажок в форме блокировки (или в свойствах базы в консоли кластера) и убедитесь, что обычный пользователь может войти без кода разрешения.

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

Примерный график вечернего обновления

Для базы на 10-15 человек обычно хватает полутора-двух часов. Ориентировочный план:

Окно обновления
  1. объявить окно и время блокировки в рабочем чатеЗа день
  2. напомнить, что нужно сохранить документы и выйтиЗа 15 минут
  3. включить блокировку входа и регламентных заданийНачало окна
  4. проверить список активных, завершить оставшиеся сеансы+10 минут
  5. сделать копию базы и войти монопольно+15 минут
  6. обновить конфигурацию и структуру базы данных+20-60 минут
  7. снять блокировки, зайти обычным пользователем, проверить ключевые документыФинал

Время на обновление структуры зависит от размера базы и скорости диска: на небольшой базе это минуты, на крупной — час и больше. Не обещайте людям точное время выхода заранее, назовите запас.

Частые ошибки и как их избежать

  • ❌ Завершили процессы в диспетчере задач вместо закрытия сеансов. Итог: оборванные транзакции, ошибки блокировок.
  • ❌ Закрыли пользователей, но не отключили фоновые задания. Через минуту базу снова занял обмен.
  • ❌ Забыли задать код разрешения и не смогли зайти сами.
  • ❌ Назначили блокировку «с 18:00 по 18:30» и не продлили, когда обновление затянулось. В 18:30 люди вошли в наполовину обновлённую базу.
  • ❌ Не предупредили людей. Несохранённые документы потеряны.

Как сделать так, чтобы обновление не упиралось в сеансы

Большинство проблем появляется не из-за платформы, а из-за отсутствия регламента. Один раз договоритесь с бухгалтерами и закрепите правила, дальше обновления идут без нервов.

  • 🗓 Назначьте окно обслуживания (например, после 19:00 или в выходной) и объявите его заранее.
  • ⏰ Ставьте блокировку входа по расписанию, а не вручную в момент работ.
  • 🔔 Просите завершать работу в конце дня, а не оставлять 1С открытой на ночь.
  • 📋 Держите под рукой чек-лист и порядок действий, чтобы любой администратор мог провести обновление.
  • 🧪 Сначала обновляйте копию базы на тестовой площадке: так вы заранее увидите, сколько длится обновление и какие сеансы мешают.
  • 👥 Назначьте ответственного, который в день работ проверяет список активных пользователей и отвечает на вопросы коллег.

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

Можно ли обновить 1С, если пользователи не вышли?
Нет. Для обновления конфигурации базы данных нужен монопольный доступ, платформа откажет, пока есть другие сеансы.
Что будет с несохранёнными данными при завершении сеанса?
Они не сохранятся. Проведённые и записанные документы останутся в базе, открытые черновики в формах пропадут.
Как закрыть сеанс, если у меня только файловая база?
Только на стороне компьютера пользователя: попросить закрыть программу или завершить её там. Из списка активных пользователей файловой базы сеанс удалить нельзя.
Нужно ли останавливать сервер 1С ради обновления одной базы?
Нет. Достаточно заблокировать вход в нужную базу и завершить её сеансы в консоли. Остальные базы кластера продолжат работать.
Почему после блокировки я сам не могу войти?
Вы запускаете 1С без кода разрешения. Добавьте параметр /UC с тем кодом, который указали в форме блокировки.
Нужно ли отключать регламентные задания?
Да, на время обновления. Иначе фоновое задание может занять базу сразу после выхода пользователей.