Каждый администратор или разработчик 1С рано или поздно сталкивается с ситуацией, когда штатное обновление типовой конфигурации превращается в настоящий квест. Одной из самых неприятных проблем является так называемый «тихий вылет» Конфигуратора. Вы запускаете процесс обновления, начинается сравнение объектов, полоса прогресса доходит до определенного этапа (очень часто это происходит на отметке 36%), и вдруг окно Конфигуратора просто закрывается без вывода каких-либо предупреждений или сообщений об ошибках.
В этой статье мы подробно разберем, почему происходит аварийное завершение работы платформы 1С:Предприятие при обновлении «Бухгалтерии предприятия 3.0», проанализируем взаимосвязь этого сбоя с системными ошибками Windows и предложим комплексную пошаговую методику решения проблемы.
Для того чтобы эффективно бороться со сбоем, необходимо понять физику процесса. Когда мы запускаем обновление конфигурации, платформа выполняет колоссальный объем работы: распаковывает метаданные из файла обновления, сравнивает их со структурой текущей конфигурации БД, проверяет ссылочную целостность объектов и пытается сопоставить таблицы СУБД (или файлы внутренней структуры в случае файловой базы .1CD). Падение Конфигуратора без вывода ошибок обычно сигнализирует о критическом сбое на уровне ядра платформы (сбой в библиотеках backend.dll, frntend.dll) или операционной системы. Рассмотрим основные причины этого явления подробнее:
8.3.12.1529. Однако в промежуточных версиях платформ (таких как 8.3.12.1616 или ранних сборках 8.3.13) содержались внутренние ошибки работы с памятью, которые приводили к падению Конфигуратора при выполнении ресурсоемких операций сравнения метаданных.NULL, но натыкается на незаполненные поля старой структуры таблиц.4107 или 11 (источник CryptnetUrlCache).Теперь, когда мы понимаем потенциальные источники проблемы, перейдем к практическим шагам по ее устранению.
Первое, с чего необходимо начать — полностью исключить влияние поврежденного кэша. Обычного удаления базы из списка запуска 1С часто бывает недостаточно, так как файлы кэша конфигурации могут сохраняться в системных каталогах пользователя.
Выполним очистку вручную. Для этого закроем все запущенные процессы 1С и перейдем в следующие директории на компьютере, где выполняется обновление:
%USERPROFILE%\AppData\Local\1C\1Cv8%USERPROFILE%\AppData\Roaming\1C\1Cv8В этих папках необходимо удалить все каталоги с длинными буквенно-цифровыми именами (например, 204a9194-e34d-4be9-8b83-cb5b3b5550a1). Не бойтесь их удалять — это временные данные, платформа автоматически пересоздаст их при следующем запуске. Также полезно очистить временную папку операционной системы %TEMP%.
Если мы обновляемся через несколько релизов подряд, обязательно нужно убедиться, что база данных завершила реструктуризацию на предыдущем шаге. Разберем, как это проверить:
РезультатыОбновленияПрограммы).Только после того, как все обработчики данных отработали успешно, можно закрывать режим Предприятия и переходить к работе в Конфигураторе.
Поскольку при обновлении может возникать ошибка Операция значение должно быть NULL, нам необходимо провести полную диагностику информационной базы. Обратите внимание, что запускать тестирование следует только на копии базы данных!
Для файловых баз данных сначала запустим утилиту тестирования физической целостности файла базы данных. Она находится в каталоге установленной платформы (например, C:\Program Files\1cv8\8.3.12.1529\bin\chdbfl.exe). Запустим утилиту, укажем путь к файлу базы данных 1Cv8.1CD, установим флаг «Исправлять обнаруженные ошибки» и нажмем кнопку «Выполнить».
После успешного завершения работы chdbfl.exe откроем базу в режиме Конфигуратора и выполним логическую проверку:
Также крайне важно выполнить непосредственно проверку конфигурации (меню Конфигурация — Проверка конфигурации) с установленным флагом «Проверка логической целостности конфигурации». Если при выполнении этого действия Конфигуратор вылетает, значит, проблема кроется исключительно в поврежденных метаданных самой конфигурации, и стандартные механизмы обновления здесь бессильны.
Если Конфигуратор стабильно закрывается на определенном проценте сравнения объектов (например, на тех самых 36%), это означает, что платформа падает при попытке прочитать структуру конкретного измененного объекта. Чтобы обойти эту проблему, мы можем применить инженерный метод обновления через создание «чистой» конфигурации без данных. Рассмотрим этот процесс по шагам:
work.cf).work.cf). Выполним обновление конфигурации базы данных (клавиша F7)..cf). Поскольку в базе полностью отсутствуют данные пользователей и транзакции СУБД не блокируются, сравнение и обновление пройдут быстро и без ошибок.updated_work.cf).updated_work.cf).Этот метод позволяет полностью исключить влияние механизма транзакций и конфликтов типов данных СУБД на процесс сравнения сложных конфигураций.
Если анализ логов операционной системы (через «Просмотр событий» Windows, раздел «Приложение») показывает наличие ошибок с кодом 4107 во время падения 1С, нам необходимо восстановить корректную работу криптографических подсистем ОС. Выполним следующие действия от имени администратора системы:
Запустим командную строку cmd.exe от имени Администратора и поочередно выполним команды для очистки кэша отзыва сертификатов:
certutil -urlcache * delete
certutil -setreg chain\ChainCacheResyncFiletime @now
Также рекомендуется временно отключить автоматическое обновление сертификатов в групповых политиках или проверить настройки брандмауэра/прокси-сервера: они не должны блокировать исходящие запросы платформы 1С к адресам верификации цифровых подписей. Если компьютер полностью отключен от интернета, убедитесь, что в системе установлены актуальные корневые сертификаты Windows, импортированные вручную.
Как показывает практика эксплуатации версий 8.3.12 и 8.3.13, некоторые сборки обладают повышенной аварийностью при работе с конфигурациями на управляемых формах (к которым относится «Бухгалтерия предприятия 3.0»). Например, сборка 8.3.12.1529 часто страдает от утечек памяти при сравнении метаданных.
Если вы перепробовали все вышеописанные шаги, но Конфигуратор продолжает вылетать, перенесите базу на компьютер с установленной платформой версии 8.3.12.1685 или перейдите на более стабильную ветку 8.3.15 (или выше, в зависимости от требований релиза вашей конфигурации). На более современных версиях платформы механизмы распределения оперативной памяти при сравнении тяжелых объектов метаданных были кардинально оптимизированы, а также решена проблема с зависанием и падением интерфейса при поиске элементов в меню «Все функции» (Функции для технического специалиста).
Подводя итоги, сформируем краткий чек-лист действий при «тихом» падении Конфигуратора во время обновления:
.dt или копирование файла 1Cv8.1CD) перед любыми манипуляциями!chdbfl.exe и механизм Тестирования и Исправления для устранения логических несоответствий в таблицах.certutil.Применяя эти проверенные шаги на практике, мы сможем гарантированно локализовать проблему, восстановить работоспособность информационной базы и успешно завершить процедуру обновления до актуального релиза программы.