При попытке добавить или изменить объекты метаданных (новые реквизиты, регистры, справочники) в конфигурации 1С на клиент-серверной базе (MS SQL Server) разработчики нередко сталкиваются с внезапным падением программы. Конфигуратор аварийно завершает работу, а в журнале событий Windows фиксируется ошибка APPCRASH в приложении 1CV8.exe с указанием сбойного модуля backend.dll и кода исключения c0000005 (нарушение прав доступа к памяти / Access Violation).
При этом та же самая операция в файловой копии базы данных может выполняться без каких-либо сбоев. Проанализируем основные причины этой неполадки и разберем по шагам действенные методы ее устранения.
Сбой backend.dll с кодом c0000005 сигнализирует о попытке обращения к недопустимому участку оперативной памяти. В контексте работы Конфигуратора 1С это вызывают следующие факторы:
1CV8.exe ограничен 2 ГБ оперативной памяти. При реструктуризации крупных конфигураций (например, УПП или ERP) разбор дерева метаданных переполняет стек, что приводит к краху библиотеки backend.dll.Config, ConfigSave или Params на стороне СУБД.tempdb на MS SQL Server.Самое простое и часто результативное действие — удаление накопившегося кэша метаданных. Выполним полную очистку:
%AppData%\1C\1Cv8\
%LocalAppData%\1C\1Cv8\snccntx внутри системного каталога srvinfo), после чего снова запустим службу.Если в конфигурации используется устаревший режим совместимости (характерно для конфигураций на обычных формах, таких как УПП или КА 1.1), ошибка может быть напрямую вызвана платформенным багом.
РежимСовместимости в корне конфигурации. Попробуем временно переключить режим совместимости на более высокий (например, «Версия 8.2.16» или выше), применить изменения в структуре базы данных, а затем при необходимости вернуть режим обратно.Так как в файловом варианте реструктуризация проходит успешно, используем файловую базу как промежуточный узел:
.cf.Если в таблицах метаданных СУБД зависли некорректные временные срезы изменений, очистим таблицу несохраненных изменений напрямую в СУБД:
BACKUP DATABASE).
DELETE FROM ConfigSave;
DBCC CHECKDB WITH NO_INFOMSGS;
Запуск реструктуризации через графический интерфейс Конфигуратора расходует дополнительную память на отрисовку окон и деревьев объектов. Пакетный режим снижает потребление ресурсов:
"C:\Program Files (x86)\1cv8\8.3.X.XXXX\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "ЛогинАдминистратора" /P "Пароль" /UpdateDBCfg -WarningsAsErrors /Out "C:\Temp\update_log.txt"
C:\Temp\update_log.txt на наличие сообщений об успешном завершении реструктуризации.Если проблема вызвана нехваткой 2 ГБ памяти 32-битного процесса при анализе тяжелой конфигурации, установим и запустим 64-разрядный клиент 1С:Предприятия (x86-64). 64-битный Конфигуратор не имеет жесткого ограничения в 2 ГБ на процесс и успешно завершает реструктуризацию сложных графов метаданных.