В практической работе системных администраторов и специалистов 1С часто встречается крайне неприятная ситуация: стабильно работающая файловая база данных начинает вести себя непредсказуемо. В определенный момент времени — чаще всего утром, когда пользователи один за другим начинают подключаться к системе — программа аварийно закрывается («вылетает») на всех рабочих станциях одновременно. При этом в журнале событий Windows фиксируется ошибка с указанием сбойного модуля KERNELBASE.dll и кодом исключения 0xe06d7363.
В рамках данной статьи мы подробно проанализируем причины возникновения этой проблемы, выявим скрытые механизмы конфликтов между платформой 1С и операционной системой Windows 10, а также разработаем комплексный пошаговый алгоритм устранения этой неисправности.
Для начала разберем природу самой ошибки. Системный код исключения 0xe06d7363 — это стандартный код критической ошибки компилятора Microsoft Visual C++ (так называемое Microsoft C++ Exception). Этот код генерируется операционной системой всякий раз, когда приложение (в нашем случае 1cv8c.exe) сталкивается с программным исключением, которое оно не может корректно обработать на уровне собственного кода.
В контексте работы файловой версии 1С:Предприятия по локальной сети данный сбой почти всегда сигнализирует о том, что платформа потеряла монопольный доступ или целостность физического файла базы данных 1Cv8.1CD, временного файла блокировок 1Cv8.1CL или транзакционных логов. Платформа пытается совершить операцию чтения/записи, получает от операционной системы Windows жесткий отказ, аварийно завершает поток и закрывается на всех компьютерах, подключенных к этой сетевой сессии.
Рассмотрим детальнее ситуацию, когда на компьютере-сервере (хосте), где физически размещена база данных, установлена утилита резервного копирования — например, популярный инструмент Cobian Backup. Очень часто администраторы настраивают бэкапы «по событиям» или с определенным интервалом в утренние часы.
Выясним, как именно Cobian Backup или аналогичное ПО провоцирует крах 1С:
1Cv8.1CD. Если в эту секунду кассир или менеджер пытается войти в базу или провести документ, сетевой запрос зависает. Происходит таймаут, сетевая сессия сбрасывается, и 1С вылетает.Файловая база 1С чрезвычайно чувствительна к качеству сети и сетевым механизмам кэширования Windows 10. Разберем два ключевых фактора:
Оппортунистические блокировки (Opportunistic Locks / Oplocks): Если один компьютер (например, ПК менеджера) запущен круглосуточно с открытой 1С, операционная система Windows локально кэширует работу с файлом базы на этом ПК. Когда утром другие компьютеры (кассы) пытаются подключиться, хост-компьютер обязан мгновенно сбросить локальный кэш менеджера и перевести доступ к файлу базы в полноценный многопользовательский режим по сети. Если сетевое соединение имеет задержки или служба Oplocks работает некорректно, Windows не успевает вовремя согласовать блокировки. Результат — повреждение дескрипторов файлов и вылет платформы у всех участников сети.
Сетевое кэширование SMB2/SMB3: Современные версии протокола SMB агрессивно кэшируют метаданные файлов для экономии трафика. Для файловой 1С это критично, так как изменения файлов блокировок должны передаваться мгновенно. Если кэширование метаданных включено, клиенты видят устаревшую информацию о блокировках таблиц, пытаются писать в занятые сектора файла базы, что вызывает ошибку KERNELBASE.dll.
Даже если брандмауэры выключены, а сторонние антивирусы не установлены, в Windows 10 всегда по умолчанию активна встроенная служба безопасности — Windows Defender (Защитник Windows). При утреннем массовом входе пользователей резко возрастает дисковая активность в сетевой папке с базой. Защитник Windows расценивает это как потенциальную угрозу и начинает «на лету» сканировать открываемые файлы базы данных и временные файлы 1С. Блокировка файлов антивирусом на доли секунды приводит к системным сбоям и аварийному вылету платформы.
Разработчики фирмы "1С" не просто так указывают минимальные требования к версии платформы для каждого нового релиза конфигурации (например, 1С:Розница или 1С:ЗУП). В новых релизах конфигураций могут использоваться объекты метаданных, методы встроенного языка или механизмы платформы, которые физически отсутствуют или некорректно реализованы в старых версиях технологической платформы. Использование устаревшей платформы (например, 8.3.13) с современными конфигурациями неизбежно ведет к непредсказуемым утечкам памяти и системным крахам.
Рассмотрим подробный план действий по стабилизации работы файловой базы 1С на компьютерах под управлением Windows 10.
Ни в коем случае нельзя выполнять резервное копирование файловой базы 1С в рабочее время, тем более в моменты активного входа пользователей в систему. Настроим Cobian Backup правильно:
Пример командного файла (bat-скрипта) для принудительного закрытия зависших сессий 1С перед бэкапом:
taskkill /F /IM 1cv8.exe
taskkill /F /IM 1cv8c.exe
Откажемся от использования устаревших версий платформы. Обновим платформу 1С на всех трех компьютерах до актуального стабильного релиза (например, из веток 8.3.16, 8.3.18 или новее, в зависимости от требований вашего релиза конфигурации). Важно, чтобы на всех компьютерах сети была установлена строго одинаковая версия платформы.
Поскольку ошибка KERNELBASE.dll тесно связана со средой выполнения C++ и системными библиотеками Windows, выполним следующие действия на всех компьютерах:
Добавим рабочие каталоги 1С в исключения антивируса на всех трех компьютерах (особенно на компьютере-хосте):
C:\1C_Bases\Retail\).1cv8.exe и 1cv8c.exe.*.1CD, *.1CL, *.tmp.Для предотвращения задержек при согласовании сетевых блокировок отключим кэширование метаданных в Windows 10. Выполним эту настройку на компьютерах-клиентах (кассах), которые подключаются к базе по сети.
Для этого создадим и запустим reg-файл со следующим содержимым:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"DirectoryCacheLifetime"=dword:00000000
"FileInfoCacheLifetime"=dword:00000000
"FileNotFoundCacheLifetime"=dword:00000000
После внесения изменений в реестр обязательно перезагрузим компьютеры для применения настроек.
Так как база данных ранее многократно аварийно закрывалась, файлы кэша на компьютерах пользователей гарантированно повреждены. Также могли пострадать внутренние таблицы базы данных. Выполним финальную очистку и диагностику: кроме ручных действий, для регулярной проверки целостности и исправления ошибок можно использовать программу для автоматического тестирования и обслуживания баз 1С.
%LocalAppData%\1C\1Cv8\%AppData%\1C\1Cv8\bin) найдем файл утилиты диагностики chdbfl.exe. Запустим ее, укажем путь к файлу базы 1Cv8.1CD, установим флаг «Исправлять обнаруженные ошибки» и выполним проверку физической целостности таблиц.Выполнение этих пяти системных настроек и регламентных процедур гарантированно устранит проблему утренних вылетов 1С и обеспечит стабильную многопользовательскую работу файловой информационной базы в локальной сети.