Разработчики часто сталкиваются с ситуацией: хранилище конфигурации начинает тормозить. Захват объектов занимает минуты, помещение изменений растягивается на десятки минут, а обновление конфигурации превращается в испытание терпения.
Проблема не в вашем компьютере и не в версии платформы. Дело в накопившихся данных.
Как устроено хранение данных в версиях 8.3.3 и выше
В 2014 году команда 1С столкнулась с критической проблемой. Хранилища больших конфигураций (вроде ERP или УПП) упирались в лимит размера таблицы базы данных – 4 гигабайта. Файл 1Cv8ddb.1CD просто переставал расти, а работа становилась невозможной.
Решение нашли радикальное: перенесли объекты метаданных из таблиц базы данных в файловую систему. С версии 8.3.3 структура хранилища изменилась.
Теперь в папке хранилища появился каталог data. Именно там лежат файлы объектов конфигурации. Каждая версия каждого объекта сохраняется отдельным файлом. За год активной разработки их может накопиться тысячи.
Чем больше файлов – тем медленнее работа. Особенно заметно это при размещении хранилища на сетевом диске. Операционной системе приходится обращаться к файловой таблице тысячи раз, что съедает время.
Когда платформа предлагает оптимизацию
Платформа следит за двумя показателями:
- Количество неупакованных файлов превысило 5000
- Количество архивов (файлов в подкаталоге pack) превысило 50
При достижении любого из этих порогов после очередного помещения объектов в хранилище появляется диалог с предложением выполнить оптимизацию.
Многие разработчики игнорируют это окно, нажимая "Отмена". Это ошибка, которая обходится часами потерянного времени в будущем.
Что происходит при оптимизации хранилища 1С
Механизм работает в два этапа.
Первый этап – упаковка разрозненных файлов. Платформа берет несколько тысяч отдельных файлов из каталога data и создает из них один архив. Этот архив помещается в подкаталог pack. Исходные файлы удаляются.
Доступ к данным остается прежним. Платформа умеет читать версии как из отдельных файлов, так и из архивов. Для пользователя это невидимо.
Второй этап запускается при накоплении большого количества архивов. Когда их больше 50, платформа переупаковывает их в один консолидированный архив. Процесс напоминает дефрагментацию диска – множество мелких кусков собирается в единое целое.
Результат – резкое сокращение обращений к файловой системе. Вместо чтения тысячи файлов платформа открывает один архив и работает с ним.
Ручной запуск оптимизации
Автоматическое предложение появляется не всегда. Если хранилище создано на старой платформе, флажок "Предлагать оптимизацию после выполнения операций с хранилищем" может быть выключен.
Запустить процесс вручную можно через окно администрирования хранилища:
В конфигураторе откройте меню Конфигурация → Хранилище конфигурации → Администрирование. На вкладке Прочие находится раздел управления данными хранилища. Кнопка Оптимизировать запускает процесс.
Время выполнения зависит от объема накопленных данных. На хранилище размером 8 гигабайт с тысячами файлов процесс займет от 10 до 30 минут. Планируйте это на время, когда другие разработчики не работают с хранилищем.
Есть альтернативный способ через командную строку конфигуратора:
1cv8.exe DESIGNER /F"C:\Bases\MyBase"
/ConfigurationRepositoryF "tcp://server/repository"
/ConfigurationRepositoryN "Admin"
/ConfigurationRepositoryP "password"
/ConfigurationRepositoryOptimizeData
Этот подход удобен для автоматизации через планировщик задач.
Влияние оптимизации на производительность 1С
Реальные цифры из практики. Хранилище конфигурации ERP весом 8 ГБ содержало 7200 неупакованных файлов и 0 архивов. Операция помещения объекта в хранилище занимала 4-5 минут.
После оптимизации количество файлов сократилось до 150, появился один архив размером 7,8 ГБ. Помещение объекта стало занимать 40-50 секунд. Разница в 5-6 раз.
Захват объектов ускорился еще заметнее – с 2 минут до 15 секунд.
Но не ждите чудес во всех случаях. Если хранилище размещено на быстром локальном SSD, выигрыш будет меньше. Основной эффект проявляется при работе по сети, особенно через VPN или медленные каналы связи.
Важный момент: сама база данных 1Cv8ddb.1CD не уменьшается. Файл остается того же размера, что и до оптимизации. Экономия места на диске – не цель этой операции. Цель – ускорение доступа к данным.
Особенности работы с кэшем
В каталоге хранилища есть папка Cache. Туда платформа складывает копии версий конфигурации, которые запрашивались в последнее время. Это ускоряет повторное обращение к той же версии.
При резервном копировании хранилища каталог Cache можно не копировать. После восстановления он создастся заново автоматически. Это экономит время и место.
Очистка кэша тоже доступна через окно администрирования на вкладке "Прочие". Иногда помогает при странных ошибках доступа к версиям.
Режимы совместимости и их влияние
В настройках хранилища есть параметр "Режим совместимости". От него зависит структура хранения данных.
"Не использовать" – современный формат. Объекты хранятся в файлах, доступна оптимизация. Работать может только платформа 8.3.3 и выше.
"Версия 8.3.2" – старый формат. Объекты в таблицах базы данных. Оптимизация данных недоступна. Зато совместимость с платформами от 8.2.9 до 8.3.2.
Переключение режима – серьезное решение. После перевода на "Не использовать" откатиться назад не получится без пересоздания хранилища. Убедитесь, что все разработчики используют свежую платформу.
Преимущества нового формата очевидны: снимается ограничение на размер, появляется возможность оптимизации, улучшается производительность при больших объемах истории.
Альтернативные способы ускорения работы 1С
Оптимизация данных хранилища – не единственный путь. Есть и другие методы.
Перенос хранилища на SSD. Если у вас сейчас файлы лежат на обычном жестком диске, миграция на SSD даст прирост скорости в разы. Особенно заметно на операциях чтения множества мелких файлов.
Использование сервера хранилища вместо файлового доступа. Прямое обращение к папке по сети медленнее, чем работа через специализированный сервис crserver.exe. Сервер кэширует данные и оптимизирует передачу.
Размещение хранилища ближе к разработчикам. Если команда работает удаленно через VPN, имеет смысл поднять сервер хранилища в облаке с хорошим каналом. Латентность сети убивает производительность.
Очистка истории хранилища. В конфигураторе есть функция "Сократить историю хранилища". Она удаляет старые версии, оставляя только последние N версий. Радикальный, но эффективный способ. Применяйте с осторожностью – после сокращения откатиться к удаленным версиям будет невозможно.
Профилактика: как не доводить до критического состояния
Лучшее решение проблемы – не создавать её.
Включите автоматическое предложение оптимизации в настройках хранилища. Галочка "Предлагать оптимизацию после выполнения операций с хранилищем" должна быть установлена. Платформа сама напомнит, когда пора навести порядок.
Договоритесь с командой о регламенте. Раз в месяц назначайте ответственного, который проверяет состояние хранилища и при необходимости запускает оптимизацию в нерабочее время.
Следите за размером хранилища. Если файл 1Cv8ddb.1CD превышает 10-15 гигабайт, это повод задуматься о сокращении истории или переносе части проектов в отдельные хранилища.
Используйте версию платформы не ниже 8.3.10. В более поздних релизах добавлены улучшения работы с хранилищем: проверка целостности данных при помещении, поддержка истории большего размера (десятки тысяч версий), дополнительные оптимизации алгоритмов.
Мониторинг состояния хранилища
Как понять, что пора оптимизировать? Зайдите в каталог хранилища через проводник.
Откройте папку data. Посчитайте примерное количество файлов. Если их больше 3000 – пора задуматься. Больше 5000 – определенно нужна оптимизация.
Проверьте папку pack. Посчитайте архивы. Если их больше 30 – скоро потребуется переупаковка. Больше 50 – самое время запустить процесс.
Обратите внимание на размер файла 1Cv8ddb.1CD. Если он близок к 4 ГБ, а режим совместимости установлен в "Версия 8.3.2" – срочно переводите на новый формат. Иначе скоро наткнетесь на критическую ошибку.
Резервное копирование перед оптимизацией 1С
Оптимизация хранилища – безопасная операция. Платформа тестировала её на миллионах хранилищ. Но подстраховаться стоит.
Перед запуском скопируйте весь каталог хранилища в резервное место. Нужен файл 1Cv8ddb.1CD и папка data целиком. Папку Cache и временные файлы можно не копировать.
На время оптимизации отключите всех пользователей от хранилища. Операция требует монопольного доступа. Если кто-то попытается подключиться в процессе, получит ошибку или процесс прервется.
Убедитесь, что на диске достаточно свободного места. При создании архивов платформа временно использует дополнительное пространство. Держите запас минимум 50% от текущего размера папки data.
Заключение
Оптимизация хранилища конфигурации 1С – простая процедура с заметным эффектом. Она не требует остановки работы на долгое время и не несет рисков для данных.
Включите автоматическое напоминание об оптимизации. Реагируйте на предложения платформы. Раз в несколько месяцев запускайте процесс вручную даже без явных проблем.
Это сэкономит сотни часов времени разработчиков в течение года. А в условиях сжатых сроков проектов каждая минута на счету.