Ситуация, когда информационная база 1С перестает запускаться в режиме «Предприятие», замирая на заставке еще до появления окна выбора пользователя, является одной из самых неприятных для системного администратора и технической поддержки. В распределенных информационных базах (РИБ) на базе PostgreSQL эта проблема часто сопровождается тем, что Конфигуратор при этом запускается без проблем. Давайте подробно разберем, почему это происходит, проанализируем возможные причины и составим пошаговый план решения подобных проблем.
Первое, что мы должны проверить при зависании на этапе инициализации — это механизм поиска ключей защиты. На этом этапе платформа 1С опрашивает доступные лицензии. Если система настроена некорректно, процесс может занимать от нескольких минут до часа.
Рассмотрим, как ведет себя клиент 1С: если в конфигурационном файле nnhasp.ini не заданы жесткие параметры поиска, программа начинает рассылать широковещательные запросы по всей сети. В условиях работы через VPN или при сложной топологии сети (как в случае с 50 периферийными базами) пакеты могут теряться или зацикливаться. Проанализируем настройки файла nnhasp.ini, который обычно находится в папке conf каталога установки платформы. Мы рекомендуем явно указывать IP-адрес сервера лицензирования:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP вашего сервера
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled
Такая настройка исключит «сканирование» сети и позволит платформе мгновенно определить наличие ключа, что часто устраняет зависание на этапе заставки.
Выясним причину, связанную с распределенными базами. В РИБ обновление конфигурации происходит в два этапа: сначала изменения приходят в файле обмена, затем они применяются в периферийной базе. Если в центральной базе было выполнено обновление, то при первом запуске «Предприятия» в узле начинается процесс обновления вспомогательных данных.
Посмотрим на ситуацию: если в момент запуска активно РегламентноеЗадание по обмену данными, оно может блокировать таблицы, необходимые для авторизации пользователя. 1С пытается прочитать список пользователей из таблицы v8users или метаданные из таблицы config, но натыкается на блокировку. Чтобы проверить эту гипотезу, попробуем запустить базу с параметром, отключающим выполнение регламентных заданий:
Параметр запуска: /AllowExecuteScheduledJobs -Off
Если с этим флагом база запускается быстро, значит, причина в «тяжелых» фоновых процессах, которые запускаются сразу после старта сеанса. Проанализируем также возможность «динамического обновления». Если конфигурация была обновлена динамически, локальный кэш на торговой точке может содержать некорректные метаданные, что приводит к бесконечному циклу ожидания при попытке инициализировать сеанс.
Перейдем к техническим особенностям PostgreSQL. В отличие от файлового режима, серверный вариант критичен к актуальности статистики и состоянию транзакций. Проанализируем, почему переезд на SQL Express и обратно «вылечил» базу. При выгрузке базы в формат .dt и последующей загрузке происходят три важных процесса:
config.Если база на PostgreSQL виснет, попробуем выполнить очистку таблицы блокировок и проверить статус процессов через консоль администрирования 1С или SQL-запрос. Особое внимание стоит уделить параметру autovacuum. Если он выключен или не успевает отрабатывать на слабом железе (например, на моноблоке), таблицы разрастаются «мусорными» записями, и обычный запрос списка пользователей превращается в сканирование всего диска (Full Scan).
Рассмотрим еще один важный аспект — повреждение профиля пользователя Windows. В каталогах %AppData%\Local\1C и %AppData%\Roaming\1C хранятся временные файлы, кэш конфигурации и настройки окон. Часто «хирургическое» решение в виде удаления этих папок или даже пересоздания профиля пользователя Windows полностью решает проблему.
Проанализируем влияние железа. В современных версиях платформы 8.3 активно используется аппаратное ускорение графики. На бюджетных моноблоках с процессорами AMD и интегрированным видеоядром драйверы могут конфликтовать с отрисовкой заставки 1С. Попробуем отключить ускорение, добавив в дополнительные параметры запуска базы:
Параметр: /NoAutoGraphicsAcceleration
Также проверим работу службы WMI (Windows Management Instrumentation). 1С обращается к ней для получения идентификатора компьютера. Если служба тормозит или повреждена, запуск будет висеть ровно до момента срабатывания внутреннего таймаута системы.
Подведем итог и составим план действий для системного администратора, если база 1С на торговой точке перестала открываться:
%userprofile%\AppData\Local\1C\1cv8 и %userprofile%\AppData\Roaming\1C\1cv8. Это самое простое и часто эффективное действие.PostgreSQL, перезапускаем службу сервера 1С и службу СУБД, чтобы сбросить все зависшие транзакции./AllowExecuteScheduledJobs -Off в строке запуска, чтобы исключить влияние обменов РИБ..dt и загружаем ее в новую чистую базу на том же сервере. Это пересоберет индексы и обновит статистику таблиц PostgreSQL.Помните, что в условиях РИБ обновление конфигурации — это всегда риск временного замедления или зависания базы при первом старте. Всегда проверяйте Журнал регистрации (если его не успели очистить), так как там могут фиксироваться ошибки применения обновлений, которые и вызывают «вечную» заставку.