При активной разработке и поддержке решений на платформе 1С:Предприятие 7.7 системные администраторы и программисты часто сталкиваются с ситуацией, когда при попытке сохранить изменения в конфигураторе для тестовой копии возникает ошибка разделения доступа к файлу 1Cv7.MD. Анализ процессов показывает, что блокировку удерживают сеансы пользователей, работающих совершенно в другой (рабочей) информационной базе на том же сервере.
В этой статье разберем, почему возникает захват чужих файлов метаданных, как оперативно снять блокировку и какие действия необходимо предпринять для предотвращения подобных сбоев в будущем.
Проанализируем механику работы платформы 1С 7.7 и операционной системы Windows при работе нескольких информационных баз в терминальном режиме. Конфигуратор 7.7 требует строго монопольного доступа на запись к файлу 1Cv7.MD в момент сохранения структуры данных. Если сторонний процесс держит дескриптор этого файла даже в режиме чтения, операционная система блокирует его изменение.
Существует три основные причины перекрестного захвата файлов метаданных:
*.lck) в общем или текущем рабочем каталоге, вызывая конфликты доступа.1cv7s.exe. Если процесс рабочей базы ссылается на каталог с копией ИБ, файл 1Cv7.MD в копии попадает под блокировку.КаталогИБ().Рассмотрим первоочередной шаг по устранению проблемы — явное разграничение рабочих папок пользователей в информационной базе.
Для каждого пользователя в конфигураторе 1С 7.7 необходимо установить уникальный каталог. Проделаем следующие шаги:
usr\ИмяПользователя).Настройка уникальных каталогов предотвращает некорректное создание файлов блокировок и наложение прав доступа при одновременно запущенных сеансах.
Проанализируем размещение папок на сервере. Если копия информационной базы создается внутри дерева каталогов рабочей базы (например, в подпапке .../Base/Copy/), процессы рабочей базы будут систематически блокировать файлы копии при сканировании каталогов.
Сформулируем правила правильного размещения дорабатываемых баз:
Если блокировка уже произошла, а завершать сеансы пользователей рабочей базы нельзя, разберем способ быстрого освобождения дескриптора файла 1Cv7.MD без перезапуска сервера.
Для определения и снятия блокировок используем специальное ПО:
1Cv7.MD и выберем пункт Unlocker (либо запустим утилиту через поиск дескрипторов в Process Explorer).1cv7s.exe, удерживающие файл из чужой базы, и выберем команду Разблокировать (Unlock) или Разблокировать все (Unlock All).После освобождения дескриптора файловой системы конфигуратор 1С 7.7 успешно сохранит метаданные без необходимости выгонять пользователей из системы.