Организация совместной работы с файловой базой 1С:Предприятие 8.3 силами подручных средств — частая задача в небольших компаниях с ограниченным бюджетом. Нередко возникает идея выделить отдельный старый системный блок с установленной операционной системой Windows XP в качестве файлового хранилища (файлопомойки) и предоставить общий сетевой доступ к каталогу базы данных (файл 1Cv8.1CD).
Однако при подключении уже двух пользователей даже на относительно небольших базах (1–1.5 ГБ) система начинает демонстрировать резкое падение производительности, зависания при проведении документов и задержки интерфейса. Разберем детально, почему это происходит, с какими архитектурными ограничениями сталкивается платформа 1С и как правильно решить данную проблему.
Проанализируем физику процессов, происходящих при совместной работе пользователей с файловой базой 1С по сети:
1Cv8.1CD подключен только один клиент, операционная система задействует механизм OpLocks, позволяя клиентскому компьютеру кэшировать данные и структуры в локальной оперативной памяти. Как только второй пользователь открывает базу, сервер немедленно отзывает (сбрасывает) блокировки OpLocks. Начиная с этого момента, любое чтение, запись и сверка блокировок выполняются строго по сети в реальном времени. Это вызывает лавинообразный рост сетевых задержек (latency) даже при слабой загрузке канала.1Cv8.1CD. Сетевой стек клиентской Windows XP не оптимизирован под обработку такого интенсивного параллельного потока файловых локов, в результате чего сеансы пользователей подолгу простаивают в ожидании освобождения страниц.LanmanServer.Одним из стандартных способов ухода от сетевых файловых блокировок является публикация базы на веб-сервере (Apache или IIS). Однако этот метод подходит исключительно для конфигураций на базе Управляемых форм. Если в организации используется конфигурация на Обычных формах (например, «Бухгалтерия государственного учреждения» редакции 1.0), веб-клиент и тонкий клиент не смогут отобразить интерфейс: при подключении через браузер после успешной авторизации пользователь увидит абсолютно пустой рабочий стол.
Для конфигураций на обычных формах веб-сервер в файловом варианте не применим без глобальной переработки всех форм в управляемый режим или перехода на современную редакцию конфигурации (например, БГУ 2.0).
Если замена операционной системы или покупка специализированных лицензий в текущий момент невозможна, рассмотрим шаги по выжиманию максимальной производительности из связки Windows XP и Windows 7:
LanmanServer в режим выделенного сервера файлов. Для этого в системном реестре по пути HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters зададим параметры:
Установим значение Size (тип DWORD) равным 3 (максимальная производительность файлового сервера).
Увеличим параметры MaxMpxCt и MaxWorkItems для расширения лимита параллельных мультиплексированных сетевых запросов.
Расширения файлов 1С: *.1CD, *.1CL, *.cgr, *.pfl, *.tlg.
Каталог сетевой папки с базой данных и локальные папки временных файлов (%TEMP%, %APPDATA%\1C\1Cv8).
Разберем варианты модернизации инфраструктуры, которые гарантируют стабильную и безопасную работу с базой данных:
Важное предостережение: работа с файловой базой по сети без терминального доступа несет высокий риск повреждения структуры базы (ошибка Файл базы данных поврежден или обнуление размера до 4 КБ) при внезапном отключении электропитания или сетевых сбоях на клиентских машинах. Обязательно настройте регулярное ежедневное резервное копирование каталога базы данных.