При настройке распределенной информационной базы (РИБ) по магазинам в конфигурации 1С:Розница 2.2 администраторы и разработчики часто сталкиваются с неприятной ситуацией: созданный начальный образ периферийного узла запускается крайне долго — от 5 до 15 минут. При этом долго открываются формы справочников и документов, зависает стартовая обработка начальной настройки РИБ, а выгрузка данных при первом обмене требует неоправданно много времени даже на производительном оборудовании.
Разберем основные причины такого поведения платформы и детально рассмотрим проверенные способы восстановления быстродействия подчиненного узла.
Если в центральной информационной базе до создания начального образа применялось так называемое «демоническое» (динамическое) обновление конфигурации, таблицы метаданных могут содержать скрытые несоответствия. При создании подчиненного узла эти ошибки транслируются в образ, что приводит к критическому замедлению работы файлового движка.
Для устранения этой причины выполним следующие действия в центральной базе:
F7).При создании и первой инициализации узла генерируются временные файлы и кэш метаданных, которые могут вызывать зависания при каждом повторном старте тонкого или толстого клиента. Кроме того, внутренняя фрагментация файла базы данных после выгрузки образа также снижает скорость чтения.
Разберем процедуру очистки и пересоздания базы через выгрузку в чистую структуру:
%LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8 (папки с буквенно-цифровыми идентификаторами) либо временно удалим базу из списка запуска 1С и добавим ее заново..dt)..dt-файл. Загрузка в чистую таблицу заново выстраивает физическую структуру файла 1Cv8.1CD, устраняя системный мусор и фрагментацию.В файловом варианте работы регламентные задания запускаются непосредственно в пользовательском сеансе. При старте нового узла система инициирует ресурсоемкие фоновые процессы:
Если подчиненная база запускается быстро, но зависает на этапе первой выгрузки данных в центр, причиной является ошибочная регистрация изменений: подписки на события могут зарегистрировать для отправки все существующие объекты. В результате система тратит колоссальное время на выборку записей.
Проанализируем состав изменений с помощью типовой обработки «Регистрация изменений для обмена данными». Если зарегистрированы объекты, которые не должны передаваться в центральный узел, снимем их с регистрации перед первой синхронизацией.
Постоянный мониторинг файла базы данных со стороны антивирусного ПО при старте программы приводит к падению дисковой производительности в несколько раз. Обязательно добавим в список исключений антивируса:
1Cv8.1CD и каталог узла.%TEMP%).1cv8.exe и 1cv8c.exe.Перенос файловой информационной базы с медленного HDD на твердотельный накопитель (SSD/NVMe) ускоряет открытие форм и запуск системы в несколько раз.
Если штатное создание начального образа формирует нестабильную или зависающую базу, применим ручную инициализацию узла через полную копию центральной базы:
1Cv8.1CD центральной базы.
// Отключаем признак подчиненности узла
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
// Устанавливаем связь с центральным узлом
УзелЦентра = ПланыОбмена.ПоМагазину.НайтиПоКоду("ЦБ");
Если ЗначениеЗаполнено(УзелЦентра) Тогда
ПланыОбмена.УстановитьГлавныйУзел(УзелЦентра);
КонецЕсли;
Для точечной локализации проблемных участков кода при старте узла воспользуемся инструментом Замер производительности в Конфигураторе (меню Отладка → Замер производительности), что позволит точно выявить медленные модули инициализации и обработчики ожидания.