|
1 |
| -## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git |
| 1 | +## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git |
| 2 | + |
| 3 | +[](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам |
2 | 4 |
|
3 | 5 | ### Что к чему
|
4 | 6 | ----
|
5 |
| -* pyv8unpack.py - Python-скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. |
| 7 | +* v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников. |
6 | 8 | * [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
|
7 | 9 | * ibService - сервисная база данных на 1С для запуска V8Reader.epf
|
8 |
| -* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py |
| 10 | +* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os |
9 | 11 |
|
10 | 12 | ### Установка
|
11 | 13 |
|
12 |
| -1. Зависимости: |
13 |
| - * Python 3.3 |
14 |
| - * установленная платформа 1С:Предприятия |
| 14 | +1. Зависимости: |
| 15 | + * OneScript http://oscript.io/ |
| 16 | + * установленная платформа 1С:Предприятие 8 |
15 | 17 | * git
|
16 | 18 | * в случае запуска из под wine необходим msscriptcontrol
|
| 19 | + * Библиотеки [oscript-library]( https://github.com/EvilBeaver/oscript-library) |
17 | 20 |
|
18 |
| -2. По умолчанию считается, что пути к python.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit (для python) и pyv8unpack.py (для git) |
19 |
| - |
20 |
| -3. Путь к платформе находится автоматически в случае стандартной установки 1С. Если необходимо явно указать путь к платформе, то нужно: указать переменную окружения PATH1C c путём к каталогу, в который установлена 1С |
21 |
| -``` |
22 |
| -set PATH1C = d:\program\ |
23 |
| -``` |
24 |
| -или создать ini-файл рядом с файлом скрипта pyv8unpack.py или в домашней папке в корне с именем precommit1c.ini и содержанием: |
25 |
| -``` |
26 |
| -[DEFAULT] |
27 |
| -onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe |
28 |
| -``` |
29 |
| - |
30 |
| -4. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле |
31 |
| -``` |
32 |
| -[DEFAULT] |
33 |
| -source = plugin_source |
34 |
| -``` |
| 21 | +2. По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit |
35 | 22 |
|
36 |
| -5. Флажок, изменяющий корневую папку хранения исходных текстов разобранных обработок по умолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле. Если изменить флажок на True - в каждой корневой папке внешних обработок будет создан подкаталог текстов разобранных обработок. |
| 23 | +3. После клонирования данного репозитория необходимо инициализировать используемые подмодули. |
| 24 | +Откройте командую строку и выполните команды: |
| 25 | +```cmd |
| 26 | +cd путь/к/репозиторию/precommit1c |
| 27 | +git submodule update --init --recursive |
37 | 28 | ```
|
38 |
| -[DEFAULT] |
39 |
| -source_in_source = False |
40 |
| -``` |
41 |
| - |
42 |
| -6. Наконец, содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта. |
43 |
| -> *Примечание:* каталог .git по умолчанию скрыт. |
44 | 29 |
|
| 30 | +4. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта. |
| 31 | +*Примечание:* каталог .git по умолчанию скрыт. |
| 32 | +В итоге у вас должна получиться следующая структура каталога: |
45 | 33 | ```
|
46 | 34 | .git\
|
47 | 35 | hooks\
|
48 | 36 | pre-commit
|
49 | 37 | V8Reader
|
50 |
| - ibService |
51 |
| - pyv8unpack.py |
| 38 | + tools |
| 39 | + ibService |
| 40 | + v8files-extractor.os |
52 | 41 | ```
|
53 | 42 |
|
54 |
| -##Запуск |
| 43 | +5. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit` |
55 | 44 |
|
56 |
| -После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями. |
| 45 | +## Запуск |
57 | 46 |
|
58 |
| -##Командная строка запуска |
| 47 | +После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями. |
| 48 | + |
| 49 | +## Командная строка запуска OneScript |
59 | 50 |
|
60 | 51 | ```
|
61 |
| -python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile] |
62 |
| - [--type TYPE] [--platform PLATFORM] |
63 |
| - [inputPath] [output] |
64 |
| -
|
65 |
| -Утилита для автоматической распаковки внешних обработок |
66 |
| -
|
67 |
| -positional arguments: |
68 |
| - inputPath Путь к файлам, необходимым для распаковки |
69 |
| - output Путь к каталогу, куда распаковывать |
70 |
| -
|
71 |
| -optional arguments: |
72 |
| - -h, --help Show this help message and exit |
73 |
| - --version Show program's version number and exit |
74 |
| - -v, --verbose Increases log verbosity for each occurence |
75 |
| - --index Добавляем в индекс исходники |
76 |
| - --g Запустить чтение индекса из git и определить список |
77 |
| - файлов для разбора |
78 |
| - --compile Собрать внешний отчёт/обработку |
79 |
| - --type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf |
80 |
| - --platform PLATFORM Путь к платформе 1С |
| 52 | +oscript v8files-extractor.os ? |
| 53 | +
|
| 54 | +Утилита сборки/разборки внешних файлов 1С |
| 55 | +
|
| 56 | +Параметры командной строки: |
| 57 | + --decompile inputPath outputPath |
| 58 | + Разбор файлов на исходники |
| 59 | + --help |
| 60 | + Показ этого экрана |
| 61 | + --git-precommit outputPath [--remove-orig-bin-files] |
| 62 | + Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс |
| 63 | + Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git |
| 64 | + --compile inputPath outputPath [--recursive] |
| 65 | + Собрать внешний файл/обработку. |
| 66 | + Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога |
81 | 67 | ```
|
82 | 68 |
|
83 |
| -##Командная строка запуска |
| 69 | +## Ограничения |
84 | 70 |
|
85 |
| -``` |
86 |
| -python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile] |
87 |
| - [--type TYPE] [--platform PLATFORM] |
88 |
| - [inputPath] [output] |
89 |
| -
|
90 |
| -Утилита для автоматической распаковки внешних обработок |
91 |
| -
|
92 |
| -positional arguments: |
93 |
| - inputPath Путь к файлам необходимым для распаковки |
94 |
| - output Путь к каталогу, куда распаковывать |
95 |
| -
|
96 |
| -optional arguments: |
97 |
| - -h, --help show this help message and exit |
98 |
| - --version show program's version number and exit |
99 |
| - -v, --verbose increases log verbosity for each occurence. |
100 |
| - --index Добавляем в индекс исходники |
101 |
| - --g Запуситить чтение индекса из git и определить список |
102 |
| - файлов для разбора |
103 |
| - --compile Собрать внешний файл/обработку |
104 |
| - --type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf |
105 |
| - --platform PLATFORM Путь к платформе 1С |
106 |
| -``` |
| 71 | +Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок `git config --local core.quotepath false` |
107 | 72 |
|
108 |
| -##Ограничения |
| 73 | +Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен. |
109 | 74 |
|
110 |
| -Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен. |
111 |
| -Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок ```git config --local core.quotepath false``` |
112 |
| -##Что внутри |
| 75 | +## Что внутри |
113 | 76 |
|
114 |
| -Как это работает: pyv8unpack.py полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und* |
| 77 | +Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und* |
0 commit comments