Платформа 8.3.23: Почему долго открываются базы и как решить проблемы с кэшированием?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Переход на новые релизы платформы 1С:Предприятие 8.3 часто сопровождается не только появлением новых возможностей, но и непредвиденными сложностями в администрировании. Одной из самых обсуждаемых тем в последнее время стала нестабильная работа ветки 8.3.23, в частности релиза 8.3.23.1865. Пользователи массово жалуются на аномально долгое время первого запуска информационных баз, избыточную нагрузку на дисковую подсистему и ошибки совместимости со старыми конфигурациями.

В этой статье мы подробно проанализируем причины возникновения этих проблем, разберем механизмы кэширования в новых версиях платформы и предложим проверенные способы стабилизации работы системы.

Причина 1: Изменение механизмов кэширования и работы с временными файлами

Проанализируем ситуацию, описанную системными администраторами: при запуске базы в каталоге %LOCALAPPDATA%\1Cv8 пользователя, под которым работает агент сервера 1С, начинается лавинообразная запись временных файлов. Выясним причину такого поведения. В ветке 8.3.23 разработчики 1С существенно переработали механизмы формирования локального кэша метаданных. Теперь при первом подключении к базе (особенно после обновления платформы или реструктуризации) система инициирует глубокую проверку и перестроение индексных файлов кэша.

Если процесс прерывается или блокируется внешними средствами, платформа может войти в цикл постоянной перезаписи этих данных при каждом новом сеансе. Для решения этой проблемы рассмотрим следующие шаги:

  1. Очистка серверного кэша: Остановите службу 1C:Enterprise 8.3 Server Agent. Полностью удалите содержимое папок внутри каталога srvinfo (за исключением файлов настроек .lst). Это заставит сервер пересоздать структуру сеансовых данных «с чистого листа».
  2. Проверка прав доступа: Убедитесь, что учетная запись, от которой запущена служба сервера 1С, имеет полные права на чтение и запись в каталоги %LOCALAPPDATA% и %APPDATA%. Недостаток прав часто приводит к тому, что временные файлы создаются, но не могут быть корректно индексированы.

Причина 2: Конфликт с антивирусным ПО и Windows Defender

Разберем, почему стандартные средства защиты системы могут стать «врагом» производительности 1С. Поскольку релиз 8.3.23 создает огромное количество мелких файлов в процессе кэширования, антивирусы (включая встроенный Windows Defender) могут распознать эту активность как подозрительную (схожую с работой вирусов-шифровальщиков). Каждая попытка записи файла блокируется для сканирования, что увеличивает время загрузки конфигурации в 5–10 раз.

Чтобы исключить этот фактор, выполним настройку исключений. Добавим в доверенную зону антивируса:

Причина 3: Ошибки совместимости и вызов функций из будущего (StrTemplate)

Рассмотрим специфическую проблему, возникающую в конфигурациях, работающих в режиме совместимости с версией 8.2.16. В релизах 8.3.23 была обнаружена ошибка: внутренние механизмы платформы (например, при формировании отчетов на базе БСП) пытаются вызвать функцию StrTemplate (или СтрШаблон), которая физически отсутствует в ядре версии 8.2.16. Это приводит к аварийному завершению работы отчетов.

Если вы не можете поднять режим совместимости конфигурации, можно применить «костыль» — программную эмуляцию функции. Создадим общий модуль с признаком «Глобальный» и добавим в него следующий код:


Функция СтрШаблон(Знач Шаблон, Знач Значение1 = Неопределено, Знач Значение2 = Неопределено, Знач Значение3 = Неопределено) Экспорт
    // Простая реализация замены параметров для старых режимов совместимости
    Результат = Шаблон;
    Результат = СтрЗаменить(Результат, "%1", Строка(Значение1));
    Результат = СтрЗаменить(Результат, "%2", Строка(Значение2));
    Результат = СтрЗаменить(Результат, "%3", Строка(Значение3));
    Возврат Результат;
КонецФункции

Этот метод позволит платформе найти требуемую функцию и продолжить работу без критических ошибок.

Причина 4: Регламентные задания в расширениях

Многие разработчики переходят на 8.3.23 только ради возможности использовать регламентные задания внутри расширений. Однако, учитывая нестабильность платформы, можно рассмотреть альтернативный способ реализации этой задачи на более стабильной ветке 8.3.22.

Посмотрим на пример использования программного создания заданий через БСП. Вместо того чтобы полагаться на механизмы платформы в расширении, мы можем добавить задание в справочник РегламентныеЗадания программно:


Процедура ПриУстановкеРасширения()
    // Используем методы БСП для регистрации задания
    МетаданныеОбъекта = Метаданные.ОбщиеМодули.МойМодульИзРасширения;
    РегламентныеЗаданияСервер.ДобавитьЗадание(
        "МоеЗаданиеИзРасширения", 
        "Выполнение обработки данных", 
        "МойМодульИзРасширения.ВыполнитьДействие", 
        Истина
    );
КонецПроцедуры

Такой подход позволяет оставаться на стабильном релизе 8.3.22.2239, сохраняя необходимый функционал.

Итоговые рекомендации по выбору платформы

Проанализировав опыт эксплуатации различных сборок, можно сделать следующие выводы:

  1. Если для вашей конфигурации (например, последние версии БП или ЗУП) не требуется жестко ветка 8.3.23, рекомендуется откатиться на версию 8.3.22.2239. На текущий момент она является наиболее сбалансированной по производительности и количеству ошибок.
  2. Если переход на 8.3.23 неизбежен (требование отраслевого решения), используйте только последние исправленные релизы, такие как 8.3.23.2040 и выше. В них исправлена значительная часть ошибок, связанных с повреждением областей данных и очисткой сеансовых данных.
  3. Для высоконагруженных систем на базе Linux и PostgreSQL внимательно следите за параметром shared_buffers. Платформа 8.3.23 более агрессивно работает с планами запросов, что может потребовать увеличения объемов выделяемой памяти на стороне СУБД.

Таким образом, основное решение проблем с медленным открытием баз в 8.3.23 заключается в комплексном подходе: очистке кэша, настройке антивируса и, в крайнем случае, использовании программных патчей для обеспечения обратной совместимости.

← На главную