Почему в 1С 7.7 возникает ошибка -50 Locking File 1SUSER.DBF и как ее исправить

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

Работа в классических версиях 1С:Предприятия 7.7 часто сопровождается специфическими техническими сложностями, которые обусловлены возрастом платформы и ее взаимодействием с современными операционными системами. Одной из самых неприятных проблем является внезапное «вышибание» одного или нескольких пользователей из базы с сообщением error# :-50 Locking File 1SUSER.DBF. В данной статье мы подробно разберем, почему возникает эта ошибка и как стабилизировать работу системы.

Природа возникновения ошибки и роль файла 1SUSER.DBF

Для начала проанализируем, за что отвечает файл 1SUSER.DBF. В файловом варианте 1С 7.7 этот файл является своего рода списком активных соединений. При каждом входе пользователя программа обращается к нему, чтобы зафиксировать сессию, а при выходе — удаляет соответствующую запись. Ошибка -50 Locking File означает, что движку базы данных (CodeBase) не удалось установить блокировку на этот файл или получить к нему монопольный доступ в нужный момент времени.

Разберем ситуацию: если два пользователя работают стабильно, а третьего «выкидывает» каждые 15-20 минут, проблема, скорее всего, кроется не в самой конфигурации 1С, а в физической среде передачи данных или настройках конкретной рабочей станции.

Шаг 1: Проверка настроек энергосбережения сетевой карты

Одной из наиболее распространенных причин кратковременных обрывов связи является чрезмерная «экономичность» современных сетевых адаптеров. Разберем по шагам, как это проверить и исправить:

  1. Откроем Диспетчер устройств на компьютере проблемного пользователя.
  2. Найдем раздел «Сетевые адаптеры» и выберем используемую карту.
  3. Перейдем в «Свойства», а затем на вкладку Управление электропитанием.
  4. Снимем галочку с пункта Разрешить отключение этого устройства для экономии энергии.
  5. На вкладке «Дополнительно» найдем параметры, связанные с Energy Efficient Ethernet или Green Ethernet, и установим их в значение Disabled.

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

Шаг 2: Настройка механизмов блокировки Windows (OpLocks)

Проанализируем механизм Opportunistic Locking (OpLocks). Этот функционал Windows позволяет клиенту кэшировать файлы локально для ускорения работы. Однако 1С 7.7 требует немедленного отражения изменений в файлах блокировок. Если сервер не успевает вовремя оповестить клиента о необходимости снять блокировку, возникает ошибка -50.

Для решения проблемы на стороне сервера (где лежит база) и на рабочих станциях рекомендуется внести изменения в реестр:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
"EnableOplocks"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"UseOpportunisticLocking"=dword:00000000

После внесения изменений обязательна перезагрузка системы. Это заставит Windows работать с файлами в режиме «как есть», без опасного для старых баз кэширования.

Шаг 3: Настройка протокола SMB и кэширования имен

Современные версии ОС (Windows 10/11) используют протоколы SMB 2 и SMB 3, которые агрессивно кэшируют информацию о наличии файлов в директориях. Выясним причину: если 1С пытается создать или заблокировать временный файл, а кэш системы говорит, что файл еще занят (хотя это не так), происходит сбой.

Рассмотрим применение следующих настроек в реестре на клиентском компьютере для отключения кэширования каталогов:


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"DirectoryCacheLifetime"=dword:00000000
"FileNotFoundCacheLifetime"=dword:00000000
"FileInfoCacheLifetime"=dword:00000000

Это гарантирует, что 1С будет получать актуальную информацию о состоянии 1SUSER.DBF прямо с сервера, не полагаясь на устаревшие данные локального кэша.

Шаг 4: Лимиты открытых файлов и сессий

Проанализируем ситуацию, когда база данных размещена не на серверной ОС, а на обычной рабочей станции. В Windows 10/11 существует жесткое ограничение на количество одновременных подключений по сети (обычно до 20). Однако важно помнить, что один пользователь 1С 7.7 может открывать десятки файлов .DBF и .CDX одновременно.

Если лимит открытых файлов на «сервере» исчерпан, система начнет принудительно закрывать старые дескрипторы, что приведет к ошибке у одного из пользователей. В этом случае решением будет либо перенос базы на Windows Server, либо использование 1С через RDP (удаленный рабочий стол), чтобы все операции с файлами происходили локально внутри сервера.

Шаг 5: Права доступа и антивирусное ПО

Иногда корень проблемы кроется в правах доступа к папке с базой данных. Разберем рекомендации по настройке:

  1. Пользователи должны иметь права Изменение (Modify) на всю папку с базой данных и все вложенные объекты.
  2. Особое внимание уделите антивирусу. Добавьте расширения *.dbf и *.cdx в исключения сканирования.
  3. Если проблема сохраняется, попробуйте временно отключить антивирус на проблемном ПК, чтобы исключить его влияние на блокировку 1SUSER.DBF.

Как показывает практика (сообщение 22 в обсуждении), иногда помогает простой перенос базы в другой каталог. Это может быть связано с тем, что в новом расположении сбрасываются «залипшие» права доступа или очищаются старые дескрипторы файловой системы.

Шаг 6: Очистка базы от «фантомных» блокировок

Если ни один из способов не помог, выполним профилактику самой базы данных:

  1. Попросим всех пользователей выйти из 1С.
  2. Убедимся через «Диспетчер задач» или «Управление компьютером» на сервере, что открытых сессий к файлам базы нет.
  3. Найдем в каталоге базы файл 1SUSER.DBF и удалим его (предварительно сделав бэкап). При следующем запуске 1С пересоздаст этот файл автоматически в «чистом» виде.
  4. Также рекомендуется удалить все индексные файлы с расширением .CDX и запустить 1С в монопольном режиме для восстановления индексов.

Подведем итог: ошибка -50 в 1С 7.7 почти всегда является следствием нестабильной сетевой среды или конфликта механизмов кэширования Windows с устаревшим методом работы 1С с файлами. Комплексная настройка сетевых карт и параметров реестра позволяет полностью устранить эти вылеты.

← На главную