Почему возникает ошибка разделенного доступа при выгрузке базы 1С и как ее исправить?

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

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

1. Проверка активных соединений и регламентных заданий

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

  1. Откройте консоль Администрирование серверов 1С:Предприятия.
  2. Перейдите к свойствам информационной базы.
  3. Установите флажок Блокировка регламентных заданий включена.
  4. Обязательно проверьте наличие соединений в разделе Соединения. Если вы видите активные соединения, не относящиеся к вашему сеансу конфигуратора, принудительно удалите их.

Если это не помогло, попробуйте перезапустить службу Агент сервера 1С:Предприятие. Это принудительно очистит оперативную память рабочих процессов rphost.exe, которые часто удерживают «зависшие» соединения.

2. Очистка блокировок на уровне MS SQL Server

Бывают ситуации, когда сеанс пользователя или регламентное задание уже завершились в 1С, но на уровне MS SQL Server соединение осталось открытым. В таком случае 1С не может войти в монопольный режим.

Чтобы решить эту задачу, мы можем воспользоваться SQL Server Management Studio:

  1. Откройте Management Studio и подключитесь к серверу БД.
  2. Выполните команду sp_who2, чтобы увидеть все активные процессы.
  3. Найдите соединения, связанные с базой, и если они кажутся подозрительными, используйте команду KILL [ID_процесса].
  4. Более радикальный и надежный метод: использование функции DETACH и ATTACH базы данных через SQL-менеджер — это принудительно сбрасывает все активные подключения к таблицам базы.

3. Оптимизация памяти и параметров сервера

Ошибка часто является следствием нехватки оперативной памяти или ограничений 32-битных систем. Если вы работаете на 32-разрядной версии сервера, система не может эффективно управлять памятью для больших конфигураций (таких как УПП или ERP).

Рассмотрим способы оптимизации:

4. Чистка структуры конфигурации и «мусора»

Иногда проблема кроется в самой базе данных. Наличие записей в таблице Config размером более 120 МБ может вызывать аварийное завершение операций. Выясним, как с этим работать:

  1. Выполните Проверку конфигурации в конфигураторе, обязательно отметив флажок Проверка логической целостности.
  2. Если конфигурация находится на поддержке, сохраните конфигурацию поставщика в файл .cf, загрузите ее в пустую базу и проверьте там. Если ошибка сохраняется, значит, «мусор» содержится в самой конфигурации поставщика.
  3. В критических ситуациях специалисты прибегают к удалению записей в SQL-таблице Config, размер которых превышает 120 МБ, перед обновлением или выгрузкой.

5. Автоматизация выгрузки через пакетные файлы

Если стандартный конфигуратор отказывается выполнять выгрузку, попробуйте автоматизировать процесс с помощью командной строки. Это позволяет выполнять выгрузку более «чисто» с точки зрения взаимодействия с сервером.

Пример скрипта для автоматизации выгрузки:


"C:\Program Files\1cv82\8.2.19.83\bin\1cv8.exe" DESIGNER /S "ServerName\BaseName" /N "Admin" /P "Password" /DUMPIB "C:\Backup\Base.dt" /OUT "C:\Backup\Log.log" -NoTruncate

Использование параметра -NoTruncate и запуск под учетной записью администратора с заранее отключенными регламентными заданиями — это проверенный способ обойти блокировки интерфейса.

Заключение

Подводя итог, можно сказать: ошибка разделенного доступа — это комплексное явление. Мы рекомендуем действовать пошагово: сначала отключаем фоновые задания, затем перезапускаем службу Агент сервера 1С, если не помогло — чистим зависшие процессы в MS SQL Server. Если проблема повторяется постоянно, значит, конфигурация требует оптимизации или переноса на 64-битный сервер. Не забывайте делать резервные копии средствами SQL Server, так как они гораздо менее требовательны к монопольному режиму работы, чем штатная выгрузка .dt.

← На главную