При активной разработке в среде 1С программисты часто сталкиваются с проблемой разрастания архивов. Хранение полных файлов конфигурации (.cf) для десятков клиентов, особенно если это тяжелые решения вроде ERP, УПП или Комплексная автоматизация, требует огромных дисковых пространств. Возникает закономерный вопрос: можно ли «вычистить» конфигурацию так, чтобы в ней остались только авторские доработки, а все типовые объекты, находящиеся на поддержке, были удалены или минимизированы?
В этой статье мы разберем несколько стратегий решения этой задачи: от использования штатных механизмов платформы до продвинутой автоматизации через командную строку.
Самый современный и рекомендуемый фирмой «1С» способ — это вынос всех доработок в расширения. Вместо того чтобы менять основную конфигурацию, мы создаем файл расширения (.cfe), который содержит только измененные или добавленные объекты.
Рассмотрим преимущества этого метода:
.cf.Если ваши доработки уже сделаны в основной конфигурации, их можно перенести в расширение вручную. Однако для больших проектов это трудоемкий процесс. Тем не менее, для новых задач использование cfe является стандартом де-факто.
Проанализируем альтернативный вариант, который часто незаслуженно забывают. Файл обновления конфигурации (.cfu) по своей сути является тем самым «диффом» (разницей), который ищет автор вопроса. Он содержит только те объекты и модули, которые отличаются от предыдущей версии.
Как создать такой «архив изменений»:
.cfu, размер которого будет крайне мал, так как он не содержит неизмененных данных поставщика.Чтобы восстановить полную конфигурацию из такого файла, нам достаточно иметь под рукой типовой .cf той же версии и применить к нему наше обновление.
Выясним, как можно автоматизировать процесс создания «выхолощенной» конфигурации, используя командную строку. Платформа 1С поддерживает мощный механизм выгрузки конфигурации в файлы XML и текстовые модули.
Разберем алгоритм, предложенный опытными разработчиками: мы можем выгрузить изменения, сравнив рабочую конфигурацию с конфигурацией поставщика. Для этого используется параметр /DumpConfigToFiles с ключом -getChanges.
Пример командной строки для получения только измененных файлов:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "ПутьКБазе" /N "Логин" /P "Пароль" /DumpConfigToFiles "C:\Distr\Changes" -getChanges "C:\Distr\VendorConfig.cf"
В результате в каталоге C:\Distr\Changes окажутся только те модули, формы и описания метаданных, которые были изменены. Это позволяет хранить доработки в текстовом виде, что идеально подходит для систем контроля версий.
Проанализируем наиболее профессиональный подход к хранению доработок — использование 1C:EDT совместно с Git. В этой парадигме мы вообще отказываемся от хранения бинарных файлов .cf в качестве архивов разработки.
Как это работает:
Это полностью снимает вопрос нехватки места на диске. Весь репозиторий со всей историей изменений за несколько лет может весить меньше, чем один файл .cf современной ERP-системы.
Если же необходимо получить именно файл .cf, но без лишнего веса, можно воспользоваться «хитрым» методом программной очистки. Для этого создается скрипт (на языке 1С или внешнем языке, например, Python), который выполняет следующие действия:
Важный момент: при удалении объектов конфигурации нужно следить за ссылочной целостностью. Профессионалы рекомендуют не удалять объекты полностью, а очищать их содержимое (модули, макеты), оставляя только структуру (реквизиты), чтобы ссылки в оставшемся коде не стали «битыми».
Подводя итог, можно сказать, что хранение полных .cf файлов — это экстенсивный путь, ведущий к дефициту места и путанице. Для эффективной работы рекомендуем:
.cfe)./DumpConfigToFiles или создавать файлы обновления .cfu.Выбор конкретного метода зависит от ваших задач, но автоматизация через пакетный режим конфигуратора позволяет решить проблему «замусоренных» архивов раз и навсегда.