Почему долго открывается начальный образ РИБ по магазину в 1С:Розница 2.2 и как это исправить

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

При настройке распределенной информационной базы (РИБ) по магазинам в конфигурации 1С:Розница 2.2 администраторы и разработчики часто сталкиваются с неприятной ситуацией: созданный начальный образ периферийного узла запускается крайне долго — от 5 до 15 минут. При этом долго открываются формы справочников и документов, зависает стартовая обработка начальной настройки РИБ, а выгрузка данных при первом обмене требует неоправданно много времени даже на производительном оборудовании.

Разберем основные причины такого поведения платформы и детально рассмотрим проверенные способы восстановления быстродействия подчиненного узла.

Причина 1. Проблемы структуры базы после динамического обновления в центре

Если в центральной информационной базе до создания начального образа применялось так называемое «демоническое» (динамическое) обновление конфигурации, таблицы метаданных могут содержать скрытые несоответствия. При создании подчиненного узла эти ошибки транслируются в образ, что приводит к критическому замедлению работы файлового движка.

Для устранения этой причины выполним следующие действия в центральной базе:

  1. Откроем центральную базу в режиме Конфигуратор монопольно (завершив сеансы всех пользователей).
  2. Внесем любое незначительное изменение в конфигурацию (например, добавим пробел или комментарий в общий модуль).
  3. Выполним сохранение и полноценное обновление конфигурации базы данных (нажатием клавиши F7).
  4. Заново сформируем начальный образ подчиненного узла РИБ.

Причина 2. Поврежденный локальный кэш и особенности структуры файла 1Cv8.1CD

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

Разберем процедуру очистки и пересоздания базы через выгрузку в чистую структуру:

  1. Очистим пользовательский кэш 1С на клиентском компьютере: удалим содержимое каталогов %LOCALAPPDATA%\1C\1cv8 и %APPDATA%\1C\1cv8 (папки с буквенно-цифровыми идентификаторами) либо временно удалим базу из списка запуска 1С и добавим ее заново.
  2. Откроем созданный узел РИБ в Конфигураторе и выполним выгрузку в файл выгрузки: Администрирование → Выгрузить информационную базу... (получаем файл .dt).
  3. Создадим в стартере 1С абсолютно новую пустую информационную базу (без конфигурации).
  4. Запустим новую пустую базу в режиме Конфигуратора и выполним: Администрирование → Загрузить информационную базу..., указав ранее выгруженный .dt-файл. Загрузка в чистую таблицу заново выстраивает физическую структуру файла 1Cv8.1CD, устраняя системный мусор и фрагментацию.

Причина 3. Фоновые и регламентные задания в файловом режиме

В файловом варианте работы регламентные задания запускаются непосредственно в пользовательском сеансе. При старте нового узла система инициирует ресурсоемкие фоновые процессы:

  1. Полнотекстовый поиск данных (ППД): запускается фоновое переиндексирование всей базы, создающее 100% нагрузку на процессор и диск. Если поиск не является критически важным, перейдем в раздел Администрирование → Поддержка и обслуживание → Регламентные и фоновые задания и отключим задания «Слияние индексов ППД» и «Обновление индекса ППД» (или отключим ППД полностью).
  2. Обновление информативных остатков: частое выполнение этого задания для магазинов создает постоянные блокировки таблиц. Рекомендуется настроить его расписание на нерабочее время или увеличить интервал.
  3. Интернет-поддержка и сервисы: при старте база пытается проверить обновления, новости и контрагентов по сети. При отсутствии стабильного интернет-канала сеанс «зависает» на несколько минут в ожидании сетевого тайм-аута. Отключим автоматическую проверку обновлений и сервисы проверки контрагентов в настройках программы.

Причина 4. Избыточная авторегистрация изменений при первом запуске

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

Проанализируем состав изменений с помощью типовой обработки «Регистрация изменений для обмена данными». Если зарегистрированы объекты, которые не должны передаваться в центральный узел, снимем их с регистрации перед первой синхронизацией.

Причина 5. Блокировки со стороны антивируса и медленный диск

Постоянный мониторинг файла базы данных со стороны антивирусного ПО при старте программы приводит к падению дисковой производительности в несколько раз. Обязательно добавим в список исключений антивируса:

  1. Файл базы данных 1Cv8.1CD и каталог узла.
  2. Каталоги обмена сообщениями XML.
  3. Временные папки пользователя (%TEMP%).
  4. Исполняемые файлы платформы 1cv8.exe и 1cv8c.exe.

Перенос файловой информационной базы с медленного HDD на твердотельный накопитель (SSD/NVMe) ускоряет открытие форм и запуск системы в несколько раз.

Альтернативный вариант создания подчиненного узла без штатного начального образа

Если штатное создание начального образа формирует нестабильную или зависающую базу, применим ручную инициализацию узла через полную копию центральной базы:

  1. Создадим полную копию файла 1Cv8.1CD центральной базы.
  2. Запустим копию в режиме «1С:Предприятие» и с помощью внешней обработки программно отключим признак подчиненности:

// Отключаем признак подчиненности узла
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
  1. Удалим документы и данные, не относящиеся к данному магазину, и очистим избыточную регистрацию изменений.
  2. Восстановим связь узла с центром, указав ссылку на предопределенный или созданный узел центральной базы:

// Устанавливаем связь с центральным узлом
УзелЦентра = ПланыОбмена.ПоМагазину.НайтиПоКоду("ЦБ");
Если ЗначениеЗаполнено(УзелЦентра) Тогда
    ПланыОбмена.УстановитьГлавныйУзел(УзелЦентра);
КонецЕсли;
  1. Скорректируем номера принятых и отправленных сообщений в настройках синхронизации для обеспечения корректного первого обмена.

Для точечной локализации проблемных участков кода при старте узла воспользуемся инструментом Замер производительности в Конфигураторе (меню Отладка → Замер производительности), что позволит точно выявить медленные модули инициализации и обработчики ожидания.

← На главную