Медленная работа файловой базы 1С при обращении к ней через локальную сеть — одна из классических проблем, с которой сталкиваются пользователи и системные администраторы. Даже при наличии современной 100-мегабитной или гигабитной сети интерфейс «зависает», документы открываются долго, а формирование отчетов превращается в бесконечное ожидание. Рассмотрим детально, почему так происходит, и разберем по шагам наиболее эффективные способы решения этой задачи.
Для начала выясним причину низкой производительности. В случае обычной файловой базы, расположенной в «расшаренной» папке Windows, вся работа с данными ложится на плечи клиентского компьютера. Когда вы запускаете Тонкий клиент, он создает внутри своего процесса так называемую «специализированную серверную среду». Несмотря на название «тонкий», в этой конфигурации он вынужден самостоятельно считывать страницы файла базы данных 1Cv8.1cd через сетевой протокол SMB.
Проблема заключается в том, что для выполнения даже простого запроса (например, поиск товара по штрихкоду) платформе часто требуется просканировать значительную часть таблицы. Проанализируем ситуацию: если таблица номенклатуры весит 100 МБ, то при отсутствии эффективных индексов или при необходимости полного сканирования, эти 100 МБ будут физически переданы по сети от сервера к клиенту. При реальной скорости 100-мегабитной сети (около 10-11 МБ/сек) только чтение одной этой таблицы займет 10 секунд. Добавьте сюда накладные расходы протокола SMB на блокировки файлов и подтверждение пакетов, и вы получите крайне медленную работу системы.
Это самый эффективный и рекомендуемый способ ускорения файловой базы без покупки серверной лицензии 1С. Разберем принцип работы: веб-сервер устанавливается на тот же компьютер, где физически лежит база. В адресное пространство веб-сервера загружается модуль расширения 1С, который работает с файлом 1Cv8.1cd локально. Клиентские компьютеры подключаются к веб-серверу по протоколу HTTP/HTTPS. По сети передаются не сырые данные файла, а уже готовые результаты запросов и структуры форм.
Пошаговый алгоритм настройки на базе IIS:
Roznica) и тип веб-сервера (IIS).Теперь на клиентских машинах при добавлении базы выберем тип подключения «На веб-сервере» и укажем адрес вида http://имя_сервера/Roznica. Это позволит кардинально снизить нагрузку на сеть, так как объем передаваемого трафика сократится в десятки раз.
Начиная с версии платформы 8.3.14, компания 1С представила «Автономный сервер». Проанализируем его преимущества: это упрощенный сервер приложений, который может работать с файловой базой. Он позволяет подключать до трех сеансов одновременно без необходимости покупки полноценной лицензии на сервер 1С:Предприятия.
Автономный сервер работает быстрее, чем связка с внешним веб-сервером, так как он оптимизирован специально под задачи 1С. Для его запуска используется утилита ibcmd. Рассмотрим пример команды запуска в командной строке:
ibcmd server --db-path="C:\1C_Bases\Retail" --port=8080
После запуска сервер начнет принимать входящие соединения по указанному порту. Клиенты подключаются к нему аналогично веб-серверу, что избавляет систему от медленного сетевого доступа к файлам.
Если по каким-то причинам использование веб-сервера невозможно, попробуем максимально разогнать текущую схему работы через SMB. Рассмотрим несколько критических настроек:
Energy Efficient Ethernet и Green Ethernet. Эти опции переводят карту в режим пониженного энергопотребления при микропаузах, что создает задержки (latency), губительные для 1С..1cd, но и файлы временных блокировок .1cl, а также временные файлы пользователя в папке %TEMP%\1cv8. Постоянная проверка файлов блокировок антивирусом при каждом обращении любого пользователя практически полностью парализует работу системы по сети.Иногда причина тормозов кроется не в сети, а в состоянии самого файла информационной базы. Выполним следующие действия:
Сжатие таблиц и реиндексация:
В процессе работы (удаление объектов, массовое перепроведение) внутри файла 1Cv8.1cd образуются пустоты и фрагментация данных. Рассмотрим процедуру лечения:
Увеличение размера страницы:
Для крупных файловых баз (более 2-3 Гб) стандартный размер страницы данных в 4 Кб или 8 Кб может быть неэффективным. При создании базы или через утилиту cnvdbutl (поставляется с платформой) можно конвертировать базу, установив размер страницы 32 Кб или 64 Кб. Это уменьшит количество операций ввода-вывода (IOPS) при чтении больших таблиц по сети.
Если база работает крайне медленно, а бюджет не позволяет купить SQL-сервер, разберем вариант с удаленным рабочим столом. В этой схеме и база, и клиентское приложение 1С запускаются локально на одном мощном компьютере (сервере). Пользователи подключаются к серверу через RDP и видят только «картинку» интерфейса.
Почему это работает быстро?
1Cv8.1cd происходит на локальной дисковой шине.Для небольшой розничной точки с 2-3 продавцами это решение часто оказывается самым стабильным, так как оно менее чувствительно к качеству Wi-Fi или локальной сети, чем тонкий клиент, работающий напрямую с файлом.
Выясним причину тормозов: в 90% случаев это использование «сетевой шары». Для исправления ситуации мы рекомендуем в первую очередь рассмотреть публикацию на веб-сервере Apache или IIS. Это даст наиболее ощутимый прирост скорости интерфейса. Если версия платформы позволяет, используйте Автономный сервер. В крайнем случае — настройте терминальный доступ. Помните, что простая замена 100-мегабитной сети на гигабитную без смены архитектуры доступа (с SMB на HTTP) даст лишь незначительный эффект, так как проблема кроется в логике обработки данных файловой версией 1С.