Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
- pyv8unpack.py - Python-скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов.
- V8Reader.epf - внешняя обработка 1С, которая с помощью v8unpack разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
- ibService - сервисная база данных на 1С для запуска V8Reader.epf
- pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py
-
Зависимости:
- Python 3.3
- установленная платформа 1С:Предприятия
- git
- в случае запуска из под wine необходим msscriptcontrol
-
По умолчанию считается, что пути к python.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit (для python) и pyv8unpack.py (для git)
-
Путь к платформе находится автоматически в случае стандартной установки 1С. Если необходимо явно указать путь к платформе, то нужно: указать переменную окружения PATH1C c путём к каталогу, в который установлена 1С
set PATH1C = d:\program\
или создать ini-файл рядом с файлом скрипта pyv8unpack.py или в домашней папке в корне с именем precommit1c.ini и содержанием:
[DEFAULT]
onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe
- Путь хранения исходных текстов разобранных обработок по умолчанию используется как src (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле
[DEFAULT]
source = plugin_source
- Флажок, изменяющий корневую папку хранения исходных текстов разобранных обработок по умолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле. Если изменить флажок на True - в каждой корневой папке внешних обработок будет создан подкаталог текстов разобранных обработок.
[DEFAULT]
source_in_source = False
- Наконец, содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
Примечание: каталог .git по умолчанию скрыт.
.git\
hooks\
pre-commit
V8Reader
ibService
pyv8unpack.py
##Запуск
После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка src, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
##Командная строка запуска
python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile]
[--type TYPE] [--platform PLATFORM]
[inputPath] [output]
Утилита для автоматической распаковки внешних обработок
positional arguments:
inputPath Путь к файлам, необходимым для распаковки
output Путь к каталогу, куда распаковывать
optional arguments:
-h, --help Show this help message and exit
--version Show program's version number and exit
-v, --verbose Increases log verbosity for each occurence
--index Добавляем в индекс исходники
--g Запустить чтение индекса из git и определить список
файлов для разбора
--compile Собрать внешний отчёт/обработку
--type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf
--platform PLATFORM Путь к платформе 1С
##Командная строка запуска
python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile]
[--type TYPE] [--platform PLATFORM]
[inputPath] [output]
Утилита для автоматической распаковки внешних обработок
positional arguments:
inputPath Путь к файлам необходимым для распаковки
output Путь к каталогу, куда распаковывать
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
-v, --verbose increases log verbosity for each occurence.
--index Добавляем в индекс исходники
--g Запуситить чтение индекса из git и определить список
файлов для разбора
--compile Собрать внешний файл/обработку
--type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf
--platform PLATFORM Путь к платформе 1С
##Ограничения
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок git config --local core.quotepath false
##Что внутри
Как это работает: pyv8unpack.py полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог und