Мы используем файлы cookie для технической работы сайта (чтобы всё открывалось, загружалось и работало стабильно) и для аналитики (чтобы понимать, что вам интересно, и делать предложения полезнее).
РАБОТАЕМ ПО ВСЕЙ РОССИИ
Сообщение «Ошибка разделения доступа к базе данных» или «База данных заблокирована» появляется в строго определенных ситуациях. Все они объединены одним: программе нужен монопольный доступ, а к базе в этот момент подключены другие пользователи или зависшие процессы.
Чаще всего ошибка возникает в следующих случаях:
«Важно!» Монопольный режим - это не баг, а защита данных. Если к базе одновременно обращаются несколько процессов при изменении структуры таблиц, данные могут быть повреждены. Поэтому 1С и блокирует доступ.
Прежде чем что-то делать, нужно понять, почему база заблокирована. Причин несколько, и каждая требует своего подхода.
Это самая очевидная причина. Кто-то из сотрудников остался в 1С и не завершил сеанс. Посмотреть список активных сеансов можно прямо в окне сообщения об ошибке - там отображаются подключения. Также список доступен в конфигураторе: Администрирование - Активные пользователи.
Коварная ситуация для файловой базы данных. Сотрудник открыл 1С, дошел до окна ввода пароля и оставил так. Соединение с базой уже установлено, но авторизации нет - поэтому этот сеанс не отображается в списке активных пользователей. База заблокирована, а причина не видна.
Все сотрудники закрыли 1С, но ошибка разделенного доступа осталась. Это значит, что сеанс завис - процесс работы с базой данных не завершился корректно. Такое происходит после принудительного закрытия программы, потери соединения с сервером или сбоя компьютера.
1С выполняет регламентных задач в фоновом режиме: формирует отчеты, обрабатывает очереди, обменивается данными. Если фоновое задание зависло и не завершилось, оно удерживает соединение с базой. Это частая причина в клиент-серверном варианте.
Разработчик или администратор открыл конфигуратор, поработал и забыл его закрыть. Конфигуратор держит соединение с базой, и монопольный режим получить невозможно.
Файловая база - это база, которая хранится в папке на компьютере или сетевом диске. Работает без сервера 1С, обычно используется в небольших компаниях.
Откройте конфигуратор - Администрирование - Активные пользователи. Если кто-то из сотрудников в списке - попросите их выйти. Если список пуст, но ошибка есть - переходите к следующему шагу.
Откройте Диспетчер задач Windows (Ctrl+Shift+Esc). Перейдите на вкладку Подробности. Найдите все процессы с именем 1cv8.exe и 1cv8c.exe. Завершите каждый из них принудительно.
Этот способ помогает устранить и «невидимые» сеансы - те, где пользователь открыл 1С, но не ввел пароль. Такой процесс есть в диспетчере задач, но в списке сеансов 1С его нет.
После завершения всех процессов попробуйте снова запустить обновление конфигурации или тестирование.
В папке с базой данных иногда остается временный файл блокировки. Его имя содержит расширение .lck или похожее. Если 1С завершилась некорректно, этот файл мог не удалиться. Закройте все процессы 1С, затем удалите файл блокировки из папки с базой. После этого запустите 1С снова.
«Важно!» Не удаляйте сам файл базы данных (1Cv8.1CD). Удалять нужно только временные файлы блокировки.
Если ни один из предыдущих способов не помог - перезагрузка компьютера, на котором хранится база, гарантированно завершает все зависшие соединения. После перезапуска проблема с разделенным доступом устраняется в большинстве случаев.
Серверная база работает под управлением сервера 1С:Предприятия и СУБД (Microsoft SQL, PostgreSQL или другой). Используется в средних и крупных компаниях с большим количеством пользователей.
В клиент-серверном варианте принудительно завершить сеанс можно без участия самого пользователя. Для этого используется консоль администрирования сервера 1С.
После удаления всех лишних сеансов монопольный режим становится доступным.
Фоновые задания - отдельная головная боль в клиент-серверном варианте. Они запускаются автоматически, работают в фоновом режиме и иногда зависают, не завершившись. При этом сеанс удерживается и монопольный доступ невозможен.
Посмотреть список активных фоновых заданий можно в конфигураторе: Администрирование - Активные пользователи - там отображаются и фоновые задачи. Второй способ - через консоль администрирования сервера в разделе Фоновые задания.
Для завершения зависших заданий используют несколько подходов:
«Важно!» Перезапуск агента сервера (службы ragent) прерывает работу всех пользователей. Делайте это только когда база данных не используется в рабочее время.
Если зависших сеансов нет, а ошибка разделенного доступа все равно появляется - перезапустите службу агента сервера. Это аналог перезагрузки для серверного варианта.
После перезапуска службы все зависшие соединения с базой данных завершаются автоматически.
Если блокировка установлена на уровне SQL-сервера, завершение сеансов 1С не поможет. В этом случае нужно снимать блокировку средствами самой СУБД.
Для Microsoft SQL Server используют запрос к системным представлениям - находят идентификаторы процессов (SPID), которые удерживают блокировку на таблицах информационной базы, и завершают их командой KILL. Эта процедура требует прав администратора СУБД и выполняется системным администратором или разработчиком.
Обновление - самый частый контекст, в котором появляется это сообщение. При принятии изменений конфигурации 1С должна монопольно работать с базой.
Порядок действий перед обновлением:
Если после выхода всех пользователей список сеансов все равно не пустой - проверьте, не запущен ли еще один сеанс конфигуратора на другом компьютере.
Тестирование и исправление - плановая процедура обслуживания базы данных. Запускается через конфигуратор: Администрирование - Тестирование и исправление. Требует монопольного режима - то есть все пользователи должны выйти из 1С.
Если ошибка разделенного доступа появляется при запуске тестирования, алгоритм устранения тот же: завершить все активные сеансы, проверить зависшие процессы, при необходимости - перезагрузить сервер или компьютер.
«Важно!» Всегда создавайте резервную копию базы данных перед запуском тестирования и исправления. Процедура изменяет структуру таблиц, и при неожиданном сбое данные могут быть повреждены.
|
Причина |
Файловый режим |
Клиент-серверный режим |
|
Активные пользователи |
Администрирование - Активные пользователи, попросить выйти |
Консоль сервера - принудительное завершение сеанса |
|
Пользователь не ввел пароль |
Диспетчер задач - завершить 1cv8.exe |
Консоль сервера - раздел Соединения |
|
Зависший сеанс |
Диспетчер задач или перезагрузка ПК |
Перезапуск службы агента сервера |
|
Зависшее фоновое задание |
Не актуально |
Консоль сервера - Фоновые задания |
|
Блокировка СУБД |
Не актуально |
SQL-запрос KILL от имени администратора СУБД |
|
Файл блокировки .lck |
Удалить из папки с базой |
Не актуально |
Полностью исключить эту ситуацию невозможно, но снизить ее частоту - реально.
Несколько практических рекомендаций:
1С позволяет установить блокировку подключений заранее - новые пользователи не смогут войти в базу, а текущие получат сообщение с просьбой завершить работу.
В конфигураторе: Администрирование - Блокировка работы с информационной базой. Установите время начала и конца блокировки, а также текст сообщения для пользователей. После того как все выйдут - запускайте обновление или тестирование.
Этот механизм значительно удобнее ручного отслеживания активных сеансов, особенно если пользователей много.
Поведение блокировки немного различается в зависимости от того, какую конфигурацию использует бизнес. Разберем самые распространенные случаи.
В бухгалтерии ошибка разделенного доступа чаще всего возникает при закрытии месяца. Процедура запускает сразу несколько фоновых заданий, и если одно из них зависает - монопольный режим при следующем обновлении получить не удастся. При попытке провести регламентные операции потом система блокирует вход.
Правильно в этой ситуации действовать так: открыть список активных пользователей, найти зависшее задание - обычно оно написано без имени сотрудника, с пометкой «Фоновое задание» - и завершить его принудительно. Только после этого запускать закрытие месяца заново.
В конфигурации ЗУП проблема нередко возникает при расчете зарплаты и формировании отчетов в ПФР. Расчет запускает обработку большого объема объектов базы данных и может зависнуть на середине. Тогда сеанс остается активным, хотя визуально программа уже закрыта.
Первым делом стоит проверить диспетчер задач - процессы 1cv8.exe. Если они есть, хотя все сотрудники вышли из системы - завершите их принудительно. После этого повторный запуск расчета, как правило, проходит без ошибок.
В крупных проектах на платформе ERP или Комплексной автоматизации ошибка разделенного доступа может возникнуть даже при небольшом числе активных пользователей. Причина - в регламентных заданиях, которые работают в фоне круглосуточно. Отключить их полностью нельзя, но можно настроить расписание так, чтобы они не пересекались с плановым обслуживанием базы.
Путь к настройке: Администрирование - Поддержка и обслуживание - Регламентные и фоновые задания. Здесь можно посмотреть все активные задачи, приостановить ненужные и задать новую очередность выполнения.
Разобраться с блокировкой помогают несколько инструментов. Их использования достаточно в большинстве случаев - без привлечения стороннего специалиста.
Консоль кластера серверов 1С
Главное средство администрирования в клиент-серверном варианте. Открывается через меню «Пуск» - ищите «Администрирование серверов 1С». В консоли можно в результате нескольких кликов найти зависший сеанс, посмотреть, какой код процесса его удерживает, и завершить принудительно - без перезагрузки сервера.
SQL Server Management Studio (MS SSMS)
Если база работает на Microsoft SQL Server, этот инструмент дает полную картину блокировок на уровне СУБД. Программист или системный администратор может через него найти соединения, которые удерживают таблицы базы, и снять блокировку SQL-запросом. Использование этого способа требует прав администратора СУБД и базовых знаний SQL.
Технический журнал 1С
Для глубокой диагностики - когда ошибка воспроизводится регулярно и стандартные способы не помогли - используют технический журнал платформы. В настройках журнала задают фильтр по событиям блокировки, запускают воспроизведение проблемы и анализируют лог. Путь к настройкам: папка установки платформы, файл logcfg.xml. Разобраться с форматом записей без опыта сложно - лучше задать вопрос на профильном форуме или привлечь специалиста.
Встроенный поиск по сеансам 1С
В любом варианте работы - файловом или серверном - список активных пользователей доступен в конфигураторе: Администрирование - Активные пользователи. Здесь можно быстро посмотреть все соединения, отсортировать по дате начала и найти зависшие - те, у которых дата начала сеанса относится к прошлым суткам или позапрошлому рабочему дню.
Ошибка разделенного доступа иногда связана не с зависшими сеансами, а с проблемами на уровне самой платформы или лицензирования.
Последние версии платформы 1С содержат исправления известных ошибок, в том числе связанных с некорректным завершением сеансов и ложными блокировками. Если ошибка стала появляться после установке нового релиза конфигурации - проверьте, соответствует ли версия платформы минимальным требованиям этого релиза. Нужную информацию можно узнать в описании обновления на портале ИТС.
Обновить платформу можно через портал its.1c.ru при наличии активной подписки ИТС. Без актуальной подписки доступ к новым версиям платформы закрыт - это одна из причин, почему лицензии и договор сопровождения важно продлевать заблаговременно.
В многопользовательских базах количество одновременных подключений ограничено числом клиентских лицензий. Если лицензий не хватает, новые соединения могут зависать в очереди и удерживать ресурсы базы. В результате при попытке получить монопольный доступ система видит «чужое» соединение, которое фактически не активно, но технически не завершено.
Посмотреть текущее использование лицензий можно в консоли администрирования сервера - раздел «Лицензии». Если все слоты заняты - часть соединений нужно освободить вручную или нарастить пул лицензий.
Некоторые встроенные сервисы 1С используют фоновые соединения с базой для отправки данных и получения обновлений. Если интернет-соединение нестабильно, такой сервис может зависнуть в процессе обработки запроса и удерживать сеанс.
Отключить отправку статистических данных и интернет-поддержку можно через Администрирование - Интернет-поддержка и сервисы - снять соответствующие флаги. Это не влияет на основной функционал программы, но может устранить ложные фоновые соединения.
Часть ситуаций выходит за рамки того, что администратор или бухгалтер может решить самостоятельно. Вот признаки того, что пора обратиться за помощью.
Ошибка разделенного доступа к базе данных появляется регулярно - раз в неделю или чаще - несмотря на все принятые меры. Это говорит о системной проблеме: в настройках регламентных заданий, в конфигурации сервера или в самой базе накопились повреждения.
Блокировка происходит на уровне СУБД - в журнале регистрации написано о конфликтах на уровне SQL. Снять такую блокировку без знания MS SQL или PostgreSQL сложно. Неправильно выполненный запрос KILL может затронуть не тот процесс и привести к повреждению сохраненной информации.
База данных находится в неконсистентном состоянии - тестирование выявляет ошибки в таблицах объектов, но автоматическое исправление не помогает. В этом случае нужна ручная работа с базой данных средствами СУБД.
«Важно!» Если самостоятельные попытки устранить блокировку не дали результата за двух-трех часов - не продолжайте эксперименты. Каждое неудачное вмешательство увеличивает риск потери данных. Лучше передать задачу специалисту с профильным опытом работы с 1С и СУБД.
Все пользователи вышли, но ошибка осталась. Почему? Скорее всего, остался зависший сеанс или незавершенное фоновое задание. В файловом режиме - проверьте диспетчер задач и завершите все процессы 1cv8.exe. В серверном - откройте консоль администрирования и проверьте раздел «Сеансы» и «Фоновые задания».
Можно ли обновить конфигурацию, не выгоняя пользователей? Нет. Принятие изменений конфигурации в 1С требует монопольного режима без исключений. Единственный вариант - использовать механизм блокировки подключений, чтобы корректно завершить работу пользователей.
Ошибка разделенного доступа появилась сама по себе, хотя никто ничего не делал. Что это? Скорее всего, зависло регламентное задание или фоновый процесс. Откройте список активных пользователей в конфигураторе - там может быть запись без имени пользователя, относящаяся к фоновому заданию. Завершите его.
Помогает ли перезагрузка компьютера или сервера? Да, и это надежный способ. Перезагрузка завершает все зависшие процессы и соединения. Минус один - пользователи, работающие в это время, потеряют несохраненные данные. Используйте перезагрузку, когда другие способы не помогли.
Кому обращаться, если самостоятельно решить не получается? Если проблема в клиент-серверной базе с СУБД, а стандартные способы не помогают - нужен специалист с правами администратора сервера и СУБД. Самостоятельные действия с SQL-запросами без должной квалификации могут повредить базу данных.
Если разобраться с ошибкой разделенного доступа самостоятельно не получается - специалисты СА1С быстро проведут диагностику и восстановят работу базы данных.