Работа с файловыми базами 1С накладывает определенные ограничения на административные действия. В отличие от клиент-серверного варианта, где есть консоль администрирования кластера, в файловом режиме «выгнать» пользователей бывает непросто. Однако существуют как штатные, так и системные способы решения этой задачи. Разберем подробно, как можно быстро и максимально безопасно освободить базу для проведения регламентных работ.
Рассмотрим самый элегантный и «цивилизованный» способ, предусмотренный самой платформой 1С. В папке с информационной базой (там, где находится файл 1Cv8.1CD) платформа ищет специальный файл с расширением .cdn. Если он существует, система начинает процедуру блокировки.
Проанализируем структуру этого файла. Это обычный текстовый файл в кодировке UTF-8, который должен называться 1Cv8.cdn. В нем можно прописать параметры, которые платформа считает автоматически:
{"Б",
{"20231027100000",
"20231027120000",
"База закрыта на техническое обслуживание. Просьба выйти из программы.",
"КодРазрешения",
""
}
}
Разберем, что означают эти параметры по шагам:
/UC КодРазрешения.Важный нюанс: Работающие сеансы 1С периодически (примерно раз в минуту) опрашивают файловую систему на предмет наличия этого файла. Как только время блокировки наступает, система выдает предупреждение и через несколько минут принудительно закрывает программу у пользователя. Это самый «безболезненный» метод, так как он позволяет программе корректно завершить фоновые процессы.
В современных конфигурациях (таких как «Бухгалтерия предприятия 3.0» или «Управление торговлей 11») этот функционал уже встроен в интерфейс. Нам не нужно создавать файлы вручную.
Выполним следующие действия:
Программа сама создаст файл 1Cv8.cdn в каталоге базы. Если мы хотим выгнать всех немедленно, рекомендуется ставить время начала на несколько минут раньше текущего. Проанализируем ситуацию: если в базе зависли «призрачные» сеансы, которые не реагируют на файл блокировки, придется переходить к более радикальным мерам.
Если пользователи работают не по сети через общую папку, а заходят на сервер через удаленный рабочий стол (RDP), мы можем управлять их процессами напрямую.
Выясним, как найти нужного пользователя в Диспетчере задач:
1cv8.exe мы увидим полный путь к базе. Это позволит нам не трогать тех, кто работает в других базах.Внимание: Принудительное «убийство» процесса (Kill process) — это крайняя мера. Для файловой базы это чревато повреждением структуры файла 1Cv8.1CD. После таких действий настоятельно рекомендуется запустить утилиту chdbfl.exe для проверки целостности данных.
Если пользователи подключаются к базе через сетевую шару, они «держат» файлы базы открытыми. Мы можем разорвать эти соединения на уровне операционной системы сервера, где лежит папка.
Воспользуемся командной строкой (CMD) от имени администратора. Для начала посмотрим, кто держит файлы базы:
openfiles /query
Если мы видим в списке файл 1Cv8.1CD, мы можем разорвать соединение по его ID:
openfiles /disconnect /id [ID_сессии]
Также можно использовать команду net session, чтобы увидеть все компьютеры, подключенные к серверу, и принудительно отключить конкретный компьютер:
net session \\ИмяКомпьютера /delete /y
Этот метод мгновенно освобождает файлы, но для пользователя это выглядит как «сетевая ошибка», и данные, которые не были сохранены в текущий момент, будут потеряны.
Иногда бывает так, что все пользователи вышли, но база сообщает, что «Файл базы данных поврежден» или «Занято другим процессом». Это значит, что на сервере завис «хвост» сетевого соединения.
Рассмотрим алгоритм быстрого сброса:
Accounting в Accounting_Temp).Мы рассмотрели различные подходы к отключению пользователей. Подведем итог: если время терпит, всегда используйте метод с файлом блокировки .cdn или штатную обработку в интерфейсе 1С. Это гарантирует сохранность данных.
Если же база «зависла» или требуется немедленное вмешательство, используйте Диспетчер задач (для RDP) или команду net session (для сетевых шар). Помните, что после каждого принудительного завершения работы файловой базы крайне желательно делать резервную копию и проверять базу утилитой chdbfl.exe, так как файловый движок 1С чувствителен к некорректным завершениям транзакций.