Почему раздувается файл конфигурации CF при переходе на 1С:CRM 3.0 и как это исправить

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

При масштабном обновлении отраслевых решений, таких как переход с 1С:CRM 2.0 на 3.0, технические специалисты часто сталкиваются с тем, что файл конфигурации (.cf) увеличивается в размере в два и более раз. Если типовая конфигурация весит около 600 Мб, то измененная рабочая база может «раздуться» до 1.2 Гб и выше. Это вызывает опасения за стабильность системы и корректность будущих обновлений. В данной статье мы разберем причины такого поведения платформы, проанализируем ситуацию с поддержкой нескольких поставщиков и определим оптимальный алгоритм действий для минимизации размера конфигурации.

Причины «раздувания» конфигурации при переходе на новую редакцию

Рассмотрим подробнее, почему файл конфигурации так резко прибавляет в весе. Проанализируем внутреннюю структуру хранения метаданных в 1С. Файл .cf — это фактически слепок таблиц конфигурации из базы данных. Основные причины роста объема следующие:

  1. Хранение нескольких конфигураций поставщика: Когда база находится на поддержке, внутри хранится не только ваша «основная конфигурация», но и «конфигурация поставщика». При переходе на новую редакцию, если процедура выполнена через «сравнение-объединение», платформа может сохранять старую конфигурацию поставщика версии 2.0 и добавлять новую версии 3.0. Это мгновенно удваивает объем данных, относящихся к поддержке.
  2. Архитектурные изменения CRM 3.0: Редакция 3.0 содержит значительно больше графического контента, справочной информации в формате HTML и интерактивных карт. Эти ресурсы весят гораздо больше, чем программный код.
  3. Фрагментация таблиц Config: При многочисленных операциях обновления в системных таблицах Config и ConfigSave накапливаются неиспользуемые блоки данных и старые версии объектов, которые не всегда вычищаются платформой автоматически.
  4. Объекты с пометкой «Удалить»: Разработчики часто оставляют старые объекты для обеспечения миграции данных, что также увеличивает итоговый объем файла.

Анализ методики обновления через сравнение и объединение

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

Такое происходит из-за того, что в CRM 3.0 многие программные интерфейсы были полностью переписаны. Если при объединении не были сопоставлены все объекты (например, переименованные общие модули или константы), то часть кода будет обращаться к старым именам, которых в новой редакции больше нет. Важно понимать: простое объединение не всегда корректно обновляет связи между объектами конфигурации поставщика и основной конфигурации.

Решение проблемы через подготовку «чистого» эталона

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

  1. Создадим новую пустую информационную базу той же версии, что и целевая CRM 3.0.
  2. Загрузим в нее типовой .cf файл редакции 3.0.
  3. Выполним сравнение и объединение этой чистой базы с вашей доработанной конфигурацией редакции 2.0 (или той промежуточной версией, где уже есть часть изменений).
  4. На этом этапе необходимо вручную сопоставить объекты, которые потеряли связь с поставщиком. Это критически важно для корректной работы механизмов обновления в будущем.
  5. После того как все доработки перенесены и ошибки компиляции (несуществующие функции) исправлены, выгружаем полученный результат в файл new_config.cf.

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

Техника полной загрузки конфигурации (LoadConfig)

Теперь выясним, насколько безопасно делать полную загрузку. Существует мнение, что «Загрузить конфигурацию из файла» — это опасная операция. На самом деле, если структура метаданных (особенно идентификаторы объектов) совпадает, это самый быстрый и чистый способ обновления.

Алгоритм действий в рабочей базе:

  1. Обязательно создаем резервную копию.
  2. Заходим в «Конфигурация — Поддержка — Настройка поддержки». Проверяем, сколько поставщиков указано в списке. Если их несколько и один из них явно относится к старой версии, это и есть причина лишнего веса.
  3. Используем команду «Конфигурация — Загрузить конфигурацию из файла», выбирая наш подготовленный new_config.cf.
  4. Платформа предупредит о значительных изменениях. Соглашаемся и выполняем обновление конфигурации базы данных (F7).

Этот метод позволяет «схлопнуть» таблицы конфигурации и оставить только одну актуальную версию поставщика, что приведет к уменьшению размера .cf до разумных пределов (ориентировочно 700-800 Мб с учетом ваших доработок).

Дополнительная очистка через выгрузку в XML

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

Платформа 1С позволяет выгружать всю структуру метаданных в набор XML-файлов. В процессе этой выгрузки и последующей загрузки в новую базу происходит полная пересборка всех внутренних индексов и структур данных. Выполняется это следующим образом:


// В конфигураторе используем пункты меню:
// 1. Конфигурация -> Выгрузить конфигурацию в файлы...
// 2. Создаем пустую папку и дожидаемся окончания процесса.
// 3. Создаем абсолютно новую пустую базу 1С.
// 4. В новой базе: Конфигурация -> Загрузить конфигурацию из файлов...

После такой процедуры «мусор» в таблицах Config исчезает полностью. Часто это позволяет сэкономить еще 100-200 Мб объема.

Как бороться с несопоставленными объектами

Разберем ситуацию, упомянутую в сообщении №6: реквизиты документов не сопоставляются с поставщиком. Это «историческое наследие» неправильных обновлений. Чтобы исправить это в рамках перехода на 3.0, воспользуйтесь окном сравнения-объединения. Если вы видите в дереве объектов две одинаковые ветки (одна от поставщика, другая основная), нажмите правую кнопку мыши и выберите «Установить соответствие».

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

Резюме и рекомендации

Подведем итоги нашего анализа. Раздувание файла до 1.2 Гб при переходе на 1С:CRM 3.0 — это признак накопления избыточных данных поддержки и фрагментации базы. Правильная стратегия выглядит так:

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

← На главную