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

Самая частая картина в небольшой компании: база 1С лежит в общей папке на «сервере» (нередко это компьютер главного бухгалтера), а пять–десять сотрудников открывают её со своих рабочих мест по локальной сети. Пока база маленькая, всё работает. Потом 1С начинает долго открываться, документы проводятся с задержкой, отчёты собираются минутами, а по Wi-Fi работать невозможно вовсе. Разбираем, почему файловая база 1С медленно работает по сети, что можно исправить за час, а что решается только сменой режима работы.

Почему файловая база 1С тормозит по сети

В файловом режиме нет сервера 1С:Предприятия и нет СУБД. Вся база — это один файл 1Cv8.1CD, а всю работу с ним делает клиент 1С на компьютере пользователя. Когда файл лежит на другой машине, каждое чтение и запись идут через сетевой протокол общего доступа к файлам (SMB). Отсюда четыре причины, из-за которых 1С тормозит по сети, и ни одна из них не лечится «мощным сервером».

  • Данные обрабатываются не там, где лежат. Чтобы построить отчёт, клиент вытягивает по сети все нужные записи, а не результат. Чем больше база и чем сложнее отчёт, тем больше мегабайт пролетает по сети ради одной кнопки.
  • Блокировки на уровне файла. Пока один пользователь проводит документ, часть файла заблокирована для остальных. Чем больше одновременных сеансов, тем больше времени каждый ждёт других. Именно поэтому файловая база с десятью активными пользователями ведёт себя хуже, чем с тремя, даже на быстрой сети.
  • Задержки протокола SMB. Файловая база делает тысячи мелких обращений к файлу. На локальном диске каждое занимает доли миллисекунды, по сети — заметно больше, а по Wi-Fi ещё и непредсказуемо. Тысячи маленьких задержек складываются в секунды на каждой операции.
  • Антивирус и оппортунистические блокировки. Антивирус на «сервере» проверяет файл базы при каждом обращении, а механизм кэширования файлов Windows на стороне клиентов может конфликтовать с одновременной записью. И то и другое замедляет работу и в худшем случае ведёт к повреждению базы.

Есть и жёсткий предел: внутренние таблицы файловой базы ограничены объёмом 4 ГБ каждая. Когда база вырастает до нескольких гигабайт, до этого предела доходят таблицы движений регистров и журнал регистрации, и 1С перестаёт работать совсем, а не просто медленно.

1С долго открывается: быстрые проверки перед серьёзными решениями

Прежде чем менять архитектуру, стоит исключить простые вещи. На них уходит час, и иногда этого хватает на полгода.

  1. Замер на самом «сервере». Откройте базу прямо на том компьютере, где она лежит. Если там всё быстро, а у сотрудников медленно, виновата сеть и режим работы. Если медленно и там, начинайте с диска и самой базы.
  2. Провод вместо Wi-Fi. Файловая база по беспроводной сети — гарантированные тормоза и риск повредить базу при обрыве. Все рабочие места с 1С должны быть подключены кабелем к гигабитному коммутатору.
  3. Диск, на котором лежит база. HDD с фрагментированным файлом на 3 ГБ — типичная причина «1С долго открывается». Перенос базы на SSD ускоряет файловый режим сразу.
  4. Исключения антивируса. Папку с базой, файлы 1Cv8.1CD и процессы платформы добавляют в исключения и на «сервере», и на рабочих местах. Не отключайте антивирус, настройте исключения.
  5. Журнал регистрации. Разросшийся журнал замедляет запуск базы. Сократите срок хранения событий и очистите старые записи.
  6. Тестирование и исправление. Штатная процедура в Конфигураторе: реиндексация и реструктуризация таблиц, проверка логической целостности. Делается в монопольном режиме по резервной копии.
  7. Версия платформы и клиента. Все рабочие места должны использовать одну версию платформы; «зоопарк» из разных сборок даёт непонятные задержки и ошибки.

Если после этого 1С по-прежнему медленно работает по сети, вы упёрлись в сам файловый режим. Дальше только два решения, и их часто применяют вместе.

Решение 1: терминальный сервер — база и клиенты на одной машине

Идея простая: если файловая база тормозит из-за сети, уберите сеть из работы 1С. База и клиент 1С ставятся на один сервер, а сотрудники подключаются к нему по удалённому рабочему столу. По сети между сотрудником и сервером идёт только картинка экрана и нажатия клавиш — несколько десятков килобит в секунду. Все обращения к файлу базы происходят на локальном диске сервера, где они и должны быть.

Что это даёт на практике:

  • та же файловая база начинает работать так, как будто каждый сотрудник сидит за «сервером»: без задержек SMB и без потерь на Wi-Fi;
  • сотрудники подключаются откуда угодно — из офиса, из дома, с ноутбука в командировке, и скорость от их канала почти не зависит;
  • одна установка платформы на всех: обновление делается один раз на сервере, «зоопарк версий» исчезает;
  • резервное копирование и антивирус настраиваются в одном месте, а база не повреждается от обрыва связи у пользователя.

Ограничение файлового режима по блокировкам при этом остаётся: если активных пользователей больше десяти и они одновременно проводят документы, ждать друг друга они будут и на терминальном сервере. Но порог, с которого файловая база становится непригодной, отодвигается заметно, а сама переезд занимает вечер: базу копируют на сервер, сотрудникам выдают ярлык подключения. Именно так устроена аренда сервера для 1С: сервер с лицензиями Windows и терминального доступа, платформа 1С, ежедневное резервное копирование — от 29 900 ₽ в год, тест 7 дней на вашей базе. Для команд от пяти человек с большими базами и документами подойдёт терминальный сервер с большим диском.

Решение 2: клиент-серверный режим — PostgreSQL или MS SQL

Когда база больше нескольких гигабайт, а активных пользователей больше десяти, файловый режим исчерпан в любом варианте. База переносится в СУБД, а между клиентами и СУБД появляется сервер 1С:Предприятия, который выполняет запросы, бизнес-логику и фоновые задания. Что меняется:

  • Блокировки становятся записевыми, а не файловыми: один пользователь проводит документ, остальные не ждут, если не трогают те же записи.
  • Отчёты считает сервер: по сети к клиенту уходит готовый результат, а не исходные данные.
  • Ограничение 4 ГБ на таблицу исчезает. Базы в десятки и сотни гигабайт — нормальная ситуация для клиент-серверного режима.
  • Появляются регламентные операции СУБД: обновление статистики, обслуживание индексов, резервное копирование средствами СУБД. Без них клиент-серверная база через полгода тормозит не хуже файловой.

Для перехода нужны лицензия на сервер 1С:Предприятия (для небольших команд есть вариант на 5 подключений) и сама СУБД: PostgreSQL бесплатен, MS SQL лицензируется отдельно. База выгружается из файлового режима в файл .dt и загружается в новую клиент-серверную базу; конфигурация, история и настройки при этом сохраняются. Как это происходит и что проверить после переноса, мы разбираем в статье 1С тормозит на сервере: что проверить и как ускорить — там же про ресурсы сервера и оптимизацию базы.

Терминальный доступ при этом никуда не уходит: клиент-серверную базу тоже удобнее открывать через удалённый рабочий стол или тонкий клиент, чем ставить платформу на каждый компьютер. Как подключаться с Windows, macOS, Linux и телефона — в инструкции как подключиться к 1С в облаке.

Как выбрать между терминальным сервером и SQL

СитуацияЧто подойдётПочему
До 5 пользователей, база до 2–3 ГБ, тормозит только по сетиТерминальный сервер, база остаётся файловойУбирает сеть из работы 1С, переезд за вечер, лицензия сервера 1С не нужна
5–10 пользователей, база растёт, документы проводятся с ожиданиемТерминальный сервер сейчас, переход на SQL в планеБыстрое облегчение сегодня, к пределу файлового режима подойдёте с готовым планом
Больше 10 активных пользователей или база от 4 ГБКлиент-серверный режим на PostgreSQL или MS SQLФайловый режим исчерпан: блокировки и предел размера таблиц
Несколько офисов или удалённые сотрудникиТерминальный сервер в дата-центре, режим базы по числу пользователейВсе работают на одном сервере одинаково быстро, без VPN между офисами

Правило, которое редко нарушают: сначала переносят 1С на терминальный сервер и убеждаются, что тормоза по сети ушли, а решение о SQL принимают по замерам уже на сервере. Часто выясняется, что после переезда клиент-серверный режим пока не нужен, и деньги на лицензию сервера 1С и на СУБД не тратятся.

Вопросы и ответы

Сколько пользователей выдерживает файловая база 1С по сети?

Формального ограничения нет, но на практике комфортная работа по сети заканчивается на 3–5 одновременных пользователях, а дальше всё зависит от размера базы и интенсивности проведения документов. На терминальном сервере та же файловая база работает нормально с 8–10 активными пользователями. Больше — только клиент-серверный режим.

Поможет ли более мощный компьютер под базу?

Если сотрудники продолжают открывать файловую базу по сети — почти нет. Обработку данных выполняют их компьютеры, а не «сервер»; на нём важен только быстрый диск. Мощность сервера начинает работать, когда на нём же запускаются клиенты 1С (терминальный доступ) или сервер 1С с СУБД.

Можно ли работать с файловой базой 1С через интернет?

Открывать файл базы через интернет или VPN нельзя: задержки в десятки миллисекунд на каждое обращение к файлу делают работу невозможной и приводят к повреждению базы. Через интернет работают только по удалённому рабочему столу к серверу, где лежит база, либо с клиент-серверной базой через тонкий или веб-клиент.

Что делать, если база 1С уже повреждена после работы по сети?

Не продолжать работу. Сделать копию файла базы, затем запустить «Тестирование и исправление» в Конфигураторе по копии. Если не помогло, есть утилита chdbfl из состава платформы. После восстановления перенести базу туда, где повреждения не повторятся: на терминальный сервер или в СУБД. И проверить, что резервное копирование делается ежедневно, а не «когда вспомнили».

Нужно ли покупать лицензии 1С заново при переезде на сервер?

Нет. Клиентские лицензии 1С остаются вашими и переносятся на сервер; для терминального доступа нужны лицензии Windows и терминальных подключений, они входят в аренду сервера. Лицензия на сервер 1С:Предприятия требуется только при переходе в клиент-серверный режим.

Добавить комментарий
Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *
Сайт использует cookie-файлы и Яндекс Метрику (включая Вебвизор) для работы сайта и анализа посещаемости. Нажимая «Принять», вы соглашаетесь с политикой использования cookies.
Принять