Работа в режиме файловой базы данных имеет свои уникальные особенности по сравнению с клиент-серверным вариантом. Одним из наиболее критичных моментов для системного администратора или ответственного пользователя является ситуация, когда необходимо принудительно завершить чужие сеансы. Это часто требуется перед обновлением конфигурации, проведением регламентных операций или когда пользователь ушел на обед, заблокировав важный справочник. В отличие от SQL-сервера, где администратор имеет централизованный контроль над сессиями, файловый вариант требует иного подхода к администрированию.
Основная сложность заключается в том, что файловая база 1С не имеет единого административного интерфейса для разрыва соединений в реальном времени. Все управление происходит либо через механизм флагов блокировки, либо через физические файлы на диске. Неправильные действия могут привести к повреждению информационной базы или потере данных, которые не были сохранены другими пользователями. Именно поэтому важно четко понимать разницу между штатным закрытием сеанса и аварийным сбросом блокировок.
В данной статье мы подробно разберем все доступные методы завершения сеансов, от стандартных инструментов штатного расписания до ручного вмешательства в файловую структуру каталога базы. Вы узнаете, как безопасно снять блокировку, какие файлы отвечают за монопольный режим и как диагностировать зависшие процессы, которые мешают нормальной работе коллектива.
Штатное завершение через административный интерфейс
Первый и самый безопасный способ завершения работы других пользователей — это использование встроенных возможностей платформы 1С:Предприятие. Если у вас есть права администратора информационной базы, вы можете инициировать завершение сеансов без выхода из системы. Однако стоит помнить, что этот метод работает корректно только в том случае, если клиентские приложения пользователей находятся в активном состоянии и имеют связь с сервером (в данном случае — с файловой системой).
Для выполнения этой операции необходимо войти в базу данных в режиме 1С:Предприятие. После запуска перейдите в меню Администрирование (или Сервис в старых версиях интерфейса) и выберите пункт Сеансы. Откроется окно со списком всех активных подключений, где отображается имя пользователя, компьютер, с которого выполнено подключение, и время начала сеанса. Здесь вы можете выделить нужную строку и нажать кнопку Завершить.
Важно понимать механизм работы этой команды. Система отправляет сигнал клиентскому приложению с просьбой корректно завершить работу. Если пользователь в этот момент выполняет длительную операцию, например, проводит сложный документ или формирует тяжелый отчет, система может не разорвать соединение мгновенно. В этом случае завершение сеанса отложится до окончания текущей транзакции. Это защищает базу данных от логических ошибок и повреждения таблиц.
⚠️ Внимание: Принудительное завершение сеанса через интерфейс может привести к откату транзакции пользователя. Все несохраненные данные, введенные им в текущий момент, будут утеряны без возможности восстановления.
Если окно сеансов пустое, но база заблокирована для монопольного доступа, возможно, активен фоновый процесс или регламентное задание. В таком случае стоит проверить журнал регистрации, чтобы понять, кто именно удерживает соединение. Иногда помогает ожидание в течение нескольких минут, так как файловая база может иметь задержку в обновлении списка активных пользователей из-за особенностей работы с локальным диском.
Монопольный режим и его влияние на сеансы
Одной из самых частых причин невозможности завершить сеансы или выполнить административные задачи является включенный монопольный режим. В файловой базе данных этот режим означает, что один пользователь захватил исключительное право на запись в файлы конфигурации и данных. Пока этот режим активен, другие пользователи могут работать только в режиме «Только чтение» или быть полностью отключенными от базы.
Чтобы включить монопольный режим, пользователь должен зайти в базу, выбрать в меню Администрирование пункт Монопольный режим и подтвердить действие. Система проверит отсутствие других активных сеансов. Если другие пользователи работают, система предложит дождаться их выхода или завершить их сеансы принудительно. Именно на этом этапе часто возникает проблема: если один из пользователей «завис» или его компьютер выключился некорректно, режим не включится.
Для решения проблемы необходимо понять, кто именно удерживает базу. Часто это бывает учетная запись Администратор или сервисный пользователь, который выполняет фоновые задачи. В интерфейсе списка сеансов такие пользователи могут отображаться с пометкой о выполнении регламентных операций. Завершение такого сеанса требует особой осторожности, так как может прервать процесс обновления справочников или выгрузки данных.
Существует также понятие «блокировка на изменение конфигурации». Оно отличается от монопольного режима работы с данными. Если пользователь открыл конфигуратор, база автоматически блокируется для других пользователей в части изменения метаданных. Чтобы завершить такие сеансы, пользователю в конфигураторе необходимо закрыть базу данных через меню Файл -> Закрыть.
Ручное управление через файлы блокировок (lck)**
Когда штатные методы не работают, например, компьютер пользователя внезапно обесточился или произошел сбой сети, в каталоге файловой базы остаются «висячие» файлы блокировок. Платформа 1С:Предприятие использует специальные файлы с расширением .lck для (маркировки) занятых ресурсов. Удаление этих файлов является аналогом принудительного разрыва соединения на низком уровне.
Файлы блокировок обычно имеют имена вида 1Cv8.lck или 1Cv8Tmp.lck, а также могут содержать идентификатор процесса или сеанса в имени. Они находятся в корневом каталоге базы данных или в подпапке 1Cv8. Наличие этих файлов сигнализирует системе, что база занята. Если процесс, создавший файл, больше не существует, файл становится «мусором», препятствующим новым подключениям.
Перед удалением файлов блокировок необходимо выполнить строгую последовательность действий. Сначала убедитесь, что все пользователи действительно завершили работу с базой. Затем закройте свое приложение 1С. Только после этого можно переходить в проводник Windows, открывать папку с базой и удалять файлы .lck. Если удалить их при работающей базе, это гарантированно приведет к ошибкам у активных пользователей.
☑️ Безопасное удаление файлов блокировки
⚠️ Внимание: Никогда не удаляйте файлы блокировок, пока хотя бы один пользователь работает в базе. Это приведет к рассинхронизации данных и возможной порче файлов 1CD.
Иногда после удаления файлов .lck требуется перезапуск службы или просто повторный запуск приложения, чтобы платформа корректно перечитала состояние файловой системы. В редких случаях, при очень длительной работе базы, может потребоваться тестирование и исправление базы данных через конфигуратор, так как резкое обрывание соединений могло оставить логические ошибки в транзакциях.
Диагностика зависших процессов в Диспетчере задач
Бывают ситуации, когда файлы блокировок отсутствуют, но сеанс числится активным, или наоборот — пользователь утверждает, что вышел, а база занята. В этом случае проблему нужно искать на уровне операционной системы. Процесс 1cv8.exe (или 1cv8c.exe для клиента) может зависнуть в памяти, продолжая удерживать дескрипторы файлов базы данных.
Для диагностики откройте Диспетчер задач Windows. Перейдите на вкладку «Подробности» и отсортируйте процессы по имени. Найдите все экземпляры 1cv8.exe. Обратите внимание на пользователя, от имени которого запущен процесс, и на объем потребляемой памяти. Зависший процесс часто имеет статичное потребление памяти или статус «Не отвечает».
Если вы обнаружили процесс, который принадлежит ушедшему пользователю (например, по имени учетной записи Windows), его можно завершить принудительно. Выделите процесс, нажмите правую кнопку мыши и выберите Снять задачу. Это действие эквивалентно выдергиванию шнура питания из компьютера пользователя: все несохраненные данные в этом конкретном сеансе будут потеряны мгновенно.
| Тип процесса | Имя файла | Действие при зависании | Риск потери данных |
|---|---|---|---|
| Тонкий клиент | 1cv8c.exe |
Снять задачу в Диспетчере | Высокий (текущий документ) |
| Толстый клиент | 1cv8.exe |
Снять задачу в Диспетчере | Высокий (текущая транзакция) |
| Фоновое задание | 1cv8.exe |
Завершить через список сеансов | Средний (фоновый процесс) |
| Конфигуратор | 1cv8.exe |
Закрыть через меню Файл | Критический (изменение структуры) |
После завершения процесса в Диспетчере задач рекомендуется подождать 10-15 секунд, чтобы операционная система освободила файловые дескрипторы. Только после этого можно пробовать зайти в базу снова. Если проблема повторяется регулярно, стоит проверить журнал событий Windows на наличие ошибок диска или сетевых сбоев.
Автоматизация очистки сеансов через внешние обработки
Для администраторов крупных файловых баз, где количество пользователей исчисляется десятками, ручное завершение сеансов становится рутиной. В таких случаях целесообразно использовать внешние обработки или расширения конфигурации, которые позволяют автоматизировать процесс мониторинга и разрыва соединений. Такие инструменты часто называют «мониторами активности».
Принцип работы таких обработок прост: они периодически опрашивают таблицу виртуального регистра сведений о сеансах. Если обнаруживается сеанс, который не проявляет активности дольше заданного времени (например, 30 минут), обработка может попытаться завершить его программно. Это особенно полезно для очистки «зомби-сеансов», когда пользователь закрыл окно браузера или приложения, но сессия осталась висеть.
Пример кода для завершения сеанса
Для программного завершения сеанса используется метод Завершить объекта СеансИнформация. Однако в файловой базе этот метод работает только если сеанс принадлежит тому же запущенному экземпляру платформы, что ограничивает его применение в чистом виде без использования COM-соединения или запуска отдельного агента.
Также существует метод использования внешнего скрипта на языке VBScript или PowerShell, который подключается к базе через COM-объект V83.COMConnector. Скрипт может запускаться по расписанию планировщика задач Windows. Он соединяется с базой, получает список сеансов и завершает те, которые соответствуют критериям (например, запущены с определенного компьютера или принадлежат уволенному сотруднику).
⚠️ Внимание: Автоматическое завершение сеансов по таймеру опасно тем, что пользователь может просто отойти от компьютера, обдумывая сложную проводку. Будьте осторожны с настройкой таймаута бездействия.
При внедрении таких решений обязательно уведомите пользователей. Они должны знать, что система может автоматически выкинуть их из программы при длительном простое. Это стимулирует дисциплину и привычку выходить из базы по окончании работы.
Профилактика проблем с сеансами и блокировками
Лучший способ борьбы с зависшими сеансами — это их профилактика. В файловой базе данных критически важна стабильность сетевого соединения и дисковой подсистемы. Если база расположена на сетевом ресурсе с нестабильным пингом, разрывы соединений будут происходить постоянно, оставляя после себя файлы блокировок.
Рекомендуется регулярно проводить обслуживание базы данных. В конфигураторе существует функция Администрирование -> Тестирование и исправление. Запуск этой процедуры с флагом исправления логической целостности помогает очистить внутренние таблицы блокировок, которые могли повредиться в результате сбоя. Делать это нужно в нерабочее время, в монопольном режиме.
Настройте автозакрытие сессий в параметрах системы, если ваша конфигурация поддерживает такую функциональность. Это снизит нагрузку на файловую систему и уменьшит количество «висячих» подключений.
Также стоит обратить внимание на версию платформы 1С:Предприятие. В более поздних релизах (начиная с 8.3.10 и выше) механизмы работы с файловой базой были существенно доработаны, улучшена обработка ошибок ввода-вывода и механизм восстановления после сбоев. Обновление платформы на всех клиентских машинах до актуального релиза часто решает 80% проблем с зависаниями.
Регулярное обновление платформы 1С и тестирование базы данных — главные инструменты профилактики проблем с сеансами в файловом режиме.
Не забывайте обучать пользователей правилам работы. Простая привычка нажимать кнопку «Завершить работу» вместо крестика в углу окна может спасти базу от множества потенциальных ошибок и блокировок. Культура работы с 1С не менее важна, чем технические настройки сервера.
Можно ли завершить сеанс пользователя, если он находится в другом городе?
Да, если у вас есть права администратора в базе. Физическое местоположение пользователя не имеет значения для файловой базы, важно лишь наличие сетевого доступа к каталогу с данными. Вы можете завершить его сеанс через список активных подключений, как если бы он сидел за соседним столом.
Что делать, если файл 1Cv8.lck не удаляется (занят другим процессом)?
Это означает, что какой-то процесс все еще держит файл открытым. Проверьте Диспетчер задач на наличие зависших процессов 1cv8.exe. Если их нет, попробуйте перезагрузить компьютер, на котором расшарена папка с базой, или используйте утилиты типа Unlocker для поиска процесса, удерживающего файл.
Влияет ли завершение сеанса на проведение документов?
Да, если в момент завершения пользователь проводил документ, эта операция будет прервана. Документ не проведется, а транзакция откатится. При следующем входе пользователю придется проводить документ заново. Данные не повредятся, но работа будет потеряна.
Как узнать, кто именно заблокировал базу в монопольном режиме?
Зайдите в базу (если возможно в режиме чтения) и откройте список сеансов. Пользователь в монопольном режиме обычно имеет специальную пометку или удерживает исключительную блокировку. Также можно посмотреть журнал регистрации, отфильтровав события по типу «Начало монопольного режима».
Безопасно ли удалять файлы.lck вручную?
Это безопасно только в том случае, если вы на 100% уверены, что никаких активных подключений к базе в данный момент нет. В противном случае вы рискуете повредить структуру базы данных. Всегда сначала пытайтесь завершить сеансы штатными средствами 1С.