Освобождаем файловую базу 1С: как завершить чужие сеансы перед обновлением
Содержание
Чтобы выкинуть пользователей из файловой базы 1С, сначала установите блокировку входа: в типовых конфигурациях это Администрирование → Обслуживание → Блокировка работы пользователей. Программа предупредит всех, кто в базе, и сама завершит их сеансы. Если кто-то «завис» и не уходит, закройте файл 1Cv8.1CD на компьютере, где лежит база: оснастка «Общие папки» → «Открытые файлы» или команда net file.
В файловом варианте нет кластера серверов, поэтому кнопка «Завершить сеанс», привычная по клиент-серверу, здесь не помогает. Удаление сеансов в файловой базе — это либо мягкое выпроваживание силами самой программы, либо жёсткое закрытие файла средствами Windows. Ниже оба пути, плюс разбор служебных файлов, прав на папку и ошибки монопольного режима.
Кто сидит в базе и почему не даёт монопольный режим
Монопольный режим нужен не всегда. Он требуется для обновления конфигурации с изменением структуры, загрузки .dt, тестирования и исправления базы. Обычный вход в Конфигуратор для просмотра или выгрузки .dt работает и при подключённых пользователях.
Если при обновлении появляется сообщение со словами «монопольный режим» или «Ошибка блокировки информационной базы для конфигурирования», к базе кто-то подключён. Первым делом посмотрите, кто именно.
Где смотреть список сеансов
📋 Три места, где виден список:
- В режиме «Предприятие»:
Администрирование → Обслуживание → Активные пользователи. - Если раздела нет или конфигурация нетиповая:
Главное меню → Все функции → Стандартные → Активные пользователи. Если пункта «Все функции» нет, включите его вСервис и настройки → Параметры, флажок «Отображать команду “Все функции”». - В Конфигураторе:
Администрирование → Активные пользователи.
В списке видно имя пользователя, компьютер, приложение и время начала работы. Колонка «Приложение» подсказывает, где искать виновника.
| Приложение в списке | Кто это на самом деле | Где закрывать |
|---|---|---|
| Тонкий или толстый клиент | Обычный пользователь | Попросить выйти или закрыть файл на сервере |
| Конфигуратор | Второй администратор или ваше же окно | Найти окно Конфигуратора на указанном компьютере |
| COM-соединение | Внешняя программа: обмен с сайтом, отчётная система, скрипт | Остановить программу или службу, которая подключается |
| Фоновое задание | Задание, запущенное из чьего-то сеанса | Завершится вместе с сеансом-хозяином |
| Веб-сервер / Веб-клиент | База опубликована через Apache или IIS | Остановить пул приложений или службу веб-сервера |
💡 Самые упорные «невидимки» — COM-соединения и веб-публикации. Человека за ними нет, и просить некого. Если сеанс снова и снова появляется через минуту после закрытия, ищите службу, планировщик заданий Windows или веб-сервер.
Блокировка входа: мягкий способ выпроводить всех
Это основной и самый безопасный путь. Пользователи получают предупреждение, успевают записать документы, а программа сама закрывает их сеансы. Работает в типовых конфигурациях на Библиотеке стандартных подсистем: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP, УНФ.
Как включить блокировку
- Зайдите в базу пользователем с полными правами.
- Откройте
Администрирование → Обслуживание. Ссылка «Блокировка работы пользователей» находится среди служебных команд раздела, в некоторых релизах внутри свёрнутой группы. - Укажите время начала и окончания блокировки, текст сообщения для пользователей.
- Задайте код разрешения, например
KOD777. Он нужен, чтобы вы сами могли войти в заблокированную базу. - Нажмите «Установить блокировку».
За несколько минут до начала пользователи увидят предупреждение. В момент начала их сеансы закроются. Ваш сеанс тоже будет завершён, поэтому заходите обратно уже с кодом.
Как войти в заблокированную базу
Код разрешения передаётся параметром запуска /UC. В окне выбора баз нажмите «Изменить», дойдите до последней страницы и впишите в поле «Дополнительные параметры запуска»:
/UCKOD777
Тот же параметр работает и для Конфигуратора. Без него вы получите сообщение, что база заблокирована.
⚠️ После работ снимите блокировку той же формой. Если вы задали время окончания, блокировка снимется сама, но лучше не полагаться на это: при затянувшемся обновлении люди начнут заходить в базу посреди процесса.
Блокировка из командной строки
Для ночного обслуживания удобнее запускать блокировку параметром /C. Библиотека стандартных подсистем понимает команды ЗавершитьРаботуПользователей и РазрешитьРаботуПользователей. Пример bat-файла с выгрузкой базы в .dt между ними:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=/F"D:\Bases\Buh"
set USR=/N"Администратор" /P"пароль"
rem 1. Выпроводить пользователей и закрыть вход
%V8% ENTERPRISE %BASE% %USR% /C"ЗавершитьРаботуПользователей" /UC"KOD777" /DisableStartupMessages
rem 2. Выгрузить базу в .dt
%V8% DESIGNER %BASE% %USR% /UC"KOD777" /DumpIB"E:\Backup\buh.dt" /Out"E:\Backup\log.txt"
rem 3. Открыть вход
%V8% ENTERPRISE %BASE% %USR% /C"РазрешитьРаботуПользователей" /UC"KOD777" /DisableStartupMessages
Номер версии платформы в пути замените на свой: посмотреть его можно в папке C:\Program Files\1cv8. Пароль в bat-файле храните в папке, к которой у пользователей нет доступа.
💡 Блокировка не выгонит пользователя, у которого открыт модальный диалог или зависла длительная операция. Таких добивают вторым способом.
Принудительное закрытие сеансов средствами Windows
Если мягкий способ не сработал, остаётся закрыть процесс или файл. Пользователь потеряет несохранённые изменения в открытых формах. Записанные и проведённые документы останутся.
Не закрывайте файл базы, пока идёт обновление конфигурации , загрузка .dt или тестирование и исправление: прерывание этих операций может повредить базу.
База лежит в сетевой папке
Сеанс в файловой базе — это открытый по сети файл 1Cv8.1CD. Закрыть его можно на компьютере, где физически лежит база.
- Нажмите
Win+R, введитеfsmgmt.msc. - Откройте «Общие папки → Открытые файлы».
- Отсортируйте по колонке «Открытые файлы», найдите строки с
1Cv8.1CD. В колонке «Доступ» указан пользователь Windows. - Правой кнопкой по нужной строке → «Закрыть открытый файл».
То же самое из командной строки, запущенной от администратора:
rem список открытых по сети файлов с идентификаторами
net file
rem закрыть файл по идентификатору из первой колонки
net file 117 /close
У пользователя появится ошибка доступа к базе, и клиент 1С закроется или перестанет отвечать. После этого он может спокойно войти заново, когда вы снимете блокировку.
Пользователи работают через терминальный сервер
Здесь файл открыт процессами на самом терминальном сервере, и в «Открытых файлах» вы увидите одну учётную запись сервера, а не людей. Работайте с процессами:
- 🖥 Диспетчер задач → вкладка «Пользователи» → правой кнопкой по пользователю → «Выйти» или раскрыть и завершить только
1cv8.exe/1cv8c.exe. - ⌨️ Завершить 1С конкретного пользователя командой:
taskkill /F /IM 1cv8c.exe /FI "USERNAME eq ivanov"
taskkill /F /IM 1cv8.exe /FI "USERNAME eq ivanov"
Команда taskkill /F /IM 1cv8.exe без фильтра по пользователю закроет 1С у всех на сервере, включая ваш Конфигуратор и других пользователей, которые работают в других базах.
База опубликована на веб-сервере
При работе через веб-клиент или тонкий клиент по HTTP файл держит процесс веб-сервера. Перезапустите пул приложений в IIS или службу Apache. Это оборвёт сеансы всех, кто работает через публикацию.
Служебные файлы в каталоге базы
В папке файловой базы, кроме основного файла данных, лежат служебные файлы. Их нужно знать, чтобы не удалить лишнее.
| Файл или папка | Что это | Можно ли удалять |
|---|---|---|
1Cv8.1CD | Вся база: данные, конфигурация, пользователи | ❌ Никогда |
1Cv8Log | Журнал регистрации | ❌ Нет, пропадёт история действий |
1Cv8.1CL | Служебный файл блокировки, создаётся при работе Конфигуратора | ⚠️ Только когда к базе никто не подключён |
1Cv8tmp.1CD | Временный файл, может остаться после сбоя | ⚠️ Только когда к базе никто не подключён |
Сам по себе служебный файл блокировки не держит пользователей в базе. Если файл остался после аварийного закрытия Конфигуратора, а сеансов в списке нет, его удаление может снять ошибку блокировки для конфигурирования.
Порядок действий:
- Убедитесь, что в «Открытых файлах» на сервере нет строк с файлами этой базы.
- Скопируйте папку базы целиком в другое место.
- Только после этого удаляйте
1Cv8.1CL.
Если Windows отказывается удалить файл со словами «файл открыт в другой программе», значит, процесс 1С ещё жив. Вернитесь к закрытию сеансов, а не ищите способ удалить файл силой.
Временный запрет доступа через права на папку
Этот способ не выгоняет пользователей сам по себе, зато надёжно не пускает новых. Он полезен, когда конфигурация нетиповая и блокировки входа в ней нет, или когда кто-то упорно перезаходит.
Для работы с файловой базой пользователю Windows нужны права на чтение и запись в папку базы. Отберите их на время работ:
- Правой кнопкой по папке базы → «Свойства» → вкладка «Безопасность».
- Для группы пользователей 1С снимите разрешение «Изменение» или временно уберите группу из списка.
- Закройте открытые файлы способом из предыдущего раздела.
- Выполните работы.
- Верните разрешения так, как было.
Есть и более грубый вариант: на вкладке «Доступ» временно прекратить общий доступ к сетевой папке. Все подключения по сети оборвутся сразу.
💡 Перед изменением прав сделайте снимок текущих разрешений, чтобы точно вернуть их:
icacls "D:\Bases\Buh" /save "E:\Backup\buh_acl.txt"
rem восстановление после работ
icacls "D:\Bases" /restore "E:\Backup\buh_acl.txt"
При восстановлении icacls указывают родительскую папку, а не саму папку базы: так устроен формат сохранённого файла.
Свою учётную запись, под которой вы будете обновлять базу, из прав не убирайте. Иначе Конфигуратор не откроет базу и у вас.
Монопольный режим: что проверить, если пользователей уже нет
Бывает, что все вышли, «Открытые файлы» пусты, а монопольный режим всё равно не устанавливается. Проверьте по порядку:
- Ваш второй сеанс. Открыто окно «Предприятия» с этой же базой, из которого вы запускали Конфигуратор. Закройте его.
- Висящий процесс. В диспетчере задач на вашем компьютере остался
1cv8.exeбез окна после сбоя. Завершите его. - Фоновые и регламентные задания. В файловом варианте они выполняются внутри клиентских сеансов. Пока жив сеанс, жива и задача.
- Другой путь к базе. База открыта у одного пользователя как
\\server\Bases\Buh, у другого через подключённый дискZ:\Buh. Для 1С это один и тот же файл, ищите оба варианта. - Антивирус или резервное копирование
. Программа копирования может держать
1Cv8.1CDоткрытым. Посмотрите время запуска заданий копирования.
После принудительного закрытия сеансов полезно проверить физическую целостность базы. Для файлового варианта есть утилита chdbfl.exe в папке bin платформы. Запускайте её только при полностью закрытой базе и после копирования папки.
Профилактика: чтобы не выгонять людей каждый раз
Проблема «не могу обновиться, все сидят» повторяется, если работы не встроены в распорядок.
- 🕗 Окно обслуживания. Договоритесь о времени, например каждый вторник с 19:00, и предупредите пользователей заранее. Обновления и выгрузки делайте только в это время.
- 🌙 Ночной bat-файл по расписанию. Скрипт из раздела про блокировку, запущенный планировщиком заданий Windows, выпроваживает всех, делает копию и открывает вход.
- 🔁 Одна точка запуска. Пропишите базу всем пользователям по одному сетевому пути, чтобы проще было искать открытые файлы.
- 🚪 Правило выхода. Пользователи закрывают 1С в конце дня, а не сворачивают. На терминальном сервере настройте завершение отключённых сеансов Windows через заданное время.
- 🔌 Учёт внешних подключений. Запишите, какие программы и службы ходят в базу через COM-соединение или веб-публикацию, и как их остановить.
- 📈 Переход на клиент-сервер. Если пользователей становится больше 8–10 и выгонять приходится регулярно, файловый вариант себя исчерпал. В клиент-серверной базе сеансы завершаются из консоли кластера, а многие работы идут без монопольного режима.