При масштабном обновлении отраслевых решений, таких как переход с 1С:CRM 2.0 на 3.0, технические специалисты часто сталкиваются с тем, что файл конфигурации (.cf) увеличивается в размере в два и более раз. Если типовая конфигурация весит около 600 Мб, то измененная рабочая база может «раздуться» до 1.2 Гб и выше. Это вызывает опасения за стабильность системы и корректность будущих обновлений. В данной статье мы разберем причины такого поведения платформы, проанализируем ситуацию с поддержкой нескольких поставщиков и определим оптимальный алгоритм действий для минимизации размера конфигурации.
Рассмотрим подробнее, почему файл конфигурации так резко прибавляет в весе. Проанализируем внутреннюю структуру хранения метаданных в 1С. Файл .cf — это фактически слепок таблиц конфигурации из базы данных. Основные причины роста объема следующие:
Config и ConfigSave накапливаются неиспользуемые блоки данных и старые версии объектов, которые не всегда вычищаются платформой автоматически.Разберем ситуацию, когда обновление делается через стандартный механизм Сравнить, объединить с конфигурацией из файла. Если конфигурация доработана, этот метод кажется наиболее безопасным, однако он имеет свои «подводные камни». Выясним причину появления странных ошибок в типовом коде, когда функции общих модулей оказываются ненайденными.
Такое происходит из-за того, что в CRM 3.0 многие программные интерфейсы были полностью переписаны. Если при объединении не были сопоставлены все объекты (например, переименованные общие модули или константы), то часть кода будет обращаться к старым именам, которых в новой редакции больше нет. Важно понимать: простое объединение не всегда корректно обновляет связи между объектами конфигурации поставщика и основной конфигурации.
Посмотрим на более надежный вариант, который рекомендуют опытные специалисты. Вместо того чтобы мучиться с «раздутой» базой, мы можем собрать чистую конфигурацию и загрузить ее полностью. Рассмотрим этот процесс по шагам:
.cf файл редакции 3.0.new_config.cf.Проанализируем ситуацию: теперь у нас есть файл, который содержит и новую типовую часть, и ваши изменения, но при этом лишен «мусора» от старых версий поставщика. По весу он должен быть значительно меньше 1.2 Гб.
Теперь выясним, насколько безопасно делать полную загрузку. Существует мнение, что «Загрузить конфигурацию из файла» — это опасная операция. На самом деле, если структура метаданных (особенно идентификаторы объектов) совпадает, это самый быстрый и чистый способ обновления.
Алгоритм действий в рабочей базе:
new_config.cf.Этот метод позволяет «схлопнуть» таблицы конфигурации и оставить только одну актуальную версию поставщика, что приведет к уменьшению размера .cf до разумных пределов (ориентировочно 700-800 Мб с учетом ваших доработок).
Если даже после полной загрузки размер файла кажется вам избыточным, можно применить «глубокую очистку» через выгрузку в файлы. Рассмотрим подробнее этот технический прием:
Платформа 1С позволяет выгружать всю структуру метаданных в набор XML-файлов. В процессе этой выгрузки и последующей загрузки в новую базу происходит полная пересборка всех внутренних индексов и структур данных. Выполняется это следующим образом:
// В конфигураторе используем пункты меню:
// 1. Конфигурация -> Выгрузить конфигурацию в файлы...
// 2. Создаем пустую папку и дожидаемся окончания процесса.
// 3. Создаем абсолютно новую пустую базу 1С.
// 4. В новой базе: Конфигурация -> Загрузить конфигурацию из файлов...
После такой процедуры «мусор» в таблицах Config исчезает полностью. Часто это позволяет сэкономить еще 100-200 Мб объема.
Разберем ситуацию, упомянутую в сообщении №6: реквизиты документов не сопоставляются с поставщиком. Это «историческое наследие» неправильных обновлений. Чтобы исправить это в рамках перехода на 3.0, воспользуйтесь окном сравнения-объединения. Если вы видите в дереве объектов две одинаковые ветки (одна от поставщика, другая основная), нажмите правую кнопку мыши и выберите «Установить соответствие».
Важный совет: если вы решите полностью переименовать или заменить старый реквизит новым (из CRM 3.0), делайте это через промежуточную обработку переноса данных, чтобы не потерять информацию в рабочей базе. Помните, что удаление реквизита в конфигураторе приведет к удалению колонки в таблице SQL при обновлении базы данных.
Подведем итоги нашего анализа. Раздувание файла до 1.2 Гб при переходе на 1С:CRM 3.0 — это признак накопления избыточных данных поддержки и фрагментации базы. Правильная стратегия выглядит так:
Используя предложенные методы, вы получите чистую, оптимизированную конфигурацию, которая будет весить немногим больше типовой, и избавитесь от странных ошибок при компиляции модулей.