Иногда при старте информационной базы после очередного обновления разработчики и пользователи сталкиваются с критической ошибкой компиляции модуля. Проанализируем конкретную ситуацию: после обновления базовой версии программы «1С:Зарплата и Управление Персоналом» до релиза 111.1 запуск системы аварийно прерывается системным сообщением.
Платформа выдает следующий текст ошибки:
{Обработка.ДокументооборотСКонтролирующимиОрганами.МодульОбъекта(8760,47)}: Переменная не определена (СвойстваСертификаЂа)
В теле метода обнаружена некорректная строка:
СвойстваСертификатов.Вставить(Отпечаток, СвойстваСертификаЂа);
Вместо стандартной буквы «т» в идентификаторе переменной оказался искаженный символ «Ђ». Разберем причины этой неполадки, особенности работы с базовыми версиями конфигураций и надежные способы восстановления работоспособности базы данных.
Выясним причину появления битого символа в коде. Подобная замена одного символа на нечитаемый знак указывает на побайтовое повреждение данных. В эталонном релизе конфигурации от разработчиков фирмы 1С такой ошибки нет: поиск по оригинальным файлам поставщика не находит строку СвойстваСертификаЂа. Нарушение целостности происходит на стороне пользователя под воздействием следующих факторов:
.cfu или .cf, а также ошибки архиватора приводят к порче байтов дистрибутива.Config или ConfigSave внутри файла базы данных 1Cv8.1CD.Первое побуждение специалиста — открыть модуль обработки ДокументооборотСКонтролирующимиОрганами в конфигураторе, вручную исправить букву «Ђ» на «т» и сохранить изменения. Однако для базовых версий конфигураций 1С этот способ неприменим по следующим причинам:
Следовательно, решать проблему необходимо без снятия конфигурации с замка поставщика. Рассмотрим рабочие варианты исправления ситуации.
Довольно часто ошибка вызвана повреждением временных файлов метаданных. Разберем по шагам процедуру полной очистки кэша платформы:
%USERPROFILE%\AppData\Local\1C\1Cv8%USERPROFILE%\AppData\Roaming\1C\1Cv81Cv8.1CD. При этом ветка кэша для этой базы сформируется заново с чистого листа.Если очистка кэша не помогла, значит, повреждение записано непосредственно в конфигурацию базы данных. Наиболее надежный и правильный способ решения проблемы без потери пользовательских данных — полная перезапись метаданных эталонным дистрибутивом поставщика.
Рассмотрим порядок действий:
.cfu, а полный дистрибутив, содержащий файл поставки .cf) строго базовой версии того же самого релиза.1Cv8.1CD перед выполнением любых операций..cf.Этот метод заменяет поврежденные участки метаданных на корректный заводской код 1С, полностью сохраняя накопленные в информационной базе учетные данные, документы, справочники и базовый статус лицензии.
Если полного файла поставки .cf нет под рукой, применим проверенную схему обновления из архива:
tmplts, удалив поврежденный каталог релиза, чтобы исключить повторное использование битого файла.Если сбои и искажения данных продолжают возникать, проанализируем физическую структуру файла базы. Для этого выполним тестирование целостности:
C:\Program Files (x86)\1cv8\<номер_версии>\bin\).chdbfl.exe.1Cv8.1CD.После завершения проверки утилита выведет отчет об исправлении поврежденных внутренних таблиц, после чего можно повторить запуск программы или загрузку конфигурации.
Появление случайных артефактов в коде модулей часто свидетельствует о скрытых сбоях аппаратной части компьютера. Рекомендуется выполнить профилактические мероприятия: проверить жесткий диск на наличие битых секторов с помощью системной команды chkdsk /f /r, а также протестировать модули оперативной памяти штатным средством проверки памяти операционной системы, чтобы исключить искажение данных при будущих обновлениях платформы и баз 1С.