Ситуация, когда процесс обновления конфигурации 1С прерывается на самом начале — на отметке 5% — и программа просто закрывается без вывода каких-либо окон с ошибками, является довольно распространенной. Особенно часто это встречается при работе в клиент-серверном варианте на операционных системах семейства Linux (например, Ubuntu 20.04), но может проявляться и на Windows Server. В этой статье мы подробно разберем, что именно происходит в этой «магической» точке прогресса, как диагностировать скрытую причину и какие шаги предпринять для успешного завершения обновления.
Для начала разберем внутреннюю механику процесса обновления типовых конфигураций, построенных на базе БСП (Библиотека стандартных подсистем). Отметка в 5% — это не просто число, а важный технологический этап перехода платформы от подготовки к активным действиям. В этот момент происходят следующие процессы:
Если на любом из этих этапов возникает критическая ошибка, которую платформа не может обработать в рамках текущего потока (например, Segmentation Fault на Linux или необработанное исключение в фоновом задании), основной процесс 1С завершается аварийно. Поскольку управление в этот момент часто передается фоновому процессу, окно с ошибкой в пользовательском интерфейсе просто не успевает или не может отрисоваться.
Первым делом мы должны выяснить, что именно «убивает» процесс. Поскольку на экране ничего нет, обратимся к логам. Рассмотрим, как найти причину в Журнале регистрации (ЖР). Даже если база вылетает, 1С успевает записать событие об ошибке перед завершением работы.
Проанализируем пример реальной ошибки, найденной пользователем в ЖР:
Сеанс. Ошибка применения расширения конфигурации. Не найден объект ОбщийМодуль.ОбменСКонтрагентамиВнутренний
Эта запись говорит нам о том, что в системе установлено расширение, которое обращается к общему модулю ОбменСКонтрагентамиВнутренний. Однако в новой версии конфигурации этот модуль был либо удален, либо переименован (что часто случается в блоках ЭДО). Платформа не может скомпилировать расширение и прерывает запуск.
Если Журнал регистрации пуст, необходимо настроить Технологический журнал (ТЖ). Для этого в каталоге с настройками 1С (на Linux это обычно /opt/1cv8/conf/ или ~/.1cv8/1C/1cv8/conf/) создадим файл logcfg.xml следующего содержания:
<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
<log location="/var/log/1c/logs" history="24">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="PROC"/>
</event>
<property name="All"/>
</log>
</config>
После этого запустим обновление снова и изучим файлы в директории /var/log/1c/logs. Ищите события EXCP (Exception), которые укажут на конкретный метод или библиотеку, вызвавшую падение.
Как мы выяснили, основной причиной вылета на 5% часто являются расширения. Даже если вы сами не устанавливали расширений, система могла автоматически загрузить исправления (патчи) от фирмы 1С. При обновлении конфигурации до новой версии старые патчи могут стать несовместимыми.
Разберем алгоритм действий по очистке расширений, если база не открывается в обычном режиме:
/DeleteCfg -Extension.Иногда корень проблемы кроется в багах самой платформы 1С. Как показывает практика (и решение автора темы на форуме), замена текущей версии платформы на более стабильную (предыдущую или, наоборот, более новую) может мгновенно решить проблему.
Проанализируем ситуацию: если на 64-битной платформе 1С 8.3 КОРП происходит вылет, это может быть связано с некорректной работой менеджера памяти в конкретном релизе. Рекомендация: попробуйте выполнить обновление на стабильном релизе платформы, который на один-два шага ниже текущего «самого последнего».
Работа 1С на Linux имеет свои особенности, которые могут приводить к «тихим» вылетам. Разберем основные моменты:
В Linux-версиях 1С часто возникают проблемы с отрисовкой форм через библиотеку WebKit. Если при старте обновления система пытается вывести какое-либо окно (например, описание изменений), она может упасть. Попробуйте перед запуском 1С установить переменную окружения:
export WEBKIT_DISABLE_DMABUF_RENDERER=1
Обновление крупной конфигурации потребляет значительное количество ресурсов. Проверьте ограничения для пользователя usr1cv8, под которым работает сервер 1С. Рассмотрим команды для проверки:
ulimit -a
Если установлены жесткие лимиты на количество открытых файлов (nofile) или виртуальную память, процесс может быть убит ядром ОС при достижении пика нагрузки на этапе 5%.
Кэш на сервере Linux часто становится причиной «невидимых» объектов или обращения к старым индексам модулей. Выполним полную очистку кэша по следующему алгоритму:
systemctl stop srv1cv8-8.3.x.x/home/usr1cv8/.1cv8/1C/1cv8/clusters/<ID_кластера>/<ID_базы>/snccntx* и config/cache).systemctl start srv1cv8-8.3.x.xПодводя итог, если ваша 1С закрывается на 5% обновления, пройдите по шагам:
Соблюдение этих рекомендаций позволит вам успешно преодолеть критическую точку обновления и продолжить работу с актуальной версией конфигурации.