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

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

При организации многопользовательской работы с файловой информационной базой 1С:Предприятие через стандартный сетевой доступ (общую папку Windows) нередко возникает ситуация, когда на локальном компьютере база запускается мгновенно, а на сетевых клиентах режим «1С:Предприятие» зависает на этапе запуска или выбора пользователя. При этом в диспетчере задач фиксируется постоянная сетевая активность процесса 1cv8.exe, а при одновременной работе нескольких пользователей начинаются критические зависания при открытии форм и проведении документов.

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

Причины зависаний файловой базы 1С при сетевом доступе через SMB

Выясним причину проблемы на уровне архитектуры файловой СУБД 1С и сетевого протокола SMB:

  1. Блокировки диапазонов байт (Byte-Range Locking). В файловом режиме платформа 1С обращается к единому файлу 1Cv8.1CD. Любая транзакция или чтение данных блокирует определенные диапазоны байт файла. При локальной работе ядро ОС обрабатывает такие блокировки мгновенно, но при работе по сети каждый запрос на блокировку и снятие блокировки превращается в сетевой вызов (RPC over SMB). В момент старта программы выполняются десятки тысяч таких запросов, что перегружает сетевой стек.
  2. Механизмы SMB Leasing и оппортунистические блокировки (Oplocks). Начиная с Windows 8 и Windows 10, протокол SMB 3.x агрессивно кэширует дескрипторы и части файлов на стороне клиента. При совместном доступе к одному файлу механизм отзыва лизинга (leasing break) и согласования кэша между десктопными клиентами часто приводит к взаимоблокировкам (deadlocks) и многоминутным зависаниям.
  3. Цифровое подписывание SMB-трафика (SMB Signing). В среде домена Active Directory групповые политики безопасности могут требовать подписи каждого сетевого пакета. Для операций со множеством мелких блоков данных это увеличивает задержки передачи (RTT), парализуя запуск 1С.
  4. Блокировка со стороны фоновых служб. Служба индексирования Windows Search или диспетчер очереди печати (spoolsv.exe) могут блокировать дескрипторы файлов или сетевые вызовы в момент инициализации сеанса.

Шаг 1. Диагностика зависания через Монитор ресурсов

Прежде чем менять системные настройки, определим, какой именно процесс или системный вызов блокирует запуск программы на клиентской машине:

  1. Откроем Диспетчер задач на зависшем клиентском компьютере (сочетание клавиш Ctrl + Shift + Esc).
  2. Перейдем на вкладку Производительность и нажмем ссылку Открыть монитор ресурсов.
  3. На вкладке ЦП найдем процесс 1cv8.exe (или 1cv8c.exe для тонкого клиента).
  4. Нажмем правой кнопкой мыши по процессу и выберем пункт Анализ цепочки ожидания (Analyze Wait Chain).
  5. Посмотрим, какой поток удерживает выполнение. Если процесс ожидает сетевого ввода-вывода или заблокирован внешней службой (например, службой печати spoolsv.exe), локализуем источник сбоя. В случае со службой печати достаточно очистить системную папку C:\Windows\System32\spool\PRINTERS и перезапустить службу.

Шаг 2. Оптимизация сетевого стека и параметров протокола SMB

Для минимизации задержек и исключения рассинхронизации кэша выполним корректировку параметров сети и реестра Windows на клиентских ПК и на компьютере, где физически хранится база.

1. Отключение кэширования метаданных SMB на клиентских ПК:

Запустим редактор реестра regedit и перейдем в ветку:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

Создадим или изменим следующие параметры типа DWORD (32 бита) со значением 0:

  1. DirectoryCacheLifetime = 0
  2. FileInfoCacheLifetime = 0
  3. FileNotFoundCacheLifetime = 0

Эти ключи отключают локальное кэширование структуры каталогов на клиенте, заставляя SMB обращаться за актуальным состоянием файла базы напрямую к хосту.

2. Отключение механизма SMB Leasing на компьютере с базой:

Запустим консоль PowerShell от имени администратора и выполним команду:

Set-SmbServerConfiguration -EnableLeasing $false -Force

3. Настройка параметров TCP и сетевой карты:

В командной строке (cmd), запущенной от имени администратора, выполним команды для стабилизации сетевых очередей:


netsh interface tcp set global autotuninglevel=restricted
netsh interface tcp set global rss=disabled

В Диспетчере устройств откроем свойства сетевого адаптера, перейдем на вкладку Дополнительно и отключим энергосберегающие функции и аппаратную разгрузку: Large Send Offload (LSO), Energy Efficient Ethernet и Interrupt Moderation.

4. Исключение базы из индексации:

Откроем Параметры индексирования Windows на хосте и исключим папку с информационной базой и файлы с расширением .1CD из области поиска Windows Search.

Шаг 3. Альтернативное решение без покупки лицензий — публикация на веб-сервере

Работа с общей папкой через SMB является устаревшим и наименее надежным способом подключения. Штатной и бесплатной альтернативой является публикация файловой базы на веб-сервере (IIS или Apache).

Рассмотрим преимущества данного подхода:

  1. Все операции чтения и записи в файл 1Cv8.1CD выполняет веб-сервер локально на том компьютере, где база хранится.
  2. Полностью исключаются сетевые блокировки SMB, сетевой протокол не перегружается мелкими блокировками диапазонов байт.
  3. Клиентские рабочие места подключаются через Тонкий клиент 1С по протоколу HTTP/HTTPS, передавая только полезные данные форм и отчетов.

Разберем порядок публикации:

  1. На компьютере с базой включим компоненты Internet Information Services (IIS) через «Включение или отключение компонентов Windows» (или установим Apache).
  2. Запустим 1С:Предприятие в режиме Конфигуратор от имени администратора.
  3. В главном меню выберем Администрирование → Публикация на веб-сервере...
  4. Укажем имя публикации, выберем установленный веб-сервер и каталог публикации, после чего нажмем кнопку Опубликовать.
  5. На клиентских компьютерах в окне запуска 1С добавим базу, выбрав вариант подключения На веб-сервере, и укажем URL-адрес созданной публикации.

Шаг 4. Переход на клиент-серверный вариант (SQL)

Если количество активных пользователей превышает 3–5 человек либо база данных интенсивно растет, наиболее надежным решением является перевод базы в клиент-серверный режим.

Для небольших рабочих групп оптимальным решением является связка бесплатной СУБД (например, Microsoft SQL Server Express или PostgreSQL) и лицензии 1С:Предприятие 8.3 Сервер МИНИ (до 5 подключений). Это полностью устраняет любые проблемы с сетевыми блокировками файлов, обеспечивает транзакционную целостность данных и защищает базу от повреждений при аварийном отключении клиентских машин.

← На главную