При совместной разработке крупных конфигураций (например, УПП 1.3 или ERP) разработчики часто сталкиваются с существенным замедлением работы хранилища конфигурации. Операции захвата объектов, сравнения и помещения изменений могут занимать от нескольких минут до десятков минут. В попытках решить эту проблему часто возникает идея перевести хранилище с общего сетевого ресурса на веб-сервер (протоколы HTTP или TCP). Разберем подробнее, дает ли такой подход выигрыш в скорости, выясним причины медленной работы и рассмотрим проверенные способы оптимизации.
Перевод хранилища конфигурации на веб-сервер по протоколам http:// или tcp:// не увеличивает скорость работы. Более того, в большинстве случаев доступ через веб-сервер работает медленнее, чем прямое подключение к файловой системе через сетевую шару (SMB).
Выясним причину этого поведения. Процесс взаимодействия Конфигуратора с хранилищем состоит из большого количества мелких синхронных запросов. При работе по HTTP/TCP к накладным расходам файлового обмена добавляется сериализация данных и задержки веб-протокола. Поэтому если основной целью перехода на веб-сервер является исключительно ускорение помещений объектов, такой подход не принесет желаемого результата.
Проанализируем ключевые факторы, которые замедляют работу с хранилищем конфигурации:
1Cv8ddb.1CD ограничен 4 Гб. При превышении этого лимита хранилище разрушается и перестает открываться.Рассмотрим практические шаги, которые позволяют кардинально повысить скорость работы и обезопасить базу хранилища от повреждения.
Первым делом очистим локальный кэш хранилища на рабочей станции разработчика. Это устранит подвисания при сравнении и помещении объектов.
Выполнить очистку можно двумя способами:
1cv8.exe DESIGNER /F "C:\Bases\MyBase" /ConfigurationRepositoryClearCache
%LOCALAPPDATA%\1C\1Cv8\<ID_пользователя>\cfgrepo
comments можно оставить).Также настроим лимит локального кэша. В окне Конфигуратора перейдем в меню Конфигурация — Хранилище конфигурации — Настройка использования локальных данных хранилища и ограничим максимальный размер кэшируемых данных.
Разберем наиболее эффективный архитектурный ход для устранения сетевых задержек. Если перенести рабочие места разработчиков на терминальный сервер (RDP), находящийся в одной локальной сети с хранилищем (или на том же физическом хосте), сетевой пинг снизится до значений менее 1 мс. В этом случае операции, занимавшие 10 минут, начинают выполняться за несколько секунд.
Начиная с платформы 1С:Предприятие 8.3, механизм хранилища конфигурации получил существенное обновление формата хранения данных.
Важно учитывать: режим совместимости самого хранилища не зависит от режима совместимости разрабатываемой конфигурации. Чтобы отключить режим совместимости хранилища:
После этого формат хранилища трансформируется: основной файл 1Cv8ddb.1CD будет хранить только индексы и структуру метаданных, а сами версии объектов вынесутся в отдельный каталог data. Это полностью снимает ограничение в 4 Гб и предотвращает падение базы хранилища при активной разработке.
Поскольку хранилище активно генерирует дисковые операции ввода-вывода (IOPS), установка современных NVMe SSD-дисков на сервере хранилища и на локальных ПК разработчиков дает ощутимый прирост скорости при сравнении и объединении конфигураций.
Если работа с классическим хранилищем 1С остается медленной из-за большого объема метаданных конфигурации (как в УПП 1.3 или ERP), рассмотрим современные альтернативные сценарии:
gitsync для синхронизации изменений.