Как решить проблему безумно долгого запуска файловой базы 1С?

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

Каждый администратор или разработчик 1С хотя бы раз сталкивался с ситуацией, когда файловая база данных, работающая локально на мощном компьютере, запускается непозволительно долго. Окно заставки «висит» по 10–15 минут, при этом ни процессор, ни оперативная память, ни дисковая подсистема не показывают видимой нагрузки. Особенно часто такая проблема проявляется при создании и первом запуске нового периферийного узла в распределенной информационной базе (РИБ).

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

Выявляем виновника: инструменты глубокого анализа

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

Метод 1. Использование утилиты Process Monitor (ProcMon)

Программа Process Monitor от компании Microsoft (Sysinternals) позволяет в реальном времени отслеживать обращения любого процесса к файловой системе, реестру и сети. Это идеальный инструмент, чтобы понять, «ждет» ли 1С ответа от какого-то файла или сетевого ресурса.

Рассмотрим по шагам, как настроить мониторинг:

  1. Скачайте и запустите утилиту Process Monitor с правами администратора.
  2. Откройте окно настройки фильтров (сочетание клавиш Ctrl+L).
  3. Добавьте новое правило фильтрации: Process Name содержит 1cv8, затем выберите действие Include и нажмите кнопку Add.
  4. Запустите вашу проблемную базу 1С.
  5. Внимательно проанализируйте лог событий в ProcMon во время зависания заставки. Обратите внимание на колонку Result. Если вы видите сотни строк со статусом REPARSE, LOCKED или бесконечные обращения к сетевым путям, которые завершаются таймаутом, вы нашли узкое место.

Метод 2. Настройка технологического журнала 1С

Технологический журнал (ТЖ) — это встроенный инструмент платформы, который фиксирует внутренние события системы. Он поможет понять, зависает ли база на этапе проверки лицензий, инициализации метаданных или выполнения фоновых задач.

Для активации ТЖ выполните следующие действия:

  1. Перейдите в каталог шаблонов конфигурации защиты платформы. Обычно он находится по адресу C:\Program Files\1cv8\conf (или C:\Program Files (x86)\1cv8\conf для 32-битной версии).
  2. Создайте в этой папке текстовый файл с именем logcfg.xml.
  3. Вставьте в файл следующий XML-код конфигурации:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\TechLogs\Logs" history="24">
    <event filter="dbms">
      <nonempty/>
    </event>
    <event filter="EXCP">
      <nonempty/>
    </event>
    <property name="all"/>
  </log>
</config>

После этого запустите базу 1С, дождитесь окончания загрузки и закройте ее. Переименуйте файл logcfg.xml обратно (чтобы логи не переполнили жесткий диск), найдите созданную папку по пути C:\TechLogs\Logs и изучите текстовые файлы. В них будет зафиксирована каждая секунда работы платформы во время старта.

Лечение «болезни» РИБ: обходные пути и таблетки

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

Способ 1. Фиктивное обновление конфигурации периферийного узла

Этот изящный способ позволяет «встряхнуть» внутренние таблицы кэша и индексов базы данных, после чего запуск восстанавливается до нормальных 5–10 секунд.

Выполните следующие шаги на стороне проблемного периферийного узла:

  1. Откройте базу в режиме «1С:Предприятие».
  2. С помощью внешней обработки временно отключите связь с главным узлом, выполнив одну строчку кода: ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
  3. Закройте предприятие и откройте эту базу в режиме «Конфигуратор». Теперь, когда база временно считается автономной, мы можем вносить изменения в конфигурацию.
  4. Найдите любой общий модуль, включите для него возможность изменения (с сохранением поддержки) и добавьте в самый конец модуля любую строку в виде комментария (например, // Фикс скорости запуска).
  5. Нажмите клавишу F7 (Обновить конфигурацию базы данных) и примите изменения.
  6. Снова запустите базу в режиме «1С:Предприятие» и с помощью внешней обработки верните связь с главным узлом:
    
    УзелЦентральнойБазы = ПланыОбмена.ГлавныйУзел(); // Или найдите ссылку на узел по коду
    ПланыОбмена.УстановитьГлавныйУзел(СсылкаНаУзелЦентральнойБазы);
    

После проведения этой процедуры структура таблиц базы данных перестраивается корректно, и долгий запуск полностью прекращается.

Способ 2. Перенос конфигурации через файл CF

Если первый способ не помог, можно применить более радикальный метод синхронизации структуры метаданных:

  1. В центральной базе зайдите в Конфигуратор и выполните выгрузку конфигурации в файл (меню Конфигурация -> Сохранить конфигурацию в файл...), сохранив файл с расширением .cf.
  2. В периферийной базе отключите связь с главным узлом (как описано в Способе 1).
  3. Полностью снимите конфигурацию периферийного узла с поддержки.
  4. Выполните команду Конфигурация -> Загрузить конфигурацию из файла... и выберите сохраненный ранее cf-файл центральной базы.
  5. Примените изменения (клавиша F7).
  6. Восстановите связь с главным узлом РИБ через режим Предприятия.

Тонкая настройка операционной системы и сети

Часто проблема кроется вовсе не в конфигурации 1С, а в особенностях работы сетевых протоколов операционной системы Windows и механизмах поиска лицензий HASP.

Сетевые задержки и оптимизация файла nethasp.ini

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

Решением является жесткое ограничение путей поиска лицензии. Найдите в папке установки платформы (в подкаталоге conf) файл nethasp.ini и приведите его секции к следующему виду:


[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 127.0.0.1 ; Укажите IP-адрес ПК с ключом, либо localhost для локального запуска
NH_USE_BROADCAST = Disabled

Отключение широковещательного поиска (Broadcast) мгновенно сократит время инициализации платформы при запуске.

Влияние службы балансировки Windows (DFSS)

В операционных системах семейства Windows работает служба Dynamic Fair Share Scheduling (DFSS). Она призвана распределять ресурсы диска и процессора. При запуске файловой базы 1С активно обращается к диску для чтения метаданных, что служба DFSS может расценить как «агрессивный захват ресурсов» и принудительно зарезать дисковую очередь для процесса 1cv8.exe.

Чтобы отключить это ограничение, внесите изменения в системный реестр Windows:

  1. Откройте редактор реестра (нажмите Win+R, введите regedit и нажмите Enter).
  2. Перейдите к ветке реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System. Измените значение параметра EnableCpuQuota на 0.
  3. Перейдите к ветке: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk. Измените параметр EnableFairShare на 0.
  4. Перезагрузите ваш персональный компьютер для применения настроек.

Стандартные процедуры обслуживания СУБД

Не забывайте и про базовые правила гигиены файловых баз 1С. Если вы давно не обслуживали базу, обязательно выполните следующие действия:

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

← На главную