К статье
Практический материал

Разработка и Конфигурация · 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 и указать на ошибки — так же, как это делается в любой другой разработке.

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

Один разработчик, простая конфигурацияDumper не обязателен

Достаточно периодических выгрузок cf и резервных копий базы

Команда от двух разработчиковНужен

Без Git и файловой выгрузки правки будут конфликтовать и теряться

Требуется история изменений по объектамНужен

Diff текстовых файлов показывает изменения, cf-файлы — нет

Планируется CI/CD и автотестыОбязателен

Сборка конфигурации из исходников — основа конвейера

Как работает типичный dumper

В основе большинства dumper-утилит лежит штатный механизм платформы 1С — пакетный режим конфигуратора. Конфигуратор запускается из командной строки с параметром /DumpConfigToFiles, который выгружает конфигурацию указанной базы в папку с файлами. Обратная операция выполняется параметром /LoadConfigFromFiles.

Dumper-скрипты оборачивают этот механизм в удобный интерфейс: принимают путь к базе, строку подключения или параметры сервера, сами формируют команду, обрабатывают ошибки и пишут журнал. Многие реализации написаны на OneScript — это открытый интерпретатор языка, похожего на встроенный язык 1С, который работает вне платформы.

bash
"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-системами

1C:EDT

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

Dumper + конфигуратор + Git

Гибридный подход: разработка в привычном конфигураторе, версионирование через выгрузку в файлы. Требует дисциплины и настройки скриптов

Практически важный момент: формат выгрузки конфигуратора (XML-файлы) и формат проекта EDT — разные форматы. Переносить исходники между ними напрямую нельзя, поэтому выбор подхода лучше сделать до старта проекта и не смешивать оба в одном репозитории.

Как настроить выгрузку конфигурации в Git через dumper

Базовый сценарий выглядит так: у каждого разработчика есть локальная база, а выгрузка в файлы выполняется перед коммитом. Ниже — типовой порядок действий, который подходит для большинства dumper-скриптов и для ручного запуска конфигуратора.

Порядок настройки выгрузки в Git
  1. 1
    Установите платформу 1С нужной версии и, при необходимости, OneScript с выбранным dumper-пакетом
  2. 2
    Создайте пустой Git-репозиторий и добавьте в .gitignore служебные файлы базы и временные каталоги
  3. 3
    Выполните первичную выгрузку конфигурации в папку src внутри репозитория
  4. 4
    Сделайте первый коммит — это базовая точка, от которой пойдёт история
  5. 5
    Настройте скрипт или bat-файл, который одной командой выгружает конфигурацию из рабочей базы в src
  6. 6
    Перед каждым коммитом запускайте выгрузку и проверяйте diff: в нём должны быть только ваши изменения
  7. 7
    Для обратной проверки соберите конфигурацию из файлов в чистую пустую базу и убедитесь, что она загружается без ошибок

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

Типичные ошибки и ограничения

Типичные ошибки при работе с dumper
01
Выгрузка из рабочей базы без предварительной синхронизации — в коммит попадают чужие или случайные изменения, история превращается в мусор
02
Коммит служебных файлов — в репозиторий попадают временные файлы конфигуратора и логи, раздувая историю
03
Смешение форматов выгрузки — часть файлов в одном формате, часть в другом, сборка из исходников перестаёт работать
04
Редактирование XML-файлов метаданных вручную — конфигурация может перестать загружаться; править вручную безопасно только модули
05
Отсутствие проверки обратной сборки — ошибки загрузки обнаруживаются только на этапе развёртывания, когда исправлять дороже

Отдельно стоит помнить об ограничениях. Выгрузка в файлы не переносит данные информационной базы — только конфигурацию. Пользователи, роли с назначенными правами на конкретной базе, расширения и настройки хранилища в файлы не попадают. Для резервного копирования данных по-прежнему нужны выгрузки dt или средства СУБД.

Как проверить, что выгрузка и сборка работают корректно

Главный критерий корректности dumper-процесса — обратимость: конфигурация, собранная из файлов, должна совпадать с исходной. Проверяется это просто: выгрузите конфигурацию в файлы, соберите её в пустую базу, выгрузите повторно и сравните два дерева файлов. Различий быть не должно, кроме служебных меток времени.

Контрольные точки

Как проверить результат

Diff после повторной выгрузки без изменений
Норма

Пустой 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. Ключевые правила: один формат выгрузки, одна база-источник, проверка обратной сборки и никогда не загружать исходники в рабочую базу без копии.