Медленная работа файловых баз 1С, доступ к которым осуществляется по сети через общую папку («шару»), — одна из самых распространенных проблем. Особенно остро она проявляется при большом количестве баз и одновременной работе нескольких пользователей, даже если каждый работает в своей базе. Проанализируем ситуацию и разберем основные способы ускорения работы, от простых до кардинальных.
Основная причина медленной работы в том, что при файловом доступе по сети происходит интенсивный обмен данными между клиентским компьютером и сервером. Клиентское приложение 1С постоянно читает и пишет данные в файл базы данных (1Cv8.1CD), что создает огромную нагрузку на сеть и дисковую подсистему сервера. Давайте разберемся, как можно решить эту проблему.
Этот метод часто называют «клиент-сервером для бедных», и он представляет собой отличный компромисс между производительностью и затратами. Суть в том, что база остается файловой, но доступ к ней осуществляется не напрямую по сети, а через веб-сервер, установленный на том же компьютере, где лежат файлы баз.
Как это работает?
Основные преимущества:
На что обратить внимание:
При таком подходе каждый пользовательский сеанс создает на сервере отдельный процесс rphost, который потребляет оперативную память. Для большого количества баз и сеансов (как в рассматриваемом случае — 120 баз) необходимо иметь достаточный объем RAM на сервере. Рекомендуется внимательно следить за потреблением памяти и при необходимости увеличить ее объем.
Это наиболее производительное, масштабируемое и надежное решение, рекомендованное фирмой «1С» для многопользовательской работы. Оно подразумевает покупку лицензии на сервер 1С:Предприятие и использование полноценной системы управления базами данных (СУБД), например, MS SQL Server, PostgreSQL или Oracle.
Ключевые преимущества перед файловым режимом (включая работу через веб-сервер):
Основным недостатком этого варианта являются дополнительные затраты на лицензию сервера 1С и, возможно, СУБД.
Если переход на другую архитектуру пока невозможен, можно предпринять ряд шагов для улучшения производительности текущей схемы работы через сетевую папку. Эти меры не решат проблему кардинально, но могут дать заметное улучшение.
Тестирование и исправление в режиме Конфигуратора с флагами реиндексации и реструктуризации таблиц. Это оптимизирует структуру базы. Обязательно делайте резервную копию перед этой операцией.Это одна из главных причин «тормозов» в файловом режиме. Типовые конфигурации содержат десятки фоновых заданий, которые стартуют при входе пользователя.
Что можно сделать:
Администрирование – Обслуживание – Регламентные операции – Регламентные и фоновые задания. Проанализируйте список и отключите все задания, которые не используются: обновление новостей 1С, отправка статистики, полнотекстовый поиск (если им не пользуются) и т.д.
Для этого используется командная строка вида:
"C:\Program Files\1cv8\8.3.XX.YYYY\bin\1cv8.exe" ENTERPRISE /F"\\server\share\base_folder" /N"Admin" /P"password" /C "DoScheduledJobs"
Однако, как справедливо отмечается, для 120 баз это будет очень трудоемко в настройке и поддержке. Кроме того, в файловом режиме регламентные задания выполняются однопоточно, и нужно аккуратно планировать время их выполнения, чтобы они не пересекались и не вызывали конфликтов блокировок.
Итог: для системы с большим количеством баз, как в описанном случае, оптимизация текущей файловой архитектуры — это лишь временная мера. Наиболее эффективными и правильными в долгосрочной перспективе являются публикация на веб-сервере (как бюджетный шаг к улучшению) или полноценный переход на клиент-серверную архитектуру (как наиболее надежное и производительное решение).