Многие системные администраторы и пользователи 1С сталкиваются с ситуацией, когда запуск платформы превращается в испытание терпения. Симптомы обычно выглядят так: мы кликаем по ярлыку 1С, процесс 1cv8s.exe или 1cestart.exe появляется в диспетчере задач, но окно со списком информационных баз не открывается в течение нескольких минут (иногда до 5-10 минут). При этом система не выдает явных ошибок.
Если в этот момент проанализировать процесс через диспетчер задач («Анализ цепочки ожидания»), мы часто видим сообщение: «Один или несколько потоков ожидают завершения сетевого ввода-вывода». Это верный признак того, что платформа пытается достучаться до какого-то сетевого ресурса, который недоступен, и ждет ответа до истечения таймаута TCP/IP.
В этой статье мы подробно разберем причины такого поведения и рассмотрим пошаговые методы устранения проблемы, начиная с самой частой причины, выявленной в обсуждении, и заканчивая дополнительными факторами, влияющими на скорость запуска.
Это наиболее распространенная причина задержки именно до появления окна выбора баз. Платформа 1С умеет использовать общие списки баз (файлы с расширением .v8i), которые часто размещаются на сетевых ресурсах для удобства администрирования. Если сервер, на котором лежал этот файл, был выключен, переименован или стал недоступен, стартер 1С будет пытаться прочитать этот файл при каждом запуске, пока не отвалится по таймауту.
Разберем, где искать эти настройки. Файлы конфигурации стартера обычно находятся в системной папке ProgramData.
Нам необходимо проверить содержимое файла конфигурации запуска. Обычно он расположен по следующему пути:
C:\ProgramData\1C\1CEStart\1cestart.cfg
Откроем этот файл любым текстовым редактором (например, Блокнотом) и внимательно изучим его содержимое. Нас интересует параметр CommonInfoBases.
Пример проблемного файла:
CommonInfoBases=\\OldServer\Share\BasesList.v8i
CommonInfoBases=\\192.168.1.50\Config\common.v8i
InstalledLocation=C:\Program Files\1cv8
Если мы видим пути к серверам (например, \\OldServer), которые сейчас выключены или недоступны, это и есть корень проблемы. Стартер пытается скачать список, висит несколько минут, и только потом показывает локальные базы.
Решение: Удалим строки с недоступными путями или закомментируем их. После сохранения файла проблема должна исчезнуть мгновенно.
В том же файле 1cestart.cfg может присутствовать параметр InstalledLocation. Если установка платформы производилась административно через групповые политики (GPO) с сетевого ресурса, путь к дистрибутиву мог прописаться сюда.
При запуске стартер может проверять наличие новой версии платформы по этому пути. Если сетевая папка с дистрибутивом недоступна — мы получаем зависание.
Решение: Проверим значение InstalledLocation. Если там указан сетевой путь (начинается с \\), и этот ресурс недоступен, изменим его на локальный путь установки или удалим строчку (если автообновление не требуется).
Иногда проблема кроется не в общих настройках для всех пользователей, а в профиле конкретного пользователя. Платформа хранит список баз пользователя в файле ibases.v8i. В этом файле могут содержаться ссылки на другие списки баз (дерево списков).
Проверим файлы по следующему пути:
%AppData%\1C\1cv8\1ibases.v8i
Также стоит обратить внимание на кэшированные файлы списка баз. Если они повреждены или ссылаются на фантомные ресурсы, это вызывает задержки.
Решение: Попробуем очистить папки с кэшем (предварительно сделав резервную копию, если нужно сохранить список баз, хотя сам список лежит в корне профиля, в папках с длинными именами лежит кэш метаданных).
Удалим содержимое папок:
%AppData%\1C\1cv8\ (кроме файла 1ibases.v8i, если не хотим перенастраивать список заново)%LocalAppData%\1C\1cv8\Современные операционные системы по умолчанию используют протокол IPv6. Платформа 1С при обращении к серверу (даже если база локальная, но используются сетевые вызовы или эмуляция) может пытаться сначала разрешить имя узла через IPv6.
Если сеть не настроена для IPv6, система будет ждать ответа, и только не получив его, переключится на IPv4. Это создает характерные задержки.
Решение:
C:\Windows\System32\drivers\etc\hosts, явно прописав соответствие имен серверов их IPv4 адресам.::1 localhost в файл hosts, чтобы локальные обращения обрабатывались корректно.Это неочевидный, но важный момент. При запуске (особенно в момент инициализации табличного документа или просто при старте интерфейса) 1С опрашивает принтеры, установленные в системе, для получения параметров страницы по умолчанию.
Если принтером по умолчанию назначен сетевой принтер, который в данный момент выключен или находится в недоступной подсети, драйвер печати может "подвесить" процесс 1С в ожидании отклика.
Решение:
Исполняемые файлы платформы 1С подписаны цифровым сертификатом. В некоторых случаях (особенно в закрытых сетях без прямого доступа в интернет) операционная система пытается проверить валидность сертификата и скачать список отозванных сертификатов (CRL) с серверов удостоверяющего центра.
Если доступ в интернет закрыт фаерволом, но DNS разрешает адреса центров сертификации, процесс может "висеть", ожидая соединения, пока не истечет таймаут.
Решение: В Internet Explorer (или в свойствах браузера через Панель управления) на вкладке "Дополнительно" найдем раздел "Безопасность" и снимем галочку "Проверять аннулирование сертификатов издателей".
Хотя в обсуждении было отмечено, что поиск ключа происходит после выбора базы, неправильная настройка nethasp.ini может влиять на общую отзывчивость сетевых компонентов платформы.
Если используются аппаратные ключи защиты, платформа по умолчанию делает широковещательную рассылку (Broadcast) по всей сети в поисках сервера лицензирования. Это медленно и засоряет сеть.
Решение: Настроим файл nethasp.ini (обычно лежит в C:\Program Files\1cv8\conf) на адресный поиск.
Пример правильной настройки блока [NH_TCPIP]:
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.45 ; IP адрес сервера с ключом
NH_USE_BROADCAST = Disabled ; Отключаем широковещание
NH_TCPIP_METHOD = UDP
Если ни один из вышеперечисленных методов не помог, нам потребуется "тяжелая артиллерия" — Технологический журнал (TechLog). Он покажет с точностью до миллисекунды, на чем именно "затыкается" платформа.
Для этого создадим папку C:\logs и файл конфигурации logcfg.xml в папке conf платформы (рядом с nethasp.ini).
Пример конфигурации для отлова долгих операций:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\logs" history="4">
<event>
<eq property="name" value="PROC"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
После запуска 1С и воспроизведения зависания, проанализируем созданные лог-файлы. Мы ищем большие разрывы во времени между событиями или события с большой длительностью (Duration). Это укажет на конкретный файл или сетевой адрес, к которому идет обращение.
В большинстве случаев проблема зависания 1С до выбора базы связана с "мертвыми" ссылками в конфигурационных файлах 1cestart.cfg или ibases.v8i. Очистка пути к CommonInfoBases (общим спискам баз) решает проблему в 90% случаев. Если это не помогло — проверяем принтеры, IPv6 и настройки проверки сертификатов.