Разработка и Конфигурация · 11 мин
Dumper 1С: что это за инструмент и как он используется
Dumper для 1С — инструмент выгрузки и загрузки конфигурации в файлы. Разбираем, что это, зачем нужен, как работает с Git и какие есть аналоги.
Если вы встретили в вакансии, инструкции или разговоре коллег слово «dumper» применительно к 1С, речь почти наверняка идёт об утилите для выгрузки конфигурации 1С в набор текстовых файлов и обратной сборки конфигурации из этих файлов. Такой инструмент нужен, чтобы хранить код конфигурации в системе контроля версий (обычно Git), сравнивать изменения между релизами и автоматизировать сборку в CI/CD-конвейере.
Сам по себе «dumper» — не официальный продукт фирмы «1С», а общее название класса утилит. Наиболее известные реализации: обработка и скрипты на базе OneScript, инструменты из экосистемы vanessa-runner и oscript-library, а также штатный механизм конфигуратора «Выгрузить конфигурацию в файлы». Все они решают одну задачу: превратить бинарный файл конфигурации (CF) или базу данных в дерево файлов, понятное Git, и собрать его обратно.
Что такое dumper в контексте 1С
Слово «dump» в программировании означает снимок состояния: дамп памяти, дамп базы данных. В экосистеме 1С dumper — это программа, которая делает «снимок» конфигурации: разбирает её на составляющие (модули, формы, макеты, метаданные) и сохраняет каждую часть отдельным файлом в заданную папку.
Конфигурация 1С в «родном» виде — это либо файл с расширением .cf, либо набор таблиц внутри файловой или клиент-серверной информационной базы. Ни тот ни другой формат нельзя нормально сравнивать и версионировать: Git умеет показывать различия только в текстовых файлах. Dumper решает эту проблему, переводя конфигурацию в текстовое представление.
Обратная операция тоже поддерживается: из дерева файлов dumper собирает работоспособную конфигурацию и загружает её в базу. Благодаря этому цикл «изменил код → закоммитил → собрал → развернул на тестовой базе» становится полностью автоматизируемым.
Зачем нужна выгрузка конфигурации в файлы
Главная причина — командная разработка. Когда над конфигурацией работают несколько программистов, хранить её только в базе или в cf-файлах неудобно и рискованно: изменения перезаписывают друг друга, а понять, кто и что поменял, практически невозможно. Выгрузка в файлы даёт каждому разработчику возможность работать в своей ветке Git.
Вторая причина — история изменений и код-ревью. В репозитории видно каждую правку: какие строки модуля изменились, кем и когда. Перед слиянием ветки коллега может посмотреть diff и указать на ошибки — так же, как это делается в любой другой разработке.
Третья причина — автоматизация. Скрипты сборки могут по коммиту автоматически собрать конфигурацию, обновить тестовую базу, запустить проверки и тесты. Без текстового представления конфигурации такой конвейер построить сложно.
Достаточно периодических выгрузок cf и резервных копий базы
Без Git и файловой выгрузки правки будут конфликтовать и теряться
Diff текстовых файлов показывает изменения, cf-файлы — нет
Сборка конфигурации из исходников — основа конвейера
Как работает типичный dumper
В основе большинства dumper-утилит лежит штатный механизм платформы 1С — пакетный режим конфигуратора. Конфигуратор запускается из командной строки с параметром /DumpConfigToFiles, который выгружает конфигурацию указанной базы в папку с файлами. Обратная операция выполняется параметром /LoadConfigFromFiles.
Dumper-скрипты оборачивают этот механизм в удобный интерфейс: принимают путь к базе, строку подключения или параметры сервера, сами формируют команду, обрабатывают ошибки и пишут журнал. Многие реализации написаны на OneScript — это открытый интерпретатор языка, похожего на встроенный язык 1С, который работает вне платформы.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"C:\Bases\DevBase" /N"Администратор" /DumpConfigToFiles "C:\Repo\src" -format HierarchicalРезультат выгрузки — дерево папок: отдельно общие модули, документы, справочники, отчёты, формы. Модули сохраняются как файлы с кодом на встроенном языке, метаданные — как XML. Именно эти файлы и кладутся в репозиторий.
Чем dumper отличается от выгрузки в dt и cf
Файл .dt — это выгрузка всей информационной базы вместе с данными, а .cf — конфигурация без данных, но в бинарном виде. Оба формата нечитаемы для Git. Dumper работает именно с текстовым представлением конфигурации, поэтому он дополняет, а не заменяет регламентные выгрузки dt для резервного копирования.
Чем dumper отличается от EDT и хранилища конфигурации
У задачи версионирования в 1С есть несколько штатных решений, и dumper конкурирует с ними не напрямую, а как часть более широкого подхода.
Способы версионирования конфигурации
Штатный механизм платформы. Подходит небольшим командам, но даёт историю только внутри 1С и не интегрируется с Git и внешними CI-системами
Среда разработки с нативной поддержкой Git. Хороша для новых проектов, но требует перевода разработки на формат EDT и имеет ограничения по части сценариев конфигуратора
Гибридный подход: разработка в привычном конфигураторе, версионирование через выгрузку в файлы. Требует дисциплины и настройки скриптов
Практически важный момент: формат выгрузки конфигуратора (XML-файлы) и формат проекта EDT — разные форматы. Переносить исходники между ними напрямую нельзя, поэтому выбор подхода лучше сделать до старта проекта и не смешивать оба в одном репозитории.
Как настроить выгрузку конфигурации в Git через dumper
Базовый сценарий выглядит так: у каждого разработчика есть локальная база, а выгрузка в файлы выполняется перед коммитом. Ниже — типовой порядок действий, который подходит для большинства dumper-скриптов и для ручного запуска конфигуратора.
- 1Установите платформу 1С нужной версии и, при необходимости, OneScript с выбранным dumper-пакетом
- 2Создайте пустой Git-репозиторий и добавьте в .gitignore служебные файлы базы и временные каталоги
- 3Выполните первичную выгрузку конфигурации в папку src внутри репозитория
- 4Сделайте первый коммит — это базовая точка, от которой пойдёт история
- 5Настройте скрипт или bat-файл, который одной командой выгружает конфигурацию из рабочей базы в src
- 6Перед каждым коммитом запускайте выгрузку и проверяйте diff: в нём должны быть только ваши изменения
- 7Для обратной проверки соберите конфигурацию из файлов в чистую пустую базу и убедитесь, что она загружается без ошибок
Ключевое правило: выгружать нужно всегда из одной и той же базы-источника, иначе в diff попадут чужие или устаревшие изменения. В командах обычно заводят отдельную «чистую» базу, в которую сначала загружают актуальную конфигурацию из репозитория, а уже из неё делают выгрузку.
Типичные ошибки и ограничения
Отдельно стоит помнить об ограничениях. Выгрузка в файлы не переносит данные информационной базы — только конфигурацию. Пользователи, роли с назначенными правами на конкретной базе, расширения и настройки хранилища в файлы не попадают. Для резервного копирования данных по-прежнему нужны выгрузки dt или средства СУБД.
Как проверить, что выгрузка и сборка работают корректно
Главный критерий корректности dumper-процесса — обратимость: конфигурация, собранная из файлов, должна совпадать с исходной. Проверяется это просто: выгрузите конфигурацию в файлы, соберите её в пустую базу, выгрузите повторно и сравните два дерева файлов. Различий быть не должно, кроме служебных меток времени.
Как проверить результат
Пустой diff или только служебные поля
Меняются модули и метаданные — выгрузка нестабильна или база-источник меняется
Загрузка завершается без ошибок, база обновляется
Ошибки загрузки, ругань на структуру файлов
База открывается, типовые операции работают
Ошибки при обновлении или запуске — откатить из копии
Только файлы конфигурации и проектные скрипты
Временные файлы, логи, cf и dt в истории коммитов
На больших конфигурациях полная выгрузка может занимать заметное время. Удобно повесить выгрузку на pre-commit-хук или отдельную задачу в скрипте сборки, чтобы разработчик не забывал запускать её вручную — забытая выгрузка даёт diff с чужими изменениями при следующем коммите.
FAQ
Это то же самое, что «Выгрузить конфигурацию в файлы» в конфигураторе?
По сути да: большинство dumper-утилит внутри вызывают именно этот штатный механизм платформы. Отличие dumper-скриптов в автоматизации — они принимают параметры подключения, формируют команду, обрабатывают ошибки и встраиваются в скрипты сборки.
Можно ли с помощью dumper перенести данные между базами?
Нет. Dumper работает только с конфигурацией: модулями, формами, метаданными. Данные (документы, справочники, регистры) переносятся выгрузкой dt, средствами СУБД или обработками обмена данными.
Какой формат выгрузки выбрать — Hierarchical или Plain?
Оба рабочие, разница в структуре папок. Важно не то, какой формат выбран, а то, что он выбран один раз и не меняется: смена формата переписывает весь репозиторий. Для новых проектов чаще используют иерархический формат.
Заменяет ли dumper хранилище конфигурации?
Функционально — да, при дисциплинированном использовании Git: история и совместная работа обеспечиваются репозиторием. Но хранилище проще в освоении и не требует скриптов. Для команды из одного-двух разработчиков без CI хранилище может быть достаточным.
Что нужно установить, чтобы начать работать с dumper?
Минимум — платформа 1С (конфигуратор умеет выгрузку сам) и Git. Для удобства обычно добавляют OneScript и готовые пакеты автоматизации из его экосистемы, но стартовать можно и с простого bat-файла с командой конфигуратора.
Опасно ли хранить исходники конфигурации в Git?
Сам репозиторий безопасен, но доступ к нему нужно ограничивать так же, как к любому исходному коду: в модулях могут встречаться пароли, ключи API и строки подключения. Перед первым коммитом стоит проверить код на вшитые учётные данные и вынести их в защищённые хранилища настроек.
Что важно запомнить
Dumper 1С — утилита выгрузки конфигурации в текстовые файлы и обратной сборки, построенная на штатном механизме конфигуратора. Она нужна для Git, командной разработки и CI/CD. Ключевые правила: один формат выгрузки, одна база-источник, проверка обратной сборки и никогда не загружать исходники в рабочую базу без копии.