Precommit1c
precommit1c
Install / Use
/learn @pumbaEO/Precommit1cREADME
Проект переехал https://github.com/xDrivenDevelopment/precommit1c
Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
Здесь вы можете задавать любые вопросы разработчикам и активным участникам
Что к чему
- v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников.
- V8Reader.epf - внешняя обработка 1С, которая с помощью v8unpack разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
- ibService - сервисная база данных на 1С для запуска V8Reader.epf
- pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os
Установка
-
Зависимости:
- OneScript http://oscript.io/
- установленная платформа 1С:Предприятие 8
- git
- в случае запуска из под wine необходим msscriptcontrol
- Библиотеки oscript-library
-
По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файле pre-commit
-
Путь хранения исходных текстов разобранных обработок по умолчанию используется как src (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле
pre-commit
Установка через zip-архив
-
Скачайте zip-архив precommit1c.zip со страницы последнего релиза.
-
Содержмое архива необходимо разархивировать в каталог .git/hooks/ вашего проекта.
Примечание: каталог .git по умолчанию скрыт.
В итоге у вас должна получиться следующая структура каталога:
.git\
hooks\
pre-commit
V8Reader
tools
ibService
v8files-extractor.os
Установка через git clone
-
Склонируйте репозиторий
precommit1cв удобное место. -
После клонирования репозитория необходимо инициализировать используемые подмодули.
Откройте командую строку и выполните команды:
cd путь/к/репозиторию/precommit1c
git submodule update --init --recursive
- Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
Примечание: каталог .git по умолчанию скрыт.
В итоге у вас должна получиться следующая структура каталога:
.git\
hooks\
pre-commit
V8Reader
tools
ibService
v8files-extractor.os
Запуск
После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка src, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
Командная строка запуска OneScript
oscript v8files-extractor.os ?
Утилита сборки/разборки внешних файлов 1С
Параметры командной строки:
--decompile inputPath outputPath
Разбор файлов на исходники
--help
Показ этого экрана
--git-precommit outputPath [--remove-orig-bin-files]
Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git
--compile inputPath outputPath [--recursive]
Собрать внешний файл/обработку.
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
Ограничения
Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок git config --local core.quotepath false
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
Что внутри
Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог und
Лицензия
Лицензировано на условиях Apache License 2.0. Смотрите файл LICENSE.md в корневом каталоге репозитория.
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
