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

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

Медленная работа файловой базы 1С при обращении к ней через локальную сеть — одна из классических проблем, с которой сталкиваются пользователи и системные администраторы. Даже при наличии современной 100-мегабитной или гигабитной сети интерфейс «зависает», документы открываются долго, а формирование отчетов превращается в бесконечное ожидание. Рассмотрим детально, почему так происходит, и разберем по шагам наиболее эффективные способы решения этой задачи.

Анализируем причину: почему сетевая шара — это плохо?

Для начала выясним причину низкой производительности. В случае обычной файловой базы, расположенной в «расшаренной» папке Windows, вся работа с данными ложится на плечи клиентского компьютера. Когда вы запускаете Тонкий клиент, он создает внутри своего процесса так называемую «специализированную серверную среду». Несмотря на название «тонкий», в этой конфигурации он вынужден самостоятельно считывать страницы файла базы данных 1Cv8.1cd через сетевой протокол SMB.

Проблема заключается в том, что для выполнения даже простого запроса (например, поиск товара по штрихкоду) платформе часто требуется просканировать значительную часть таблицы. Проанализируем ситуацию: если таблица номенклатуры весит 100 МБ, то при отсутствии эффективных индексов или при необходимости полного сканирования, эти 100 МБ будут физически переданы по сети от сервера к клиенту. При реальной скорости 100-мегабитной сети (около 10-11 МБ/сек) только чтение одной этой таблицы займет 10 секунд. Добавьте сюда накладные расходы протокола SMB на блокировки файлов и подтверждение пакетов, и вы получите крайне медленную работу системы.

Решение №1: Публикация базы на веб-сервере (IIS или Apache)

Это самый эффективный и рекомендуемый способ ускорения файловой базы без покупки серверной лицензии 1С. Разберем принцип работы: веб-сервер устанавливается на тот же компьютер, где физически лежит база. В адресное пространство веб-сервера загружается модуль расширения 1С, который работает с файлом 1Cv8.1cd локально. Клиентские компьютеры подключаются к веб-серверу по протоколу HTTP/HTTPS. По сети передаются не сырые данные файла, а уже готовые результаты запросов и структуры форм.

Пошаговый алгоритм настройки на базе IIS:

  1. Установим компоненты IIS в Windows через «Включение или отключение компонентов Windows». Обязательно выберем поддержку CGI и ISAPI.
  2. Запустим 1С:Предприятие от имени администратора.
  3. Зайдем в конфигуратор вашей базы.
  4. Перейдем в меню Администрирование — Публикация на веб-сервере.
  5. Выберем имя публикации (например, Roznica) и тип веб-сервера (IIS).
  6. Нажмем кнопку Опубликовать.

Теперь на клиентских машинах при добавлении базы выберем тип подключения «На веб-сервере» и укажем адрес вида http://имя_сервера/Roznica. Это позволит кардинально снизить нагрузку на сеть, так как объем передаваемого трафика сократится в десятки раз.

Решение №2: Использование Автономного сервера (платформа 8.3.14 и выше)

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

Автономный сервер работает быстрее, чем связка с внешним веб-сервером, так как он оптимизирован специально под задачи 1С. Для его запуска используется утилита ibcmd. Рассмотрим пример команды запуска в командной строке:

ibcmd server --db-path="C:\1C_Bases\Retail" --port=8080

После запуска сервер начнет принимать входящие соединения по указанному порту. Клиенты подключаются к нему аналогично веб-серверу, что избавляет систему от медленного сетевого доступа к файлам.

Решение №3: Оптимизация сетевых протоколов и Windows

Если по каким-то причинам использование веб-сервера невозможно, попробуем максимально разогнать текущую схему работы через SMB. Рассмотрим несколько критических настроек:

  1. Отключение SMB Signing (подписывание пакетов). В современных ОС Windows эта функция включена для безопасности, но она замедляет работу с файлами 1С на 30–40%. Настройку необходимо произвести в локальных политиках безопасности (раздел «Параметры безопасности — Сетевая безопасность»).
  2. Настройка сетевых адаптеров. Зайдем в свойства сетевой карты и отключим функции Energy Efficient Ethernet и Green Ethernet. Эти опции переводят карту в режим пониженного энергопотребления при микропаузах, что создает задержки (latency), губительные для 1С.
  3. Исключения антивируса. Проанализируем работу антивирусного ПО. Оно должно игнорировать не только основной файл .1cd, но и файлы временных блокировок .1cl, а также временные файлы пользователя в папке %TEMP%\1cv8. Постоянная проверка файлов блокировок антивирусом при каждом обращении любого пользователя практически полностью парализует работу системы по сети.

Решение №4: Техническое обслуживание файла базы данных

Иногда причина тормозов кроется не в сети, а в состоянии самого файла информационной базы. Выполним следующие действия:

Сжатие таблиц и реиндексация:

В процессе работы (удаление объектов, массовое перепроведение) внутри файла 1Cv8.1cd образуются пустоты и фрагментация данных. Рассмотрим процедуру лечения:

  1. Запустим конфигуратор.
  2. Выберем Администрирование — Тестирование и исправление.
  3. Установим галочки Реиндексация таблиц и Сжатие таблиц.
  4. Выполним операцию (предварительно создав архивную копию!).

Увеличение размера страницы:

Для крупных файловых баз (более 2-3 Гб) стандартный размер страницы данных в 4 Кб или 8 Кб может быть неэффективным. При создании базы или через утилиту cnvdbutl (поставляется с платформой) можно конвертировать базу, установив размер страницы 32 Кб или 64 Кб. Это уменьшит количество операций ввода-вывода (IOPS) при чтении больших таблиц по сети.

Решение №5: Терминальный сервер (RDP)

Если база работает крайне медленно, а бюджет не позволяет купить SQL-сервер, разберем вариант с удаленным рабочим столом. В этой схеме и база, и клиентское приложение 1С запускаются локально на одном мощном компьютере (сервере). Пользователи подключаются к серверу через RDP и видят только «картинку» интерфейса.

Почему это работает быстро?

Для небольшой розничной точки с 2-3 продавцами это решение часто оказывается самым стабильным, так как оно менее чувствительно к качеству Wi-Fi или локальной сети, чем тонкий клиент, работающий напрямую с файлом.

Подведем итог

Выясним причину тормозов: в 90% случаев это использование «сетевой шары». Для исправления ситуации мы рекомендуем в первую очередь рассмотреть публикацию на веб-сервере Apache или IIS. Это даст наиболее ощутимый прирост скорости интерфейса. Если версия платформы позволяет, используйте Автономный сервер. В крайнем случае — настройте терминальный доступ. Помните, что простая замена 100-мегабитной сети на гигабитную без смены архитектуры доступа (с SMB на HTTP) даст лишь незначительный эффект, так как проблема кроется в логике обработки данных файловой версией 1С.

← На главную