Почему пользователи одной базы 1С 7.7 блокируют файл 1Cv7.MD в копии базы?

Системный администратор 1С v7.7
← На главную

При активной разработке и поддержке решений на платформе 1С:Предприятие 7.7 системные администраторы и программисты часто сталкиваются с ситуацией, когда при попытке сохранить изменения в конфигураторе для тестовой копии возникает ошибка разделения доступа к файлу 1Cv7.MD. Анализ процессов показывает, что блокировку удерживают сеансы пользователей, работающих совершенно в другой (рабочей) информационной базе на том же сервере.

В этой статье разберем, почему возникает захват чужих файлов метаданных, как оперативно снять блокировку и какие действия необходимо предпринять для предотвращения подобных сбоев в будущем.

Выясняем причины блокировки файла 1Cv7.MD

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

Существует три основные причины перекрестного захвата файлов метаданных:

  1. Пересечение или некорректная настройка каталогов пользователей: Если в конфигураторе в списке пользователей не зафиксированы персональные каталоги (или пути прописаны некорректно), платформой 1С могут создаваться временные файлы и файлы блокировок (*.lck) в общем или текущем рабочем каталоге, вызывая конфликты доступа.
  2. Изменение текущей рабочей директории процесса (Current Working Directory): В процессе работы пользователи могут открывать внешние обработки, печатные формы или диалоги выбора файлов. При навигации по файловой системе Windows меняет текущую папку процесса 1cv7s.exe. Если процесс рабочей базы ссылается на каталог с копией ИБ, файл 1Cv7.MD в копии попадает под блокировку.
  3. Особенности внешних компонент и модулей защиты: Защитные модули и драйверы (например, от отраслевых решений Рарус) при проверке лицензий и целостности могут считывать файлы метаданных по первому доступному пути или через системный реестр, а не строго по функции КаталогИБ().

Шаг 1. Настройка персональных каталогов пользователей

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

Для каждого пользователя в конфигураторе 1С 7.7 необходимо установить уникальный каталог. Проделаем следующие шаги:

  1. Откроем информационную базу в режиме Конфигуратор.
  2. Перейдем в меню Администрирование — Пользователи.
  3. Для каждой учетной записи откроем свойства и в поле Каталог пользователя зададим относительный или явный изолированный путь (например, usr\ИмяПользователя).
  4. Убедимся, что указанные папки созданы внутри каталога соответствующей информационной базы и не пересекаются с другими базами.

Настройка уникальных каталогов предотвращает некорректное создание файлов блокировок и наложение прав доступа при одновременно запущенных сеансах.

Шаг 2. Изоляция каталога копии базы данных

Проанализируем размещение папок на сервере. Если копия информационной базы создается внутри дерева каталогов рабочей базы (например, в подпапке .../Base/Copy/), процессы рабочей базы будут систематически блокировать файлы копии при сканировании каталогов.

Сформулируем правила правильного размещения дорабатываемых баз:

  1. Выносите копию базы на совершенно другой логический диск или в корень структуры папок, полностью изолировав ее от рабочей ИБ.
  2. Задавайте ярлыкам запускных файлов в терминальном сеансе явное значение поля Рабочая папка (Start in), указывающее строго на каталог запускаемой базы.

Шаг 3. Оперативное снятие блокировки файла утилитой Unlocker

Если блокировка уже произошла, а завершать сеансы пользователей рабочей базы нельзя, разберем способ быстрого освобождения дескриптора файла 1Cv7.MD без перезапуска сервера.

Для определения и снятия блокировок используем специальное ПО:

  1. Установим утилиту Unlocker соответствующей разрядности (для 64-битных ОС Windows Server 2008 R2 и выше требуется 64-битная версия программы).
  2. В проводнике вызовем контекстное меню на заблокированном файле 1Cv7.MD и выберем пункт Unlocker (либо запустим утилиту через поиск дескрипторов в Process Explorer).
  3. Найдем процессы 1cv7s.exe, удерживающие файл из чужой базы, и выберем команду Разблокировать (Unlock) или Разблокировать все (Unlock All).

После освобождения дескриптора файловой системы конфигуратор 1С 7.7 успешно сохранит метаданные без необходимости выгонять пользователей из системы.

← На главную