Ситуация, когда при обновлении конфигурации 1С:Предприятие на этапе принятия изменений возникает сообщение «Ошибка разделенного доступа к информационной базе. База данных заблокирована», знакома многим администраторам. Особенно часто это случается в клиент-серверном варианте работы. Даже если вы предварительно установили блокировку регламентных заданий в консоли администрирования, система может выдать предупреждение о наличии активного фонового задания. Разберем подробно, почему это происходит и как правильно подготовить базу к обновлению, чтобы избежать подобных прерываний.
Проанализируем корень проблемы. Одной из самых распространенных ошибок является отождествление регламентных и фоновых заданий. Рассмотрим их взаимосвязь подробнее. РегламентныеЗадания — это объекты метаданных, для которых задано расписание. Именно их мы отключаем флажком в консоли администрирования кластера 1С. Однако само выполнение кода происходит в рамках объекта ФоновыеЗадания.
Важно понимать следующие нюансы:
Выясним причину, которая часто остается «за кадром» — работу механизма полнотекстового поиска данных. Это системный процесс, который может запускаться платформой автоматически для индексации измененных данных. Даже при полной блокировке регламентных заданий, ППД может инициировать активность на уровне СУБД или сервера приложений.
Чтобы полностью исключить влияние этого фактора, выполним следующие действия в режиме «1С:Предприятие»:
Рассмотрим специфику работы современных версий платформы, таких как 8.3.18.1334. В этих релизах администраторы часто сталкиваются с так называемыми «фантомными» сеансами. Это ситуация, когда в консоли сеанс отображается как активный, хотя соответствующий ему процесс rphost или соединение с SQL уже завершены.
Проанализируем алгоритм правильной блокировки перед обновлением:
/UC.Для гарантированного входа в заблокированную базу используем командную строку:
"C:\Program Files\1cv8\8.3.18.1334\bin\1cv8.exe" ENTERPRISE /S "ServerName\BaseName" /C"ЗавершитьРаботуПользователей" /UC"ВашКлючДоступа"
Если перезагрузка служб 1С и SQL не помогает, разберем более глубокий метод очистки. Иногда сведения о блокировках «застревают» в файлах состояния кластера. В каталоге служебной информации сервера (обычно это C:\Program Files\1cv8\srvinfo) находятся папки с GUID-идентификаторами баз.
Выполним очистку по шагам:
snccntx — именно в ней хранятся данные о сеансах и блокировках.reg_1541), предварительно сделав их бэкап. Внимание: не удаляйте файлы лицензий .lic и конфигурационный файл 1cv8wsrv.lst.Посмотрим на ситуацию со стороны сервера баз данных. Бывают случаи, когда сеанс в 1С уже закрыт, но соединение (Process ID) в SQL Server продолжает удерживать блокировку на таблицы. Проанализируем список соединений в SQL Server Management Studio (SSMS). Через Activity Monitor или системное представление sys.dm_exec_sessions можно выявить процессы, которые обращаются к нашей базе.
Если мы видим активные процессы от пользователя, под которым работает служба 1С, и при этом в консоли 1С пусто — это повод для принудительного завершения соединений на стороне SQL командой KILL [SPID]. Однако делать это следует крайне осторожно, только убедившись, что служба 1С не выполняет критически важных операций.
Не забудем проверить наличие расширений. Рассмотрим, как они могут влиять на процесс обновления. Современные конфигурации, такие как 1С:Бухгалтерия предприятия 3.0, активно используют расширения. В них также могут быть определены свои фоновые задания. При обновлении основной конфигурации платформа выполняет проверку совместимости расширений, что может порождать кратковременные фоновые потоки.
Если ошибка повторяется регулярно, попробуйте временно отключить (снять флажок «Активно») все расширения перед запуском процесса обновления метаданных в Конфигураторе. После успешного обновления основной базы их можно будет включить обратно.
Подведем итоги нашего исследования. Если кнопка «Повторить» помогает, и процесс идет дальше — это признак того, что фоновое задание было кратковременным и успело завершиться. Но для «чистого» обновления без нервов рекомендуем следующий чек-лист:
rphost.Соблюдение этих правил позволит вам избежать ошибок разделенного доступа и сделает процесс сопровождения информационных систем 1С более стабильным и предсказуемым.