Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Скрипты работы с конфигурацией 1С

Описание

Набор скриптов для автоматической работы с конфигурацией 1С:Предприятие:

  • Частичная загрузка - загрузка измененных файлов из git в информационную базу
  • Выгрузка конфигурации - выгрузка конфигурации из информационной базы в файлы (полная, инкрементальная, частичная)

Возможности загрузки

  • ✅ Получение всех измененных файлов от указанного коммита до текущего состояния (включая незафиксированные)
  • ✅ Автоматическая фильтрация файлов конфигурации (XML)
  • Поддержка BSL файлов - автоматическое добавление XML объектов при изменении модулей
  • ✅ Создание файла списка для частичной загрузки
  • ✅ Выполнение команды /LoadConfigFromFiles с параметром -partial
  • Автоматическое обновление конфигурации БД - опциональное обновление после загрузки
  • Запуск в режиме 1С:Предприятие - автоматический запуск после загрузки
  • Поддержка навигационных ссылок - открытие конкретного объекта после старта
  • Запуск внешних обработок - возможность запуска обработки после старта
  • ✅ Поддержка обоих форматов выгрузки (Hierarchical/Plain)
  • ✅ Подробное логирование процесса
  • ✅ Режим отладки

Возможности выгрузки

  • Полная выгрузка - выгрузка всей конфигурации в файлы
  • Инкрементальная выгрузка - выгрузка только измененных объектов
  • Частичная выгрузка - выгрузка конкретных объектов из списка
  • ✅ Поддержка обоих форматов (Hierarchical/Plain)
  • ✅ Сохранение списка изменений
  • ✅ Сравнение с другой выгрузкой
  • ✅ Поддержка расширений конфигурации
  • ✅ Режим отладки

Структура проекта

partial-load-config/
├── loadcfg.cmd              # Команда быстрой загрузки конфигурации
├── dumpcfg.cmd              # Команда быстрой выгрузки конфигурации
├── scripts/                 # PowerShell скрипты
│   ├── partial-load-config.ps1
│   ├── dump-config.ps1
│   ├── dump-full-config.ps1
│   ├── dump-changes-config.ps1
│   ├── dump-partial-config.ps1
│   ├── update-dump-info.ps1
│   └── process-config-files.ps1
├── .env                     # Настройки проекта (не в git)
├── .env.example             # Пример настроек
└── README.md

Быстрый старт

Простые команды (рекомендуется)

После настройки .env файла используйте короткие команды:

REM Загрузка конфигурации
loadcfg                      :: загрузка незафиксированных изменений
loadcfg HEAD                 :: загрузка всех изменений с последнего коммита
loadcfg HEAD~3               :: загрузка изменений за последние 3 коммита
loadcfg -UpdateDB            :: загрузка с обновлением БД
loadcfg HEAD -DebugMode      :: загрузка с отладкой

REM Выгрузка конфигурации
dumpcfg                      :: выгрузка по умолчанию (Changes из .env)
dumpcfg Full                 :: полная выгрузка
dumpcfg Changes              :: инкрементальная выгрузка
dumpcfg Partial              :: частичная выгрузка (список из .env)
dumpcfg -mode Partial -objects "Справочник.Номенклатура,Документ.Заказ"
dumpcfg -DebugMode           :: выгрузка с отладкой

PowerShell скрипты (для продвинутых сценариев)

Для полного контроля используйте скрипты напрямую:

# Загрузка
.\scripts\partial-load-config.ps1 -CommitId "HEAD" -UpdateDB -RunEnterprise

# Выгрузка
.\scripts\dump-config.ps1 -Mode Full -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"

Требования

  • Git установлен и доступен в PATH
  • Платформа 1С:Предприятие 8.3
  • Git репозиторий с историей изменений конфигурации

Конфигурация через .env файл

Для удобства работы с параметрами можно создать файл .env в корне проекта. Скопируйте .env.example и настройте под свою среду:

cp .env.example .env

Приоритет параметров

Параметры применяются в следующем порядке приоритета:

  1. Параметры командной строки (самый высокий приоритет)
  2. Переменные из .env файла
  3. Значения по умолчанию (самый низкий приоритет)

Это позволяет настроить базовые параметры в .env, но при необходимости переопределить их через командную строку.

Пример .env файла

# =============================================================================
# ОСНОВНЫЕ ПАРАМЕТРЫ
# =============================================================================

# Путь к платформе 1С:Предприятие (1cv8.exe)
# Если не указан, будет искаться в PATH
V8_PATH=C:\\Program Files\\1cv8\\8.3.24.1467\\bin\\1cv8.exe

# Каталог с выгруженной конфигурацией (относительно корня проекта)
CONFIG_DIR=src

# Формат выгрузки конфигурации
# Возможные значения: Hierarchical, Plain
CONFIG_FORMAT=Hierarchical

# =============================================================================
# ПАРАМЕТРЫ ПОДКЛЮЧЕНИЯ К ИНФОРМАЦИОННОЙ БАЗЕ
# =============================================================================

# Путь к файловой информационной базе
# Используйте либо INFOBASE_PATH, либо INFOBASE_NAME
INFOBASE_PATH=C:\\edt\\IB\\MyBase

# Имя информационной базы из списка (альтернатива INFOBASE_PATH)
# INFOBASE_NAME=MyBase

# =============================================================================
# УЧЕТНЫЕ ДАННЫЕ 1С
# =============================================================================

# Имя пользователя 1С
# Рекомендуется использовать учетную запись для разработки
USERNAME_1C=Администратор

# Пароль пользователя 1С
# ВНИМАНИЕ: Не рекомендуется хранить пароль в файле!
# Лучше передавать через параметр командной строки
# PASSWORD_1C=

# =============================================================================
# ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ
# =============================================================================

# Файл для вывода служебных сообщений (если не указан, создается временный)
# OUT_FILE=C:\\Logs\\1c_load.txt

# Режим отладки (true/false)
# При включении выводится дополнительная информация и сохраняются временные файлы
DEBUG_MODE=false

# Автоматическое обновление конфигурации БД после загрузки (true/false)
UPDATE_DB=false

# Запуск 1С:Предприятие после загрузки (true/false)
RUN_ENTERPRISE=false

# Навигационная ссылка для открытия объекта (требует RUN_ENTERPRISE=true)
# Примеры:
#   - e1cib/list/Справочник.Номенклатура
#   - e1cib/list/Документ.ЗаказПоставщику
# NAVIGATION_LINK=

# Путь к внешней обработке для запуска (требует RUN_ENTERPRISE=true)
# EXTERNAL_DATA_PROCESSOR=C:\\Tools\\MyProcessor.epf

# =============================================================================
# ПАРАМЕТРЫ ВЫГРУЗКИ КОНФИГУРАЦИИ
# =============================================================================

# Режим выгрузки по умолчанию: Full, Changes, Partial
# Full - полная выгрузка всей конфигурации
# Changes - только измененные объекты (требует предыдущую выгрузку)
# Partial - конкретные объекты из списка
DUMP_MODE=Changes

# Файл со списком объектов для частичной выгрузки (режим Partial)
# Формат: по одному объекту на строку
# Примеры:
#   Справочник.Справочник1
#   Документ.Документ1
#   Configuration.Help
DUMP_OBJECTS_LIST=dump_objects.txt

# Файл для сохранения списка изменений (режим Changes)
# В этот файл будет записан список измененных объектов
DUMP_CHANGES_FILE=config_changes.txt

# Файл ConfigDumpInfo.xml для сравнения (опционально, режим Changes)
# Позволяет сравнить текущую конфигурацию с другой выгрузкой
# DUMP_COMPARE_WITH=old_dump/ConfigDumpInfo.xml

Безопасность

⚠️ Не храните пароли в .env файле! Файл .env добавлен в .gitignore, но для дополнительной безопасности рекомендуется передавать пароль через параметр командной строки:

REM Короткая команда
loadcfg HEAD -Password "your_password"
# PowerShell скрипт напрямую
.\scripts\partial-load-config.ps1 -CommitId "HEAD" -Password "your_password"

Использование с .env

После настройки .env можно запускать команды без указания базовых параметров:

REM Короткие команды (рекомендуется)
loadcfg HEAD
dumpcfg Changes
# PowerShell скрипты напрямую
.\scripts\partial-load-config.ps1 -CommitId "HEAD"
.\scripts\dump-changes-config.ps1

Использование

Короткие команды (рекомендуется)

После настройки .env используйте простые команды:

Загрузка конфигурации:

REM Базовые примеры
loadcfg                      :: незафиксированные изменения
loadcfg HEAD                 :: изменения с последнего коммита
loadcfg HEAD~3               :: изменения за последние 3 коммита

REM С дополнительными параметрами
loadcfg -UpdateDB            :: с обновлением БД
loadcfg HEAD -UpdateDB -RunEnterprise :: загрузка, обновление и запуск
loadcfg -DebugMode           :: с отладкой

Выгрузка конфигурации:

REM Базовые примеры
dumpcfg                      :: режим из .env (обычно Changes)
dumpcfg Full                 :: полная выгрузка
dumpcfg Changes              :: инкрементальная выгрузка
dumpcfg Partial              :: частичная выгрузка (список из .env)

REM С параметрами
dumpcfg -mode Full           :: явное указание режима
dumpcfg -mode Partial -objects "Справочник.Номенклатура,Документ.Заказ"
dumpcfg -DebugMode           :: с отладкой

PowerShell скрипты (продвинутое использование)

Для сложных сценариев используйте скрипты напрямую:

Загрузка:

# Базовые примеры
.\scripts\partial-load-config.ps1

# С параметрами
.\scripts\partial-load-config.ps1 -CommitId "HEAD" `
    -InfoBasePath "C:\Bases\MyBase" `
    -UpdateDB `
    -RunEnterprise `
    -NavigationLink "e1cib/data/Catalog.Items"

Выгрузка:

# Полная выгрузка
.\scripts\dump-config.ps1 -Mode Full -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"

# Или используйте специализированные обертки
.\scripts\dump-full-config.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"
.\scripts\dump-changes-config.ps1 -ChangesFile "changes.txt"
.\scripts\dump-partial-config.ps1 -ObjectNames "Справочник.Номенклатура"

Параметры

Основные

Параметр Обязательный Описание
CommitId Нет Идентификатор коммита git - точка отсчета для получения изменений (хеш, ветка, HEAD~N и т.д.). Если не указан, загружаются только незафиксированные изменения (staged + unstaged + untracked)

Параметры подключения к ИБ (один из двух обязателен)

Параметр Описание
InfoBasePath / /ib Путь к каталогу файловой базы данных. Указывается каталог, содержащий файл 1Cv8.1CD.
Пример: C:\Bases\MyFileBase
InfoBaseName / /ibname Имя клиент-серверной базы из списка баз 1С.
Пример: MyServerBase

Дополнительные параметры

Параметр Значение по умолчанию Описание
UserName / /n - Имя пользователя 1С
Password / /p - Пароль пользователя
ConfigDir / /configdir config Каталог с выгруженной конфигурацией
Format / /format Hierarchical Формат: Hierarchical или Plain
V8Path / /v8 1cv8.exe Путь к исполняемому файлу платформы (если не указан, ищется в PATH)
OutFile / /out temp файл Файл для вывода служебных сообщений
DebugMode / /debug - Включить режим отладки
UpdateDB - Автоматически обновить конфигурацию БД после загрузки
RunEnterprise - Запустить 1С:Предприятие после загрузки
NavigationLink - Навигационная ссылка для открытия объекта (требует -RunEnterprise)
ExternalDataProcessor - Путь к внешней обработке для запуска (требует -RunEnterprise)

Как это работает

  1. Получение списка файлов

    Скрипт получает все измененные файлы от указанного коммита до текущего состояния:

    # Изменения от коммита до HEAD
    git diff --name-only <commit-id>..HEAD
    
    # Staged изменения (git add)
    git diff --cached --name-only
    
    # Unstaged изменения (измененные файлы)
    git diff --name-only
    
    # Untracked файлы (новые файлы, не добавленные в git)
    git ls-files --others --exclude-standard

    Все списки объединяются, дубликаты удаляются.

  2. Фильтрация файлов

    • Проверяется, что файл находится в каталоге конфигурации
    • Для XML файлов - добавляются напрямую
    • Для BSL файлов - автоматически добавляется соответствующий XML объекта и все связанные файлы (модули, формы и т.д.)
    • Проверяется существование файла
  3. Создание файла списка

    • Файлы записываются построчно
    • Пути указываются относительно каталога конфигурации
  4. Выполнение загрузки

    1cv8.exe DESIGNER /F "path\to\base" /LoadConfigFromFiles "config" 
             -listFile "load_list.txt" -Format Hierarchical -partial 
             -updateConfigDumpInfo /DisableStartupDialogs

Примеры использования

Типичные сценарии разработки

Сценарий 1: Быстрая загрузка текущих изменений

REM Самый частый случай - загрузить то, что меняли прямо сейчас
loadcfg

Сценарий 2: Загрузка с последнего коммита и запуск

REM Загрузить изменения из последнего коммита, обновить БД и запустить
loadcfg HEAD -UpdateDB -RunEnterprise

Сценарий 3: Выгрузка изменений после работы в конфигураторе

REM Выгрузить только то, что изменилось
dumpcfg Changes

REM Посмотреть что изменилось
type config_changes.txt

REM Зафиксировать в git
git add .
git commit -m "Добавлен новый отчет"

Сценарий 4: Выгрузка конкретных объектов для анализа

REM Быстрая выгрузка одного-двух объектов
dumpcfg -mode Partial -objects "Справочник.Номенклатура,Отчет.ОстаткиТоваров"

Сценарий 5: Полный цикл разработки

REM 1. Выгружаем изменения из продуктивной базы
dumpcfg Changes
git add . && git commit -m "Обновление конфигурации"

REM 2. В тестовой базе загружаем изменения
loadcfg HEAD -UpdateDB -RunEnterprise

Продвинутые сценарии (PowerShell)

Загрузка изменений за период:

# Загрузить все изменения за последние 5 коммитов
.\scripts\partial-load-config.ps1 -CommitId "HEAD~5" -DebugMode

Комплексный сценарий с запуском:

# Загрузка, обновление БД и открытие конкретной формы
.\scripts\partial-load-config.ps1 -CommitId "HEAD~3" `
    -UpdateDB `
    -RunEnterprise `
    -NavigationLink "e1cib/data/Document.SalesOrder"

Выгрузка с сохранением списка изменений:

.\scripts\dump-changes-config.ps1 -ChangesFile "changes.txt" -DebugMode

Коды возврата

Код Описание
0 Успешное выполнение
1 Ошибка (неверные параметры, git ошибка, ошибка загрузки)

Отладка

При возникновении проблем используйте параметр -DebugMode:

REM Короткая команда
loadcfg HEAD -DebugMode
dumpcfg -DebugMode
# PowerShell скрипт напрямую
.\scripts\partial-load-config.ps1 -CommitId "HEAD" -InfoBasePath "C:\Bases\Test" -DebugMode

Это выведет:

  • Параметры запуска
  • Список найденных файлов
  • Содержимое файла списка загрузки
  • Полную командную строку 1cv8.exe
  • Путь к временным файлам (не удаляются)

Как работает поддержка BSL

Когда скрипт обнаруживает изменение в BSL файле (например, src/Catalogs/Справочник1/Ext/ObjectModule.bsl), он автоматически:

  1. Определяет тип объекта (Catalogs) и его имя (Справочник1)
  2. Добавляет в список загрузки XML объекта (Catalogs/Справочник1.xml)
  3. Добавляет сам BSL файл
  4. Рекурсивно добавляет все файлы из подкаталога Ext (включая формы, предопределенные данные и т.д.)

Это гарантирует корректную загрузку изменений в модулях объектов.

Логика работы с коммитами

Точка отсчета

Указанный параметр CommitId является точкой отсчета для получения изменений:

CommitId ────────> HEAD ────────> Current State
   ▲                 ▲                  ▲
   │                 │                  │
   └─────────────────┴──────────────────┘
         Все эти изменения загружаются

Примеры:

  • HEAD~5 - загрузит все изменения за последние 5 коммитов + незафиксированные
  • abc123 - загрузит все изменения от коммита abc123 до текущего состояния
  • feature/branch - загрузит все изменения от указанной ветки до текущего HEAD

Что включается в загрузку

  1. Зафиксированные изменения: все коммиты от указанного до HEAD
  2. Staged изменения: файлы после git add
  3. Unstaged изменения: измененные файлы в рабочем каталоге

Важно

⚠️ Загрузка всегда происходит из текущего состояния файлов, не из коммита! ✅ Указанный коммит определяет какие объекты загружать, но не откуда их брать.

Ограничения

  1. Работает только с файлами формата XML/BSL (не с .cf, .cfu)
  2. Требует предварительную выгрузку конфигурации в файлы
  3. Не поддерживает расширения конфигурации
  4. Загружает измененные файлы из текущего состояния (не переключается на указанный коммит)

Расширение функциональности

Загрузка изменений из диапазона коммитов

Можно модифицировать скрипт для загрузки всех изменений между двумя коммитами:

git diff --name-only <commit1>..<commit2>

Поддержка расширений

Добавить параметр -Extension:

$arguments += "-Extension", "`"MyExtension`""

Автоматическое обновление БД

Реализовано! Используйте параметр -UpdateDB:

REM Короткая команда
loadcfg HEAD -UpdateDB
# PowerShell скрипт напрямую (с явными параметрами)
.\scripts\partial-load-config.ps1 -CommitId "HEAD" `
    -InfoBasePath "C:\Bases\MyBase" `
    -UpdateDB

Запуск в режиме 1С:Предприятие

Реализовано! Используйте параметр -RunEnterprise:

REM Простой запуск
loadcfg HEAD -RunEnterprise

REM С открытием конкретного объекта
loadcfg HEAD -RunEnterprise -NavigationLink "e1cib/data/Catalog.Items"

REM С запуском внешней обработки
loadcfg HEAD -RunEnterprise -ExternalDataProcessor "C:\Tools\MyProcessor.epf"
# PowerShell скрипт напрямую (с явными параметрами)
.\scripts\partial-load-config.ps1 -CommitId "HEAD" `
    -InfoBasePath "C:\Bases\MyBase" `
    -RunEnterprise `
    -NavigationLink "e1cib/data/Catalog.Items"

Комплексный сценарий

Загрузка, обновление БД и запуск с открытием объекта:

REM Короткая команда (параметры из .env)
loadcfg HEAD -UpdateDB -RunEnterprise -NavigationLink "e1cib/data/Document.SalesOrder"
# PowerShell скрипт напрямую (с явными параметрами)
.\scripts\partial-load-config.ps1 -CommitId "HEAD" `
    -InfoBasePath "C:\edt\IB\ERP_2.5.12.73" `
    -ConfigDir "src" `
    -UserName "Администратор" `
    -UpdateDB `
    -RunEnterprise `
    -NavigationLink "e1cib/data/Document.SalesOrder"

Устранение неполадок

Скрипт открывается в Блокноте вместо выполнения

Если при запуске .ps1 файла он открывается в текстовом редакторе, это означает, что в вашей системе для этого типа файлов не настроено действие "Выполнить".

Для принудительного выполнения используйте powershell.exe:

# Пример для полной выгрузки
powershell.exe -ExecutionPolicy Bypass -File .\dump-full-config.ps1

# Пример для частичной загрузки
powershell.exe -ExecutionPolicy Bypass -File .\partial-load-config.ps1 -CommitId "HEAD"

Ошибка: "git не найден"

Установите git и добавьте его в PATH

Ошибка: "Каталог конфигурации не найден"

Проверьте параметр -ConfigDir и наличие каталога

Ошибка: "No configuration files found for loading"

  • Проверьте идентификатор коммита
  • Убедитесь, что в коммите есть изменения XML или BSL файлов
  • Проверьте путь к каталогу конфигурации (параметр -ConfigDir)

Ошибка: "The system cannot find the file specified" при запуске 1cv8.exe

  • Укажите полный путь к платформе через параметр -V8Path
  • Пример: -V8Path "C:\Program Files\1cv8\8.3.27.1859\bin\1cv8.exe"

Код возврата 1 от 1cv8.exe

Проверьте файл лога (-OutFile или временный файл)

См. также

Выгрузка конфигурации в файлы

Описание

Скрипты для выгрузки конфигурации 1С:Предприятие из информационной базы в файлы в трех режимах.

Режимы выгрузки

1. Полная выгрузка (Full)

Выгружает всю конфигурацию целиком.

REM Короткая команда
dumpcfg Full
# PowerShell скрипты напрямую (с явными параметрами)
.\scripts\dump-full-config.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"
.\scripts\dump-config.ps1 -Mode Full -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"

Использование:

  • Первичная выгрузка конфигурации
  • Создание базовой копии для версионирования
  • Экспорт для анализа

2. Инкрементальная выгрузка (Changes)

Выгружает только измененные объекты относительно предыдущей выгрузки.

REM Короткая команда
dumpcfg Changes

REM С сохранением списка изменений (если не настроено в .env)
dumpcfg Changes -ChangesFile "changes.txt"
# PowerShell скрипты напрямую (с явными параметрами)
.\scripts\dump-changes-config.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\MyBase"

# С сохранением списка изменений
.\scripts\dump-changes-config.ps1 -ConfigDir "src" `
    -InfoBasePath "C:\Bases\MyBase" `
    -ChangesFile "changes.txt"

# Сравнение с другой выгрузкой
.\scripts\dump-changes-config.ps1 -ConfigDir "src" `
    -InfoBasePath "C:\Bases\MyBase" `
    -CompareWith "old_dump\ConfigDumpInfo.xml" `
    -Force

Использование:

  • Регулярная выгрузка изменений для версионирования
  • Отслеживание модификаций конфигурации
  • Экспорт для анализа изменений с AI-ассистентами

Важно: Требует файл ConfigDumpInfo.xml от предыдущей выгрузки.

3. Частичная выгрузка (Partial)

Выгружает только конкретные объекты, указанные либо в файле, либо напрямую в командной строке.

Способ 1: Указание объектов в файле

REM Короткая команда (файл из .env: DUMP_OBJECTS_LIST)
dumpcfg Partial
# PowerShell скрипт напрямую (с явными параметрами)
.\scripts\dump-partial-config.ps1 -ObjectsListFile "dump_objects.txt" `
    -ConfigDir "src" `
    -InfoBasePath "C:\Bases\MyBase"

Способ 2: Указание объектов в параметре

REM Короткая команда - выгрузка одного объекта
dumpcfg -mode Partial -objects "Справочник.Номенклатура"

REM Выгрузка нескольких объектов (важно: в двойных кавычках, без пробелов у запятой)
dumpcfg -mode Partial -objects "Справочник.Номенклатура,Документ.РеализацияТоваровУслуг"
# PowerShell скрипт напрямую
.\scripts\dump-partial-config.ps1 -ObjectNames "Справочник.Номенклатура" -InfoBaseName "MyBase"

# Выгрузка нескольких объектов
.\scripts\dump-partial-config.ps1 -ObjectNames "Справочник.Номенклатура,Документ.РеализацияТоваровУслуг" `
    -InfoBasePath "C:\Bases\MyBase" `
    -DebugMode

Формат файла списка объектов (dump_objects.txt):

# Каждая строка - имя объекта метаданных
Справочник.Номенклатура
Документ.РеализацияТоваровУслуг
Отчет.АнализПродаж

Использование:

  • Через параметр -ObjectNames: идеально для быстрой выгрузки 1-2 объектов.
  • Через файл -ObjectsListFile: удобно для выгрузки большого или часто используемого списка объектов.
  • Экспорт отдельных модулей для анализа или передачи коллегам.

Параметры выгрузки

Основные параметры

Параметр Обязательный Описание
Mode Нет Режим выгрузки: Full, Changes, Partial (default: Changes)
ConfigDir Нет Каталог для выгрузки. Переопределяет CONFIG_DIR из .env. (default: config)
InfoBasePath Да* Путь к файловой базе данных
InfoBaseName Да* Имя базы из списка (альтернатива InfoBasePath)

*Один из двух параметров обязателен

Параметры для режима Changes

Параметр Описание
ChangesFile Файл для сохранения списка изменений
CompareWith Путь к ConfigDumpInfo.xml для сравнения
Force Принудительная полная выгрузка при несоответствии версий

Параметры для режима Partial

Параметр Описание
ObjectsListFile (Обязательный, если не указан ObjectNames)
Файл со списком имен объектов для выгрузки.
ObjectNames (Обязательный, если не указан ObjectsListFile)
Массив строк с именами объектов для выгрузки.

Дополнительные параметры

Параметр Значение по умолчанию Описание
UserName - Имя пользователя 1С
Password - Пароль пользователя
Format Hierarchical Формат: Hierarchical или Plain
V8Path 1cv8.exe Путь к исполняемому файлу платформы
OutFile temp файл Файл для вывода служебных сообщений
DebugMode - Режим отладки
Extension - Имя расширения для выгрузки
AllExtensions - Выгрузить все расширения

Использование с .env

Параметры выгрузки можно настроить в файле .env:

# Выгрузка конфигурации
DUMP_MODE=Changes
DUMP_OBJECTS_LIST=objects.txt
DUMP_CHANGES_FILE=config_changes.txt

После настройки .env запуск упрощается:

REM Короткие команды (рекомендуется)
dumpcfg                  :: использует DUMP_MODE из .env
dumpcfg Full             :: переопределяет режим
# PowerShell скрипты напрямую
.\scripts\dump-changes-config.ps1
.\scripts\dump-full-config.ps1 -ConfigDir "config_backup"

Примеры использования

Сценарий 1: Регулярная выгрузка изменений

Это основной сценарий работы с системой контроля версий.

REM Короткие команды (рекомендуется, параметры из .env)
dumpcfg Full
REM ... работа в конфигураторе, внесение изменений ...

REM Выгрузка только изменений
dumpcfg Changes

REM Фиксация в git
git add .
git commit -m "Добавлен новый справочник"
# PowerShell скрипты напрямую (с явными параметрами)
.\scripts\dump-full-config.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\Dev"

# ... работа в конфигураторе ...

# Выгрузка только изменений
.\scripts\dump-changes-config.ps1 -ConfigDir "src" `
    -InfoBasePath "C:\Bases\Dev" `
    -ChangesFile "changes.txt"

git add .
git commit -m "Добавлен новый справочник"

# Обновление файла состояния (опционально)
.\scripts\update-dump-info.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\Dev"

Сценарий 2: Выгрузка конкретных объектов

REM Короткая команда - передаем объекты напрямую
dumpcfg -mode Partial -objects "Справочник.Номенклатура,Отчет.АнализПродаж"
# PowerShell - создаем список в файле
@"
Справочник.Номенклатура
Документ.РеализацияТоваровУслуг
Отчет.АнализПродаж
"@ | Out-File dump_objects.txt -Encoding UTF8

# Выгружаем из файла
.\scripts\dump-partial-config.ps1 -ObjectsListFile "dump_objects.txt" `
    -ConfigDir "selected_objects" `
    -InfoBasePath "C:\Bases\MyBase"

# Или передаем объекты напрямую
.\scripts\dump-partial-config.ps1 -ObjectNames "Справочник.Номенклатура", "Отчет.АнализПродаж" `
    -ConfigDir "selected_objects" `
    -InfoBasePath "C:\Bases\MyBase"

Сценарий 3: Выгрузка расширений

REM Короткая команда
dumpcfg Full -Extension "MyExtension"
dumpcfg Full -AllExtensions
# PowerShell скрипты напрямую
.\scripts\dump-full-config.ps1 -ConfigDir "extensions\MyExtension" `
    -InfoBasePath "C:\Bases\MyBase" `
    -Extension "MyExtension"

.\scripts\dump-full-config.ps1 -ConfigDir "all_extensions" `
    -InfoBasePath "C:\Bases\MyBase" `
    -AllExtensions

Интеграция с загрузкой

Скрипты выгрузки и загрузки дополняют друг друга:

REM Короткие команды (параметры из .env)
dumpcfg Changes
git add src
git commit -m "Обновление конфигурации"

loadcfg HEAD -UpdateDB
# PowerShell скрипты напрямую (с явными параметрами)
.\scripts\dump-changes-config.ps1 -ConfigDir "src" -InfoBasePath "C:\Bases\Prod"
git add src
git commit -m "Обновление конфигурации"

# Загружаем в конфигурацию информацонной базы
.\scripts\partial-load-config.ps1 -CommitId "HEAD" `
    -ConfigDir "src" `
    -InfoBasePath "C:\Bases\Dev" `
    -UpdateDB

Отладка

При возникновении проблем используйте параметр -DebugMode:

REM Короткая команда
dumpcfg -DebugMode
# PowerShell скрипт напрямую
.\scripts\dump-changes-config.ps1 -ConfigDir "src" `
    -InfoBasePath "C:\Bases\MyBase" `
    -DebugMode

Это выведет:

  • Параметры запуска
  • Режим выгрузки
  • Полную командную строку 1cv8.exe
  • Список изменений (для режима Changes)
  • Путь к временным файлам (не удаляются)

История изменений

Версия 6.0 (ноябрь 2025)

  • Короткие команды - loadcfg и dumpcfg для быстрого доступа
  • Реорганизация проекта - все скрипты в каталоге scripts/
  • Упрощенный синтаксис - позиционные параметры для режимов выгрузки
  • ✅ Обновлена документация с примерами коротких команд

Версия 5.0 (ноябрь 2025)

  • Добавлена выгрузка конфигурации - три режима (Full, Changes, Partial)
  • Универсальный скрипт dump-config.ps1 с поддержкой .env
  • Три обертки для удобного запуска каждого режима
  • ✅ Поддержка расширений конфигурации
  • ✅ Интеграция с существующей системой загрузки

Версия 4.0 (ноябрь 2025)

  • Изменена логика получения файлов: указанный коммит теперь точка отсчета
  • Загрузка всех изменений: от коммита до HEAD + незафиксированные
  • Улучшенная отладка: детальная статистика по источникам изменений
  • ✅ Обновлена документация с подробным описанием логики

Версия 3.0 (ноябрь 2025)

  • Автоматическое обновление конфигурации БД (-UpdateDB)
  • Запуск в режиме 1С:Предприятие (-RunEnterprise)
  • Поддержка навигационных ссылок (-NavigationLink)
  • Запуск внешних обработок (-ExternalDataProcessor)
  • ✅ Комплексные сценарии: загрузка + обновление + запуск

Версия 2.0 (ноябрь 2025)

  • ✅ Добавлена поддержка BSL файлов
  • ✅ Автоматическое добавление XML объектов при изменении модулей
  • ✅ Улучшенная обработка связанных файлов объектов
  • ✅ Исправлен конфликт параметра -Debug с встроенным PowerShell параметром (переименован в -DebugMode)
  • ✅ Интернационализация сообщений (English)

Версия 1.0

  • ✅ Базовая функциональность частичной загрузки
  • ✅ Поддержка XML файлов конфигурации
  • ✅ Режим отладки

Автор

Скрипт создан для автоматизации процесса разработки конфигураций 1С с использованием git.

Лицензия

Свободное использование

About

No description, website, or topics provided.

Resources

Stars

42 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages