Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 42 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении(commit) в git.
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git

### Что к чему
----
* pyv8unpack.py - python скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние обработки/отчеты и запускающий внешнюю обработку для распаковки этих файлов.
* [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т.д. и раскладывает их в нормальную структуру папок.
* pyv8unpack.py - Python-скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов.
* [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
* ibService - сервисная база данных на 1С для запуска V8Reader.epf
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py

### Установка

1. Зависимости:
* python 3.3
* установленная платформа 1С предприятия.
* Python 3.3
* установленная платформа 1С:Предприятия
* git
* в случае запуска из под wine необходим и msscriptcontrol.
* в случае запуска из под wine необходим msscriptcontrol

2. По умолчанию считается, что пути к python.exe и git.exe находятса в переменной path, иначе необходимо указать явный путь в файлах pre-commit(для python) и pyv8unpack.py(для git)
2. По умолчанию считается, что пути к python.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit (для python) и pyv8unpack.py (для git)

3. Путь к платформе находит автоматически, в случаии стандатной установки 1С. Если необходимо указать явно путь к платформе, необходимо: Указать переменную окружения PATH1C c путем к каталогу, где установленна
3. Путь к платформе находится автоматически в случае стандартной установки 1С. Если необходимо явно указать путь к платформе, то нужно: указать переменную окружения PATH1C c путём к каталогу, в который установлена
```
set PATH1C = d:\program\
```
или создать файл ini рядом с файлом скрипта pyv8unpack.py или в домашней папке в корне, с именем precommit1c.ini и содеражнием:
или создать ini-файл рядом с файлом скрипта pyv8unpack.py или в домашней папке в корне с именем precommit1c.ini и содержанием:
```
[DEFAULT]
onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe
```

4. Путь хранения исходных текстово разобранных обработок поумолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini файле
4. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле
```
[DEFAULT]
source = plugin_source
```

5. Флажок изменеяющий корневую папку хранения исходных текстово разобранных обработок поумолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini файле. Если изменить флажок на True - в каждой корневой папаке внешних обработок будет создан подкаталог текстово разобранных обработок.
5. Флажок, изменяющий корневую папку хранения исходных текстов разобранных обработок по умолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле. Если изменить флажок на True - в каждой корневой папке внешних обработок будет создан подкаталог текстов разобранных обработок.
```
[DEFAULT]
source_in_source = False
```

6. Наконец содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
6. Наконец, содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
> *Примечание:* каталог .git по умолчанию скрыт.

```
Expand All @@ -53,7 +53,32 @@ source_in_source = False

##Запуск

После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитарии автоматически должна создаться папка *src*, повторяющая полностью структуру проекта, измененные или добавленные файлы распакуются в папки с аналогичным наименованием.
После установки достаточно для проверки сделать 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С
```

##Командная строка запуска

Expand Down Expand Up @@ -82,8 +107,8 @@ optional arguments:

##Ограничения

Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учета расширения и возможен конфликт имен.
Дополнительно необходима настройка git для возможности использования кирилических наименований внешних обработок ```git config --local core.quotepath false```
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок ```git config --local core.quotepath false```
##Что внутри

Как это работает: pyv8unpack.py повторяет полностью иерархию папок относительно корня репозитария только в папке SRC(от слова source), для каждой измененной внешней обработки создается своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*
Как это работает: pyv8unpack.py полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*
5 changes: 5 additions & 0 deletions create-links-in-hooks.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
mklink ".git/hooks/pre-commit" "%~dp0pre-commit"
mklink ".git/hooks/pyv8unpack.py" "%~dp0pyv8unpack.py"
mklink /J ".git/hooks/ibService" "%~dp0ibService"
mklink /J ".git/hooks/v8Reader" "%~dp0v8Reader"
git config --local core.quotepath false
1 change: 0 additions & 1 deletion pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/bin/sh

echo "Start hooks before commit for v8unpack erf and epf"
python.exe .git/hooks/pyv8unpack.py --g --index
6 changes: 3 additions & 3 deletions precommit1c.ini.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[DEFAULT]
onecplatfrorms = D:\environ\onec\1cv8\8.3.4.465\bin\1cv8.exe
source = plugin_source
[default]
onec_platform=D:\environ\onec\1cv8\8.3.4.465\bin\1cv8.exe
source=plugin_source
Loading