| name | 1c-batch |
| description | Пакетные операции с платформой 1С:Предприятие 8. Сборка/разборка внешних обработок (.epf/.erf) в XML, загрузка/выгрузка конфигураций и расширений (XML и бинарные .cf/.cfe), запуск предприятия и конфигуратора. Используй когда нужно: собрать или разобрать обработку/отчёт, загрузить или выгрузить конфигурацию в XML, собрать или загрузить файл .cf/.cfe, работать с расширениями 1С, запустить 1С:Предприятие или конфигуратор. |
1c-batch
Пакетные операции с платформой 1С.
Варианты запуска: PowerShell (предпочтительный) и .bat (дополнительный)
Каждый скрипт существует в двух версиях с одинаковыми именами и параметрами:
| Вариант | Файлы | Статус |
|---|
| PowerShell | scripts/*.ps1 | предпочтительный |
| Командный (cmd) | scripts/*.bat | дополнительный (fallback) |
Почему PowerShell предпочтителен. cmd.exe под chcp 65001 ненадёжно читает .bat в UTF-8 с кириллицей: он «сползает» по границам строк на многобайтных символах, из-за чего настроечный файл может распарситься неверно (переменные подключения окажутся пустыми). Сломается конкретный файл или нет — зависит от его побайтовой раскладки. PowerShell читает UTF-8 нативно и лишён этой проблемы.
Используй .bat только если PowerShell недоступен.
Настроечный файл (.1c-devbase)
- PowerShell:
.1c-devbase.ps1 (переменные $ONEC_PATH, $ONEC_SERVER, $ONEC_BASE, $ONEC_USER, $ONEC_PASSWORD; либо $ONEC_FILEBASE_PATH). Шаблон — assets/.1c-devbase.ps1.example.
- Сохранять в UTF-8 С BOM. Windows PowerShell 5.1 читает
.ps1 без BOM как ANSI и портит кириллицу (например, имя пользователя «Администратор»).
- cmd:
.1c-devbase.bat (шаблон assets/.1c-devbase.bat.example).
Файл кладётся в корень проекта (или в подпапку tools\, чтобы не засорять корень — скрипты ищут оба места) и не коммитится в git.
Как запускать (из корня проекта)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .claude/skills/1c-batch/scripts/build-epf.ps1 src/epf/МояОбработка.xml build/МояОбработка.epf
.claude/skills/1c-batch/scripts/build-epf.bat src/epf/МояОбработка.xml build/МояОбработка.epf
Ниже команды показаны в PowerShell-форме. Для .bat — то же имя с расширением .bat и те же параметры.
Работа с обработками
build-epf — сборка обработки из XML
build-epf.ps1 <XML_FILE> <OUTPUT_FILE>
XML_FILE — корневой XML-файл обработки
OUTPUT_FILE — путь к результирующему файлу .epf или .erf
dump-epf — разборка обработки в XML
dump-epf.ps1 <XML_FILE> <EPF_FILE>
XML_FILE — корневой XML-файл для выгрузки (папка создастся автоматически)
EPF_FILE — путь к исходной обработке .epf или .erf
(dump-epf-crlf — то же, вариант для совместимости.)
Работа с конфигурацией
load-config — загрузка конфигурации из XML
load-config.ps1 <XML_DIR> [FILES] [skipdbupdate]
XML_DIR — папка с XML-файлами конфигурации
FILES — (опционально) список файлов через запятую для частичной загрузки
skipdbupdate — (опционально) пропустить обновление конфигурации БД
По умолчанию после загрузки выполняется обновление конфигурации БД.
Примеры:
# Полная загрузка
load-config.ps1 src/cf
# Частичная загрузка одного модуля
load-config.ps1 src/cf "CommonModules/МойМодуль/Ext/Module.bsl"
# Частичная загрузка нескольких файлов
load-config.ps1 src/cf "CommonModules/Мод1/Ext/Module.bsl,CommonModules/Мод2/Ext/Module.bsl"
dump-config — выгрузка конфигурации в XML
dump-config.ps1 <XML_DIR> [update]
XML_DIR — папка для выгрузки
update — (опционально) инкрементальная выгрузка (только изменения)
dump-cf — выгрузка конфигурации в файл .cf
dump-cf.ps1 <CF_FILE>
CF_FILE — путь к результирующему файлу .cf (папка создастся автоматически)
load-cf — загрузка конфигурации из файла .cf
load-cf.ps1 <CF_FILE> [skipdbupdate]
CF_FILE — путь к файлу .cf
skipdbupdate — (опционально) пропустить обновление конфигурации БД
По умолчанию после загрузки выполняется обновление конфигурации БД.
ВНИМАНИЕ: операция полностью перезаписывает конфигурацию базы — см. «Правила использования».
Работа с расширениями
load-extension — загрузка расширения из XML
load-extension.ps1 <XML_DIR> <EXT_NAME> [skipdbupdate]
XML_DIR — папка с XML-файлами расширения
EXT_NAME — имя расширения в базе (если не существует — будет создано)
skipdbupdate — (опционально) пропустить обновление расширения в БД
По умолчанию после загрузки выполняется обновление расширения в БД.
dump-extension — выгрузка расширения в XML
dump-extension.ps1 <XML_DIR> <EXT_NAME> [update]
XML_DIR — папка для выгрузки
EXT_NAME — имя расширения в базе
update — (опционально) инкрементальная выгрузка (только изменения)
dump-cfe — выгрузка расширения в файл .cfe
dump-cfe.ps1 <CFE_FILE> <EXT_NAME>
CFE_FILE — путь к результирующему файлу .cfe (папка создастся автоматически)
EXT_NAME — имя расширения в базе
load-cfe — загрузка расширения из файла .cfe
load-cfe.ps1 <CFE_FILE> <EXT_NAME> [skipdbupdate]
CFE_FILE — путь к файлу .cfe
EXT_NAME — имя расширения в базе (если не существует — будет создано)
skipdbupdate — (опционально) пропустить обновление расширения в БД
По умолчанию после загрузки выполняется обновление расширения в БД.
ВНИМАНИЕ: операция полностью перезаписывает расширение в базе — см. «Правила использования».
Запуск 1С
run-enterprise — запуск предприятия
run-enterprise.ps1 [EPF_FILE]
EPF_FILE — (опционально) обработка для автооткрытия
run-designer — запуск конфигуратора
run-designer.ps1
Сценарии использования
Исправить ошибку в обработке
- Разобрать:
dump-epf.ps1 src/epf/МояОбработка.xml D:/Исходная.epf
- Отредактировать BSL-файлы в
src/epf/МояОбработка/
- Собрать:
build-epf.ps1 src/epf/МояОбработка.xml build/МояОбработка.epf
- Проверить:
run-enterprise.ps1 build/МояОбработка.epf
Загрузка изменённого модуля
После редактирования BSL-файла загрузить его в базу:
load-config.ps1 src/cf "CommonModules/МойМодуль/Ext/Module.bsl"
Обновить расширение
- Выгрузить:
dump-extension.ps1 src/cfe/МоёРасширение МоёРасширение
- Внести изменения
- Загрузить:
load-extension.ps1 src/cfe/МоёРасширение МоёРасширение
Собрать артефакт расширения (.cfe)
После загрузки исходников в базу собрать бинарный файл расширения:
- Загрузить исходники:
load-extension.ps1 src/cfe/МоёРасширение МоёРасширение
- Собрать артефакт:
dump-cfe.ps1 build/МоёРасширение.cfe МоёРасширение
Доставить собранное расширение в базу без исходников
Загрузка готового .cfe в базу (например, обновление расширения на стенде):
load-cfe.ps1 build/МоёРасширение.cfe МоёРасширение
Правила использования
При выгрузке конфигурации или расширения в XML: если пользователь явно не указал тип выгрузки (полная или инкрементальная), спросить его перед выполнением:
- Полная выгрузка — выгружает все объекты заново
- Инкрементальная (
update) — выгружает только изменённые объекты (быстрее)
Перед load-cf / load-cfe: операция полностью перезаписывает конфигурацию (расширение) базы. Перед запуском обязательно явно подтвердить у пользователя: в какую базу грузим и из какого файла. Без подтверждения не запускать.
Важно
- Обработки: первый параметр — XML-файл, второй — выходной файл
- Конфигурация/расширения (XML): первый параметр — папка
- Конфигурация/расширения (бинарные): первый параметр — файл
.cf/.cfe
- При ошибке — код возврата
1
- Скрипты дожидаются завершения конфигуратора (
Start-Process -Wait); не запускай несколько пакетных операций над одной базой одновременно
- НЕ ЧИТАЙ СКРИПТЫ, А ТОЛЬКО ЗАПУСКАЙ ИХ