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

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

Каждый системный администратор и специалист 1С рано или поздно сталкивается с проблемой, когда некогда быстро летавшая база 1С начинает медленно «разворачиваться». Особенно остро эта проблема проявляется в файловом варианте работы на терминальном сервере, когда пользователи жалуются на долгое ожидание (от 15 до 40 секунд) до появления окна выбора пользователя или запуска самого интерфейса «Предприятия».

В этой статье мы подробно разберем, почему файловая 1С (на примере конфигурации «1С:Бухгалтерия предприятия 3.0») может долго запускаться, и рассмотрим пошаговые методы оптимизации сервера и самой платформы, которые помогут вернуть былую скорость работы без покупки нового оборудования.

Метод 1. Настройка схемы электропитания Windows Server

По умолчанию в операционных системах Windows Server установлена «Сбалансированная» схема электропитания. Это приводит к тому, что процессор сервера постоянно снижает свою тактовую частоту в моменты простоя и «паркует» неиспользуемые ядра. Для файловой 1С это критично: запуск платформы требует резкого, кратковременного всплеска вычислительной мощности (так называемый single-thread burst). Из-за микрозадержек при переходе процессора из энергосберегающего состояния в режим максимальной производительности время запуска платформы увеличивается в несколько раз.

Давайте переключим схему питания сервера в режим максимальной производительности:

  1. Откроем Панель управления на сервере и перейдем в раздел Электропитание.
  2. Установим переключатель на пункт Высокая производительность (High Performance).
  3. Если сервер работает под управлением современных версий Windows Server, выполним настройку через командную строку от имени администратора. Для этого введем команду:

powercfg /setactive SCHEME_MIN

Этот простой шаг позволяет поднять частоту процессора до номинальной (и выше, в режиме Turbo Boost) на постоянной основе, что моментально ускоряет компиляцию модулей 1С при старте.

Метод 2. Отключение поиска аппаратных лицензий (HASP)

При запуске платформа 1С по умолчанию пытается определить тип доступной лицензии. Если на сервере используются программные лицензии (пин-коды), но в настройках запуска базы не отключен поиск аппаратных ключей, платформа тратит от 3 до 7 секунд на сканирование USB-портов и широковещательные запросы в локальную сеть в поисках менеджера лицензий HASP.

Чтобы исключить эти задержки, выполним следующие действия:

  1. Запустим окно выбора информационных баз 1С.
  2. Выберем нужную базу и нажмем кнопку Изменить.
  3. Нажмем Далее и перейдем на страницу дополнительных параметров запуска.
  4. В поле дополнительных параметров пропишем ключ /UseHasp- (минус на конце отключает поиск USB-ключа).
  5. Также в окне настройки параметров запуска базы найдем опцию Использовать аппаратную лицензию (ключ защиты) и снимем с нее галочку.

После этого платформа будет сразу обращаться к файлам программных лицензий (файлы с расширением *.lic), что сэкономит ценные секунды при каждом запуске.

Метод 3. Отключение службы Dynamic Fair Share Scheduling (DFSS)

В операционных системах Windows Server по умолчанию активна служба динамического распределения ресурсов — Dynamic Fair Share Scheduling (DFSS). Она призвана обеспечивать равное распределение процессорного времени, дискового ввода-вывода (I/O) и сетевой активности между всеми активными RDP-сессиями.

Когда один из пользователей запускает тяжелую файловую базу 1С, процесс 1cv8.exe начинает активно читать гигабайтный файл базы данных 1cv8.1CD и кэшировать данные. Служба DFSS расценивает это как попытку монополизации дисковой системы и искусственно занижает приоритет дисковых операций для данной сессии. В итоге запуск базы превращается в мучение.

Для оптимизации работы файловых баз 1С в терминальном окружении эту службу рекомендуется отключить через системный реестр:

  1. Откроем редактор реестра regedit от имени администратора.
  2. Перейдем к ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk.
  3. Найдем параметр EnableFairShare и изменим его значение на 0.
  4. Перейдем к ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Cpu (при ее наличии) или HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.
  5. Установим параметр EnableCpuQuota в значение 0.
  6. Для применения изменений перезагрузим терминальный сервер.

Метод 4. Настройка исключений Windows Defender (Защитника Windows)

Часто на серверах «из коробки» работает встроенный антивирус Windows Defender. Поскольку файловая база данных 1С представляет собой один огромный файл 1cv8.1CD, любое обращение к нему со стороны пользователей вызывает у антивируса желание проверить этот файл на наличие угроз. При работе 10 пользователей файл постоянно перечитывается, из-за чего дисковая подсистема встает в очередь (Disk Queue Length возрастает до критических значений).

Нам необходимо добавить в исключения антивируса все рабочие каталоги и процессы 1С. Перейдем в настройки Защитника Windows и добавим в список исключений:

Метод 5. Очистка каталогов дампов ошибок

При аварийных завершениях работы 1С (например, при отключении сессий пользователей по таймауту или сбоях конфигурации) платформа генерирует файлы дампов ошибок с расширением *.mdmp. При каждом новом старте стартер 1С (процесс 1cv8s.exe) пытается просканировать системные папки дампов на предмет неотправленных отчетов об ошибках.

Если в этих папках накопились тысячи мелких файлов, запуск «зависает» еще до появления окна авторизации. Проверим и вручную очистим следующие папки на сервере:

Для автоматизации этого процесса можно настроить простой bat-скрипт в планировщике задач Windows, который будет периодически очищать данные каталоги.

Метод 6. Отключение неиспользуемых регламентных заданий

Особенность файлового режима работы 1С заключается в том, что все фоновые и регламентные задания выполняются непосредственно в сеансе первого подключившегося пользователя. Когда первый бухгалтер заходит в базу утром, на его компьютер (или в его RDP-сессию) обрушивается шквал задач: обновление индекса полнотекстового поиска, загрузка курсов валют, проверка контрагентов, извлечение текстов и классификаторов.

Давайте проанализируем список регламентных заданий и отключим все ненужные:

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

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

Метод 7. Отключение проверок отзывов сертификатов (CRL)

Современная «1С:Бухгалтерия 3.0» тесно интегрирована с государственными сервисами, ЭДО и системами маркировки. Для обеспечения безопасности платформа при старте инициализирует криптографические модули (например, КриптоПро CSP) и пытается проверить списки отзывов сертификатов (CRL) через интернет.

Если сервер терминалов находится за закрытым файрволом или доступ в интернет ограничен, запросы проверки зависают по таймауту (до 15 секунд на каждый запрос). Чтобы решить эту проблему, выполним тонкую настройку криптопровайдера на сервере, отключив обязательную онлайн-проверку отзывов сертификатов в свойствах обозревателя Windows (вкладка Дополнительно, раздел Безопасность — снять галочки с пунктов, связанных с проверкой отзывов сертификатов серверов и издателей).

Использование Process Monitor для точной диагностики задержек

Если после выполнения всех вышеперечисленных шагов база 1С по-прежнему запускается медленнее, чем хотелось бы, нам необходимо точно локализовать проблему. Для этого воспользуемся профессиональным инструментом — бесплатной утилитой Process Monitor (ProcMon) от Microsoft Sysinternals.

Разберем по шагам, как выявить виновника зависания:

  1. Скачаем и запустим утилиту ProcMon.exe от имени администратора на терминальном сервере.
  2. Настроим фильтрацию событий: нажмем комбинацию клавиш Ctrl + L для открытия окна фильтров.
  3. Добавим новое условие фильтрации: Process Name is 1cv8.exe (а также для процесса 1cv8s.exe) и нажмем Add, затем Apply.
  4. Запустим процесс записи событий (иконка лупы на панели инструментов должна быть активна).
  5. Запустим базу 1С и дождемся ее полного открытия.
  6. Остановим запись лога в ProcMon, повторно нажав на иконку лупы.
  7. Перейдем в меню Tools — File Summary или отсортируем таблицу событий по колонке Duration (длительность).

Внимательно проанализировав строки с наибольшим значением Duration, мы сможем увидеть, на чем именно спотыкается платформа. Это могут быть задержки чтения конфигурационных файлов из сетевой папки, долгие попытки обращения к заблокированным веткам реестра или ожидание ответов от недоступных IP-адресов.

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

← На главную