Ситуация, когда информационная база перестает запускаться в режиме 1С:Предприятие и аварийно завершает работу с сообщением об ошибке, является одной из самых распространенных в практике сопровождения. При этом в режиме Конфигуратор база нередко открывается без каких-либо замечаний. Выясним причину такого поведения платформы и подробно разберем все способы восстановления работоспособности системы.
Проанализируем механику работы клиентского приложения 1С. В процессе функционирования платформа активно сохраняет на локальный диск пользователя промежуточные данные: структуры форм, метаданные конфигурации, пользовательские настройки расположения элементов интерфейса, списков и отчетов. Эти данные помещаются в каталоги временных файлов (кэш).
Сбой запуска чаще всего провоцируют следующие факторы:
1cv8.exe через диспетчер задач в момент записи временных файлов повреждает их структуру.Рассмотрим самый быстрый и безопасный для обычного пользователя способ сброса кэша без прямого вмешательства в системные каталоги Windows. При удалении строки базы из окна запуска платформа перестает сопоставлять старые закэшированные файлы с этой конфигурацией, создавая при новом добавлении чистый каталог с новым идентификатором (GUID).
Разберем по шагам последовательность действий:
Если перерегистрация базы не помогла или ошибка повторяется, очистим временные файлы вручную. Платформа 1С хранит данные сеанса сразу в двух профильных каталогах Windows: Local (локальные временные файлы) и Roaming (пользовательские настройки интерфейса, форм и окон).
Разберем по шагам правильный порядок очистки:
1cv8.exe и 1cv8c.exe в диспетчере задач).c:\Users\<Имя_пользователя>\AppData\Local\1C\1cv8\.c:\Users\<Имя_пользователя>\AppData\Roaming\1C\1Cv8\.f25898b4-80d3-4f21-b2f7-2736920fde54 и удалим их.Обратите внимание: ни в коем случае нельзя удалять файлы с расширениями .v8i (например, ibases.v8i) и .pfl (файлы 1cv8.pfl, 1cv8u.pfl). В них содержатся общий список ваших баз и индивидуальные настройки запуска. Удалению подлежат исключительно папки с буквенно-цифровыми идентификаторами (GUID).
В организациях с большим числом рабочих станций или на терминальных серверах ручное удаление папок отнимает много времени. Рассмотрим скрипт на языке VBScript, который можно сохранить как исполняемый файл и запускать при возникновении сбоев или поместить в сценарий входа пользователя.
Посмотрим на пример скрипта:
Dim FSO
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set colEnvVars = WshShell.Environment("Process")
FolderName1 = "\Local Settings\Application Data\1C\1Cv82"
FolderName2 = "\Local Settings\Application Data\1C\1Cv81"
FolderName3 = "\Local Settings\Application Data\1C\1Cv80"
FolderName4 = "\Local Settings\Application Data\1C\1Cv8"
If FSO.FolderExists(colEnvVars("userprofile") & FolderName1) Then
GoSubFolders colEnvVars("userprofile") & FolderName1
End If
If FSO.FolderExists(colEnvVars("userprofile") & FolderName2) Then
GoSubFolders colEnvVars("userprofile") & FolderName2
End If
If FSO.FolderExists(colEnvVars("userprofile") & FolderName3) Then
GoSubFolders colEnvVars("userprofile") & FolderName3
End If
If FSO.FolderExists(colEnvVars("userprofile") & FolderName4) Then
GoSubFolders colEnvVars("userprofile") & FolderName4
End If
Sub DelFile(sFILE)
On Error Resume Next
FSO.DeleteFile sFILE, True
If Err.Number <> 0 Then
Wscript.Echo "Error deleting file: " & sFILE
End If
End Sub
Function GetFolder(sFOLDER)
On Error Resume Next
Set GetFolder = FSO.GetFolder(sFOLDER)
If Err.Number <> 0 Then
Wscript.Echo "Error connecting to folder:" & sFOLDER & VBlf & "[" & Err.Number & "]" & Err.Description
Wscript.Quit Err.Number
End If
End Function
Sub GoSubFolders (objDIR)
ProcessFilesInFolder objDIR
Set sFolder = GetFolder(objDIR)
For Each eFolder in sFolder.SubFolders
GoSubFolders eFolder
Next
FSO.DeleteFolder sFolder, True
End Sub
Sub ProcessFilesInFolder (objDIR)
Set sFolder = GetFolder(objDIR)
For Each objFile in sFolder.Files
DelFile objFile
Next
End Sub
Для использования скрипта сохраним приведенный текст в текстовом редакторе и присвоим файлу имя с расширением .vbs, например ClearCache1C.vbs. Перед выполнением скрипта необходимо убедиться, что все сеансы 1С закрыты.
Рассмотрим еще одну возможность платформы, не требующую удаления файлов напрямую. Разработчики предусмотрели специальный ключ командной строки для очистки кэша метаданных при старте сеанса.
Разберем по шагам его настройку:
/ClearCache.Важно понимать: данный параметр удаляет кэш метаданных конфигурации, но не очищает сохраненные настройки форм в папке Roaming. Кроме того, постоянное использование параметра /ClearCache замедляет каждый запуск базы, поэтому после успешного устранения проблемы указанный ключ рекомендуется убрать.
Если после выполнения всех действий ошибка сохраняется, проблема кроется глубже пользовательского интерфейса. Проанализируем дополнительные диагностические шаги:
1Cv8.1CD запустим утилиту chdbfl.exe (находится в каталоге bin установленной платформы), выберем файл базы, установим флаг Исправлять обнаруженные ошибки и выполним проверку.snccntx* в папке srvinfo) и перезапустить службу.