При возникновении аварийных завершений работы 1С:Предприятия и ошибок вида «файл базы данных поврежден 1Cv8tmp.1CD» или «Отсутствует файл базы данных» основным инструментом диагностики выступает технологический журнал. Однако администраторы часто сталкиваются с ситуацией, когда конфигурационный файл журнала размещен, но логи не формируются, а падения программы продолжаются. Разберем по шагам, как правильно настроить сбор технологического журнала и устранить первопричины сбоев с временными файлами файловой базы данных.
Самая распространенная причина, по которой платформа 1С игнорирует файл logcfg.xml, — отсутствие обязательного пространства имен в корневом теге <config>. Платформа строго проверяет валидность XML-структуры, и при отсутствии атрибута xmlns чтение конфигурации сбрасывается без вывода предупреждений пользователю.
Посмотрим на пример некорректного файла конфигурации:
<config>
<log location="C:\Users\Reception2\Documents\1clog" history="168">
<event>
<eq property="Name" value="excp"/>
</event>
<property name="all"> </property>
</log>
</config>
Чтобы технологический журнал начал собираться, заменим корневой элемент и укажем корректный заголовок с пространством имен платформы 1С:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\Logs\1C_Log" history="168">
<event>
<eq property="Name" value="excp"/>
</event>
<property name="all"/>
</log>
</config>
Обратим внимание на основные параметры конфигурации:
location — путь к каталогу, куда будут записываться файлы журнала. Рекомендуется использовать короткие пути на локальном диске (например, C:\Logs\1C_Log), избегая кириллицы и пробелов.history — период хранения логов в часах, по истечении которого старые файлы будут удаляться автоматически.event — фильтрация собираемых событий. Значение excp позволяет собирать только исключительные ситуации и аварийные дампы, минимизируя нагрузку на дисковую подсистему.property name="all" — фиксация всех доступных свойств произошедшего события.Разберем требования к правам доступа и расположению конфигурационного файла:
logcfg.xml должен находиться в подкаталоге conf конкретной используемой версии платформы (например, C:\Program Files (x86)\1cv8\8.3.10.2580\bin\conf) либо в общеплатформенном каталоге C:\Program Files (x86)\1cv8\conf.1cv8.exe (или 1cv8c.exe), должны быть права на чтение файла logcfg.xml и каталога conf.location, учетная запись пользователя должна иметь полные права (Modify / Full Control) на создание файлов и подкаталогов.Если технологический журнал по-прежнему не создается, проанализируем обращение процессов 1С к файловой системе с помощью утилиты Process Monitor (Procmon) от Microsoft Sysinternals. Установим фильтр по имени процесса Process Name is 1cv8c.exe и операциям с файлами, чтобы точно увидеть, пытается ли платформа прочитать logcfg.xml и получает ли ошибку ACCESS DENIED при попытке создания папки логов.
После успешной настройки технологического журнала событие EXCP фиксирует сбой вида:
55:09.298000-0,EXCP,0,process=1cv8c,Exception=DatabaseException8,Descr="Отсутствует файл базы данных '\\Server2008\1c\УМЦ Доктор Симкин/1Cv8tmp.1CD'"
Файл 1Cv8tmp.1CD создается платформой динамически для выполнения временных выборок, сложных сортировок и хранения промежуточных данных запросов. Выясним основные причины его повреждения или внезапного исчезновения:
DatabaseException8.*.cfl).Для стабилизации сетевого взаимодействия с файловой базой выполним системные настройки на всех клиентских машинах и файловом сервере.
1. Отключение клиентского кэширования SMB:
На клиентских компьютерах в ветке системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters создадим параметры типа DWORD (32 бита) со значением 0:
DirectoryCacheLifetime = 0FileInfoCacheLifetime = 0FileNotFoundCacheLifetime = 0Эти настройки отключают локальное удержание информации о существующих и отсутствующих файлах, гарантируя актуальный опрос сетевого каталога.
2. Отключение оппортунистических блокировок на сервере:
В ветке реестра сервера HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters зададим параметр типа DWORD: EnableOplocks = 0, после чего перезагрузим службу сервера или операционную систему.
3. Добавление исключений в антивирус:
В настройках антивирусного сканера на сервере и рабочих местах добавим в список исключений:
1cv8.exe, 1cv8c.exe, 1cv8s.exe.%TEMP%, %LOCALAPPDATA%\1C\1cv8).*.1cd, *.1ch, *.cfl, *.tmp.Прямой доступ нескольких пользователей к файлу базы данных через общий сетевой ресурс (SMB) архитектурно нестабилен на современных конфигурациях. Для полного устранения проблем рекомендуется использовать один из следующих подходов:
http://server/base_name). В таком режиме непосредственный доступ к файлу .1CD выполняет только рабочий процесс веб-сервера, что исключает сетевые сбои SMB и рассинхронизацию временных файлов.