Как исправить ошибку «Не удалось заблокировать таблицу» при создании пользователя в 1С?

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

При выполнении служебных операций в 1С:Предприятие, таких как создание нового пользователя или редактирование прав доступа, администратор или программист может столкнуться с критической ошибкой вида: «Не удалось заблокировать таблицу '_INFORG9057'» (или другой служебной таблицы регистра). При этом повторяющиеся попытки записать объект не дают результата и приводят к аналогичной ошибке. В этой статье разберем, почему возникает подобная проблема в файловом режиме работы и как успешно её устранить.

Выясним причины возникновения ошибки блокировки

Проанализируем технические особенности работы платформы 1С в файловом режиме. В отличие от полноценных клиент-серверных СУБД (например, PostgreSQL или MS SQL Server), где блокировка устанавливается на уровне отдельных строк, файловый движок (файл 1Cv8.1CD) использует табличные блокировки. Это означает, что при изменении любой записи платформа блокирует всю таблицу целиком.

При записи нового пользователя в конфигурации 1С:Управление нашей фирмой (УНФ) и других решениях на базе Библиотеки Стандартных Подсистем (БСП) программа одновременно обновляет данные в нескольких служебных регистрах сведений (таких как идентификаторы объектов метаданных, права ролей, пользовательские настройки). Если в этот момент происходят следующие события, возникает конфликт:

  1. Фоновые процессы и регламентные задания: В фоновом режиме может выполняться обновление индекса полнотекстового поиска, автосинхронизация или проведение итогов.
  2. Зависшие сеансы и блокировочные файлы: При аварийном завершении работы 1С (выключение питания, снятие процесса через Диспетчер задач) в папке информационной базы остаются «зависшие» временные файлы блокировок.
  3. Захват файлов сторонним ПО: Антивирусное программное обеспечение или служба индексации файлов Windows Search могут временно блокировать доступ к файлу базы данных.
  4. Работа через общую сетевую папку: Ограничения сетевого протокола SMB и механизмов кэширования Windows часто вызывают задержки при снятии блокировок.

Шаг 1. Очистка кэша и завершение зависших сеансов

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

  1. Попросим всех пользователей выйти из 1С и закроем все запущенные экземпляры программы (включая Конфигуратор).
  2. Откроем Диспетчер задач Windows и проверим, чтобы в списке процессов отсутствовали процессы 1cv8.exe и 1cv8c.exe. При необходимости завершим их принудительно.
  3. Выполним очистку локального кэша платформы 1С на рабочем столе пользователя, у которого возникает ошибка.

Шаг 2. Очистка каталога базы данных от временных файлов блокировок

Посмотрим, как удалить некорректно снятые блокировки прямо из каталога с файловой базой. Перейдем в папку, где расположен файл информационной базы 1Cv8.1CD.

Внимательно удалим все временные и блокировочные файлы. Критически важно не удалить сам файл базы данных 1Cv8.1CD!

Удалению подлежат файлы со следующими расширениями и именами:

  1. Файлы блокировок с расширением .1CL.
  2. Временные файлы конфигурации с расширением .1CF и 1Cv8tmp.*.
  3. Служебные файлы сеансов с расширениями .cdn, .lck.

Шаг 3. Выгрузка и загрузка информационной базы через Конфигуратор

Рассмотрим наиболее эффективный способ восстановления внутренней структуры таблиц и индексов файловой базы — выгрузку и последующую загрузку информационной базы через файл дампа (.dt).

Разберем процесс по шагам:

  1. Запустим платформу 1С в режиме Конфигуратор в монопольном режиме (убедившись, что в базе больше никто не работает).
  2. В главном меню выберем пункт Администрирование > Выгрузить информационную базу...
  3. Укажем путь для сохранения файла архива с расширением .dt и дождемся завершения процесса выгрузки.
  4. После успешного сохранения файла выберем пункт меню Администрирование > Загрузить информационную базу... и укажем только что созданный файл .dt.

Процесс выгрузки и последующей загрузки полностью пересоздает структуру таблиц и индексы файла 1Cv8.1CD, полностью устраняя застрявшие табличные блокировки и фрагментацию данных.

Шаг 4. Проверка целостности базы утилитой chdbfl.exe

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

  1. Зайдем в каталог установки платформы 1С, например: C:\Program Files\1cv8\8.3.X.X\bin\.
  2. Запустим исполняемый файл chdbfl.exe.
  3. В поле «Имя файла БД» укажем путь к нашему файлу 1Cv8.1CD.
  4. Установим флажок Исправлять ошибки и нажмем кнопку Выполнить.

Шаг 5. Настройка исключений антивируса и индексации

Чтобы предотвратить повторное возникновение блокировок таблиц в будущем, проанализируем настройки безопасности операционной системы:

  1. Добавим каталог информационной базы и исполняемые файлы 1С (1cv8.exe, 1cv8c.exe) в список исключений вашего антивирусного программного обеспечения.
  2. Исключим папку с файловой базой из службы индексирования файлов Windows Search.
  3. Если база находится в общей сетевой папке, рассмотрим вариант публикации базы на веб-сервере (IIS или Apache), что значительно повысит стабильность работы и исключит сетевые конфликты файлового доступа.

После выполнения указанных рекомендаций зайдём в программу в монопольном режиме и повторим создание пользователя. Проблема с блокировкой таблицы _INFORG9057 будет полностью решена.

← На главную