Процесс обновления программных продуктов на платформе 1С:Предприятие 8 не всегда проходит гладко. Пользователи и системные администраторы часто сталкиваются со сбоями, когда стандартные процедуры обновления завершаются критическими ошибками, а база данных отказывается запускаться в пользовательском режиме. Причин тому может быть множество — от локального повреждения кэша конфигурации до серьезных внутренних ошибок в коде самих релизов или платформы.
В этой статье мы подробно разберем по шагам, как локализовать и устранить ошибки обновления на примере конфигурации «Бухгалтерия предприятия» (БП 3.0), проанализируем базовый регламент восстановления базы данных и рассмотрим системные сбои, характерные для платформы 8.3.16 и конкретных релизов конфигураций.
Прежде чем приступать к глубокому анализу структуры базы данных, рассмотрим простейшую, но наиболее частую причину сбоев после обновления — некорректное кэширование метаданных на стороне клиента. В процессе динамического обновления или применения тяжелых обновлений файлы локального кэша могут заблокироваться или записаться с ошибками.
Очистка кэша выполняется следующими способами:
%userprofile%\AppData\Local\1C\1cv8 и %userprofile%\AppData\Roaming\1C\1cv8 (удалять нужно каталоги с длинными буквенно-цифровыми именами-идентификаторами).
/ClearCache
Если очистка кэша не принесла результатов, перейдем к проверке физической и логической целостности базы данных штатными средствами платформы 1С. Запустим информационную базу в режиме «Конфигуратор» и перейдем в меню «Администрирование — Тестирование и исправление».
Проанализируем ключевые настройки, которые необходимо выставить перед запуском процедуры:
Перед запуском ТИИ обязательно создадим резервную копию базы данных (файл формата .dt или архив каталога файловой базы)!
Одной из главных причин возникновения системных ошибок после обновления является несоблюдение последовательности релизов. Если администратор выполняет обновление базы данных сразу на несколько версий вперед путем прямой загрузки файла конфигурации .cf, велика вероятность сломать логику базы данных.
Рассмотрим, почему так происходит:
.cf, обработчики промежуточных обновлений просто не запустятся или отработают некорректно. В результате в базе образуется критическая нехватка предопределенных элементов или незаполненные системные реквизиты, что приведет к падению программы с ошибками вида Поле объекта не обнаружено.Правильный алгоритм действий при обновлении:
.cfu.Иногда типовая конфигурация ошибочно переводится пользователями в режим изменения, из-за чего на некоторые объекты накладывается блокировка обновлений. Посмотрим, как проверить целостность конфигурации поставщика:
В случаях, когда база данных «зависла» в промежуточном состоянии (часть объектов обновилась, а часть выдает ошибки), помогает принудительное обновление через файлы конфигурации. Разберем этот сценарий:
.cf через меню «Конфигурация — Сохранить конфигурацию в файл...»..cf.Для файловых баз СУБД эффективным методом борьбы с внутренними системными сбоями СУБД является перенос данных. Для этого выгрузим базу в файл .dt, создадим новую пустую базу и загрузим этот файл обратно. Если база работает в клиент-серверном варианте под управлением MS SQL или PostgreSQL, иногда помогает временная выгрузка базы в файловый вариант, проведение обновления на локальном компьютере и последующая загрузка обновленной файловой базы обратно на SQL-сервер.
Разработчики типовых конфигураций не всегда успевают протестировать работу интерфейсных модулей во всех режимах работы платформы. Порой критические ошибки возникают из-за несовместимости кода с режимом запуска (например, тонкий клиент пытается выполнить функции, предназначенные исключительно для толстого клиента, или наоборот).
Чтобы избежать подобных ситуаций, в настройках подключения базы в окне запуска в поле «Режим запуска» установим значение «Выбирать автоматически». Это позволит платформе самостоятельно определять контекст выполнения кода.
Ниже приведем пример скрипта автоматизации для пакетного запуска очистки кэша и обновления базы данных через командную строку (консоль), что бывает полезно для системных администраторов:
REM Запуск обновления конфигурации базы данных в пакетном режиме
"C:\Program Files\1cv8\8.3.16.1063\bin\1cv8.exe" DESIGNER /F"C:\1C_Bases\Accounting" /N"Администратор" /P"Пароль" /UpdateDBCfg /ClearCache
Рассмотрим реальный исторический пример того, как некорректные релизы от самого разработчика 1С могут парализовать работу пользователей. Релиз БП 3.0.75.48, выпущенный в конце декабря 2019 года, является ярким примером «отозванного» релиза.
Фирма 1С официально отозвала этот релиз практически сразу после его публикации из-за двух критических ошибок:
Поле объекта не обнаружено (Идентификатор). Ошибка крылась в нестыковке измененных реквизитов внутренних справочников интеграции.Предопределенное значение "Справочник.СтатьиЗатрат.СлужебныйАвтотранспорт" не найдено. Это происходило из-за того, что разработчики добавили новый предопределенный элемент, но обработчики обновления не успевали создать его в некоторых базах из-за нарушения цепочки обновления.Решение: В подобных ситуациях единственным выходом является откат базы к стабильной архивной копии и накат исправленного релиза, выпущенного взамен отозванного.
Часто ошибки обновления связаны не с самой конфигурацией, а с установленной версией платформы 1С. Версия 8.3.16 принесла администраторам множество неприятных сюрпризов, о которых необходимо знать заранее.
1. Полный крах системы печати
В платформе 8.3.16 разработчики решили изолировать драйверы принтеров от основного процесса 1С, чтобы нестабильные драйверы не приводили к падению всей программы. Для этого печать была вынесена во внешние исполняемые файлы 1cv8p32.bin и 1cv8p64.bin.
Это привело к следующим массовым багам:
.bin как подозрительную активность и блокировать их. В результате печать в 1С полностью переставала работать.Не удалось получить характеристики принтера. Проверьте подключение... из-за несовместимости кэша настроек принтера в документах.2. Зависание серверов на платформе 8.3.16.1063
Данный релиз платформы оказался крайне нестабильным для клиент-серверных СУБД. При попытке нескольких пользователей войти в систему программа зависала на этапе выбора информационной базы. При этом на сервере запускался аварийный фоновый процесс dbda, который циклически перезапускался, генерировал гигабайты дампов памяти и полностью забивал системные диски сервера.
3. Ошибка «Нарушение целостности системы»
Именно с версий 8.3.16 платформа начала использовать новые, гораздо более жесткие алгоритмы проверки лицензионной чистоты. Программа могла запуститься штатно, но через 5–10 минут работы внезапно закрывалась с ошибкой целостности системы. Причиной тому служили старые «хвосты» эмуляторов ключей защиты HASP или патчей, которые оставались в системе со старых времен, даже если текущий запуск производился с легальной программной или аппаратной лицензией.
4. Ложное предупреждение «Имя не уникально»
При обновлении конфигураций на 8.3.16 системные администраторы часто пугались сообщения в конфигураторе: ОбщаяКартинка.Информация: Имя не уникально! (баг 00-00306728). Данная ошибка возникала из-за дублирования системного имени картинки внутри самой платформы и метаданных типовой конфигурации. Эту ошибку можно безопасно игнорировать — она не влияет на работоспособность базы данных.
Проанализировав все указанные факторы, мы можем сделать вывод: если после обновления конфигурации 1С:Бухгалтерия у вас возникли необъяснимые ошибки, выполните очистку кэша, проверьте базу с помощью ТИИ, убедитесь в отсутствии пропущенных релизов при обновлении и проверьте стабильность используемой версии платформы (в некоторых случаях самым надежным решением будет временный откат на стабильную версию платформы 8.3.15).