При обновлении технологической платформы системные администраторы и специалисты 1С нередко сталкиваются с ситуацией, когда файловая база данных при совместной работе в локальной сети начинает вести себя нетипично. Типичный сценарий: первый пользователь открывает программу, и сеанс наглухо зависает. База «отмирает» только тогда, когда второй пользователь на другом компьютере также инициирует вход в эту же информационную базу. При этом у администратора на локальном ПК всё может работать штатно. Разберем по шагам природу этой проблемы и выясним, какие действия помогут восстановить стабильную работу конфигураций 1C:Бухгалтерия.
Проанализируем ситуацию: в файловом режиме все клиентские приложения работают с одним общим файлом 1Cv8.1CD через стандартный сетевой протокол Windows (SMB). Начиная с линейки 8.3.8 разработчики платформы существенно переработали внутренний формат файловой базы данных (переход на страницы размером 8 Кб) и механизм сетевых блокировок. В некоторых промежуточных сборках (в частности, 8.3.8.2088) проявились ошибки обработки дескрипторов файлов и сетевых тайм-аутов при захвате диапазонов байт. Рассмотрим подробнее основные причины сбоя и практические шаги по его устранению.
В конкретном билде 8.3.8.2088 многие пользователи зафиксировали внутреннюю ошибку платформы, приводящую к дедлокам файлового монопольного доступа при сетевом открытии. Решим проблему корректировкой используемой версии платформы:
8.3.8.1747 полностью снимает симптом зависания первого сеанса. Если конфигурация требует версию не ниже указанной, этот релиз является минимально достаточным и проверенным решением.8.3.8.2197 или 8.3.9.1850, где ошибки сетевых блокировок нового формата базы были исправлены разработчиками.Когда первый пользователь подключается к сетевой шаре, сетевой стек Windows по умолчанию предоставляет ему так называемую оппортунистическую блокировку (SMB Oplock / Lease). Клиентская машина кэширует структуру файла локально, считая, что файл открыт монопольно. При попытке работы платформа пытается выставить диапазонные блокировки, но зависает в ожидании подтверждения от сервера. Когда подключается второй пользователь, сервер принудительно разрывает монопольную блокировку (Oplock break) и переводит файл в режим совместного доступа, после чего первый сеанс мгновенно «отвисает».
Для устранения этой сетевой коллизии выполним настройку на компьютере или сервере, где расположен общий сетевой ресурс с базой:
Set-SmbShare -Name "ИмяПапкиСБазой" -LeasingMode None
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters проверим наличие параметра EnableOplocks (тип DWORD) и установим его значение в 0, после чего перезапустим службу LanmanServer («Сервер»).*.1cd, *.1cl, *.cfl, а также исполняемый файл 1cv8.exe в исключения антивирусного сканирования на файловом сервере и всех рабочих станциях, чтобы исключить задержку дескрипторов антивирусом.При смене релиза платформы закэшированные метаданные и схемы компоновки старой версии могут конфликтовать с модулями новой платформы, вызывая зависание интерфейсного потока при старте системы.
1cv8.exe на рабочих местах пользователей.%LocalAppData%\1C\1cv8\%AppData%\1C\1cv8\Файловая платформа 1С в процессе работы динамически создает, изменяет и удаляет служебные файлы блокировок (1Cv8.1cl, 1Cv8tmp.1cd). Если у пользователя отсутствуют права на удаление файлов в каталоге, временные блокировки не снимаются корректно, что приводит к «мертвым» зависаниям последующих подключений.
Сбои при смене платформы могут быть вызваны накопленными внутренними ошибками таблиц базы данных. Выполним проверку целостности файла базы:
1Cv8.1CD простым копированием в отдельный каталог.chdbfl.exe, которая располагается в системном каталоге платформы (например, C:\Program Files (x86)\1cv8\8.3.8.2088\bin\chdbfl.exe).Работа с общей файловой базой через сетевой диск Windows (протокол SMB) изначально несет риски потери данных и конфликтов блокировок при одновременной работе нескольких пользователей. Чтобы навсегда исключить влияние сетевых сбоев и различий в правах доступа рабочих станций, рассмотрим два надежных способа архитектурной реорганизации:
1Cv8.1CD локально работает только веб-сервер, а протокол SMB полностью исключается из цепочки, что навсегда решает проблему файловых сетевых блокировок.