Разберем распространенную проблему, с которой сталкиваются системные администраторы и пользователи платформы «1С:Предприятие 7.7»: при работе одного пользователя файловая база данных (DBF) в общей сетевой папке работает быстро, но стоит подключиться второму участнику, как вся система начинает крайне медленно выполнять любые запросы, отчеркивания и поиск по справочникам.
Выясним причину такого поведения и подробно рассмотрим основные способы устранения сетевых задержек.
Проанализируем механику работы файловой базы 1С 7.7 в сетевой среде Windows. Когда с файлами базы данных работает только один ПК, операционная система использует механизмы агрессивного локального кэширования файлов .dbf и .cdx в оперативную память. Это реализуется с помощью технологии оппортунистических блокировок (OpLocks) сетевого протокола SMB.
Как только к сетевой папке подключается второй сеанс 1С (с другой машины или локально на ПК с базой), Windows фиксирует коллективный доступ и производит сброс кэша (происходит Oplock Break). В результате локальное кэширование на клиентах полностью отключается, и каждый поиск или считывание записей превращается в сотни синхронных сетевых запросов. Это и приводит к падению скорости работы в десятки раз.
Разберем наиболее эффективное и рекомендуемое решение для файловых баз 1С 7.7 — перевод пользователей в режим терминального доступа.
Посмотрим, какие системные настройки помогут ускорить сетевой обмен, если организация терминального сервера временно недоступна.
LanmanServer\Parameters параметр EnableOplocks со значением 0). На клиентских компьютерах отключим таймауты кэширования метаданных SMB в ветке LanmanWorkstation\Parameters.C:\1C_User), а не в сетевой папке. Это снизит нагрузку за счет локального хранения служебных файлов и настроек..dbf, .cdx, .md, .dd, .lck в список исключений сканирования антивирусных программ на всех ПК.Рассмотрим вариант устранения сетевых задержек без покупки лицензий на сервер терминалов с помощью сторонних утилит.
Компонента V7DBNet (Сервер Вирт) переводит работу 1С 7.7 из режима файловых блокировок в режим транзакций с кэшированием данных. При таком подходе файлы DBF не предоставляются в общий сетевой доступ Windows — с ними работает один процесс-сервер на главной машине, а клиентские приложения обмениваются с ним данными по оптимизированному протоколу. Это полностью устраняет «проблему второго пользователя» в сетевом режиме.
Проанализируем способ кардинального решения проблемы путем изменения формата хранения данных.
Платформа 1С 7.7 поддерживает работу с СУБД MS SQL Server. В SQL-режиме выборка и обработка данных выполняются на стороне сервера базы данных, а клиентские станции получают только готовый результат запроса. Для небольших организаций также существуют решения по интеграции 1С 7.7 с бесплатными СУБД (PostgreSQL или SQLite) с помощью внешних библиотек доступа, что исключает сетевые сбои файловой системы DBF.