Почему зависает файловая база 1С при запуске первым пользователем по сети и как это исправить?

Системный администратор 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При обновлении технологической платформы системные администраторы и специалисты 1С нередко сталкиваются с ситуацией, когда файловая база данных при совместной работе в локальной сети начинает вести себя нетипично. Типичный сценарий: первый пользователь открывает программу, и сеанс наглухо зависает. База «отмирает» только тогда, когда второй пользователь на другом компьютере также инициирует вход в эту же информационную базу. При этом у администратора на локальном ПК всё может работать штатно. Разберем по шагам природу этой проблемы и выясним, какие действия помогут восстановить стабильную работу конфигураций 1C:Бухгалтерия.

Проанализируем ситуацию: в файловом режиме все клиентские приложения работают с одним общим файлом 1Cv8.1CD через стандартный сетевой протокол Windows (SMB). Начиная с линейки 8.3.8 разработчики платформы существенно переработали внутренний формат файловой базы данных (переход на страницы размером 8 Кб) и механизм сетевых блокировок. В некоторых промежуточных сборках (в частности, 8.3.8.2088) проявились ошибки обработки дескрипторов файлов и сетевых тайм-аутов при захвате диапазонов байт. Рассмотрим подробнее основные причины сбоя и практические шаги по его устранению.

Причина 1. Проблемный релиз платформы 1С:Предприятие

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

  1. Откат на стабильную базовую версию. Практика показывает, что установка релиза 8.3.8.1747 полностью снимает симптом зависания первого сеанса. Если конфигурация требует версию не ниже указанной, этот релиз является минимально достаточным и проверенным решением.
  2. Переход на более свежие исправленные сборки. Если возвращаться на старый релиз нежелательно из-за будущих обновлений конфигурации, перейдем на стабильные старшие версии той же ветки, например 8.3.8.2197 или 8.3.9.1850, где ошибки сетевых блокировок нового формата базы были исправлены разработчиками.
  3. Контроль версий на всех рабочих местах. Обязательно убедимся, что на всех клиентских компьютерах пользователей и на компьютере, где физически лежит база, установлена строго одинаковая версия платформы 1С:Предприятие. Несовпадение подверсий неизбежно приводит к конфликту сетевых протоколов взаимодействия с файлом базы.

Причина 2. Механизм упреждающих блокировок Windows (SMB Oplocks и Leases)

Когда первый пользователь подключается к сетевой шаре, сетевой стек Windows по умолчанию предоставляет ему так называемую оппортунистическую блокировку (SMB Oplock / Lease). Клиентская машина кэширует структуру файла локально, считая, что файл открыт монопольно. При попытке работы платформа пытается выставить диапазонные блокировки, но зависает в ожидании подтверждения от сервера. Когда подключается второй пользователь, сервер принудительно разрывает монопольную блокировку (Oplock break) и переводит файл в режим совместного доступа, после чего первый сеанс мгновенно «отвисает».

Для устранения этой сетевой коллизии выполним настройку на компьютере или сервере, где расположен общий сетевой ресурс с базой:

  1. Отключим режим аренды кэша SMB (Leasing Mode) для конкретной общей папки, выполнив команду в консоли PowerShell от имени администратора: Set-SmbShare -Name "ИмяПапкиСБазой" -LeasingMode None
  2. В реестре Windows по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters проверим наличие параметра EnableOplocks (тип DWORD) и установим его значение в 0, после чего перезапустим службу LanmanServer («Сервер»).
  3. Добавим расширения файлов *.1cd, *.1cl, *.cfl, а также исполняемый файл 1cv8.exe в исключения антивирусного сканирования на файловом сервере и всех рабочих станциях, чтобы исключить задержку дескрипторов антивирусом.

Причина 3. Очистка пользовательского кэша и повреждения временных файлов

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

  1. Закроем все процессы 1cv8.exe на рабочих местах пользователей.
  2. Очистим каталоги временных файлов пользователя, удалив папки с буквенно-цифровыми GUID-именами по следующим путям:
    • %LocalAppData%\1C\1cv8\
    • %AppData%\1C\1cv8\
  3. Удалим информационную базу из списка запуска 1С и добавим ее заново, что приведет к пересозданию локального идентификатора базы в реестре пользователя.

Причина 4. Недостаточные права на файловую систему NTFS

Файловая платформа 1С в процессе работы динамически создает, изменяет и удаляет служебные файлы блокировок (1Cv8.1cl, 1Cv8tmp.1cd). Если у пользователя отсутствуют права на удаление файлов в каталоге, временные блокировки не снимаются корректно, что приводит к «мертвым» зависаниям последующих подключений.

  1. Откроем свойства общей сетевой папки на вкладке Безопасность (NTFS).
  2. Убедимся, что учетным записям доменных пользователей или локальной группе предоставлены полные права «Изменение» (Modify), включающие в себя права на чтение, запись и обязательное удаление файлов и подпапок.
  3. На вкладке Доступ (Share Permissions) убедимся, что для общего ресурса также установлены права «Изменить» (Change) для всех работающих сотрудников.

Причина 5. Тестирование и исправление физической структуры базы

Сбои при смене платформы могут быть вызваны накопленными внутренними ошибками таблиц базы данных. Выполним проверку целостности файла базы:

  1. Обязательно создадим резервную копию файла 1Cv8.1CD простым копированием в отдельный каталог.
  2. Запустим штатную утилиту проверки целостности chdbfl.exe, которая располагается в системном каталоге платформы (например, C:\Program Files (x86)\1cv8\8.3.8.2088\bin\chdbfl.exe).
  3. Укажем путь к файлу базы данных, установим флаг «Исправлять обнаруженные ошибки» и нажмем кнопку Выполнить.
  4. Запустим базу в режиме «Конфигуратор» под правами администратора и выполним операцию меню Администрирование -> Тестирование и исправление... с включенными пунктами реиндексации и проверки логической целостности.

Альтернативные архитектурные решения без покупки сервера 1С

Работа с общей файловой базой через сетевой диск Windows (протокол SMB) изначально несет риски потери данных и конфликтов блокировок при одновременной работе нескольких пользователей. Чтобы навсегда исключить влияние сетевых сбоев и различий в правах доступа рабочих станций, рассмотрим два надежных способа архитектурной реорганизации:

  1. Публикация файловой базы на веб-сервере (IIS или Apache). На компьютере, где расположен файл базы, разворачивается бесплатный веб-сервер, после чего база публикуется через Конфигуратор. Пользователи подключаются через тонкий клиент 1С по защищенному протоколу HTTP/HTTPS. В этом сценарии с файлом 1Cv8.1CD локально работает только веб-сервер, а протокол SMB полностью исключается из цепочки, что навсегда решает проблему файловых сетевых блокировок.
  2. Использование терминального сервера (RDP). Все бухгалтеры подключаются к удаленному рабочему столу сервера, на котором расположена база данных. Программа запускается локально в рамках терминальных сессий, что обеспечивает максимальную скорость дисковых операций и устраняет сетевые зависания.
← На главную