При выпуске важных обновлений конфигураций пользователи часто сталкиваются с предупреждениями фирмы «1С» о нежелательности использования определенных версий платформы. Ярким историческим примером стал релиз конфигурации «Управление торговлей» версии 11.4.6.166, который категорически не рекомендовалось разворачивать на платформе 8.3.13.1513. В этой статье мы подробно разберем причины возникновения этой проблемы, проанализируем критические баги платформы 8.3.13.1513, изучим внутреннюю стратегию выпуска релизов «1С» и определим наиболее безопасные варианты для обновления систем.
Для начала проанализируем ситуацию, в которой оказался бизнес на момент выпуска конфигурации УТ 11.4.6.166 в декабре 2018 года. Это обновление было критически важным для всех торговых предприятий России, так как оно содержало встроенный «Помощник замены ставки НДС на 20%». В связи с законодательными изменениями, вступавшими в силу с 1 января 2019 года, бухгалтеры и ИТ-специалисты были вынуждены проводить обновление в экстренном режиме перед новогодними праздниками. Одновременная установка новой версии конфигурации и переход на «свежую» платформу 8.3.13.1513 обернулись массовыми сбоями в работе баз данных.
Рассмотрим подробнее технические неполадки, которые сделали совместную работу релиза УТ 11.4.6.166 и платформы 8.3.13.1513 практически невозможной. Платформа версии 8.3.13.1513 оказалась крайне нестабильной и содержала целый букет критических ошибок:
В схеме базы данных отсутствует таблица ReferenceXX или Ошибка SDBL: Ссылочная константа содержит недопустимый ссылочный номер таблицы. Платформа некорректно транслировала внутренние запросы к физическим таблицам СУБД (MS SQL Server, PostgreSQL), что приводило к разрушению целостности базы. Для исправления администраторам приходилось временно откатывать платформу на предыдущие стабильные ветки, проводить исправление базы там, и лишь затем продолжать работу.1cv8.exe без записи ошибок в технологический журнал..lic, а также выдавала критическую ошибку: Ошибка при инициализации компоненты лицензирования! Не найден файл внешней компоненты. Проблема устранялась только перезапуском службы «Агент сервера 1С».Для того чтобы понять, почему возникают подобные ситуации, проанализируем внутреннюю политику фирмы «1С» по выпуску обновлений платформы. Разберем по шагам логику версионирования, которая во многом напоминает подход крупных Linux-дистрибутивов:
8.3.13.1513) представляют собой публичные бета-версии. Использование их в реальном бизнесе связано с колоссальными рисками. Переходить на них стоит только тогда, когда новая конфигурация (или библиотека БСП в её основе) жестко требует этого для своей работы.Выясним причину частой ошибки системных администраторов, которые пытаются установить «самую последнюю версию платформы, чтобы надолго хватило». Такая практика в корне неверна. Установка самого свежего, но еще не протестированного временем релиза нечетной ветки гарантированно приведет к сбоям в учете. Правильная стратегия — своевременная установка актуальных минорных обновлений внутри стабильной четной ветки.
Если вы столкнулись с необходимостью обновления конфигурации УТ 11.4.6.166 (или аналогичных конфигураций ERP 2.4.7 / КА 2.4.7), рассмотрим по шагам варианты действий для обеспечения стабильной работы ИТ-архитектуры.
В дистрибутиве поставки обновления УТ 11.4.6.166 четко прописаны требования к платформе. Минимально протестированной и рекомендованной версией на тот момент являлась платформа не ниже 8.3.12.1685. Мы рекомендуем использовать стабильный релиз из ветки 8.3.12. Это гарантирует отсутствие ошибок SDBL и корректное прохождение реструктуризации базы данных.
Если специфика вашей инфраструктуры или использование других конфигураций на сервере жестко требуют наличия платформы ветки 8.3.13, ни в коем случае не используйте релиз 8.3.13.1513. Проанализируем список исправлений в последующих сборках: фирма «1С» оперативно выпустила исправленные версии, такие как 8.3.13.1644 и выше. В этих сборках ошибки реструктуризации СУБД, падения СКД и проблемы с блокировкой ячеек были успешно устранены. Также отличным вариантом станет переход на более позднюю стабильную ветку 8.3.14.
Для предотвращения случайного запуска критически важных баз на нестабильных или запрещенных релизах платформы разработчики могут внедрить программную проверку при начале работы системы. Рассмотрим пример кода, который можно разместить в модуле управляемого приложения:
Процедура ПриНачалеРаботыСистемы()
// Проверим текущую версию платформы
СистемнаяИнфо = Новый СистемнаяИнформация;
ВерсияПлатформы = СистемнаяИнфо.ВерсияПриложения;
// Запретим запуск под проблемным релизом 8.3.13.1513
Если ВерсияПлатформы = "8.3.13.1513" Тогда
Предупреждение = "ВНИМАНИЕ! Работа конфигурации на платформе 8.3.13.1513 запрещена "
+ "из-за критических ошибок СУБД и обновления НДС. "
+ "Пожалуйста, обратитесь к системному администратору для обновления платформы!";
ПоказатьПредупреждение(, Предупреждение);
Отказ = Истина;
ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;
КонецПроцедуры
Использование подобных проверок позволяет централизованно защитить базу данных от повреждения структуры метаданных нерадивыми пользователями или администраторами, которые поспешили с обновлением окружения.
Подводя итог, всегда внимательно читайте файл ReadMe.txt и требования к платформе в дистрибутиве обновления конфигурации. Не гонитесь за самыми свежими номерами версий платформ, отдавая предпочтение проверенным LTS-веткам, и обязательно выполняйте резервное копирование баз данных перед любыми манипуляциями с системой.