You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+46-15
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,20 @@
1
-
##Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
1
+
# Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
2
2
3
3
[](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам
**precommit1c** - инструмент для хранения в Git исходников внешних отчетов/обработок, технически состоит из:
12
+
11
13
* v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки, расширения и запускающий команды для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников.
12
14
*[V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
13
15
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os
3. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit`
27
29
28
-
####Установка через OneScript Package Manager
30
+
### Установка через OneScript Package Manager (предпочтительно)
29
31
30
-
1. Выполните установку precommit1c из командной строки `opm install precommit1c` (предполагается, что OneScript уже установлен и командная строка запущена с правами администратора).
32
+
1. Выполните установку precommit1c из командной строки `opm install precommit1c` (предполагается, что OneScript уже установлен и командная строка запущена с правами администратора). При этом необходимые библиотеки oscript будут установлены автоматически.
31
33
32
34
2. Перейдите в рабочий каталог репозитория, для которого следует использовать автоматическую сборку/разборку.
33
35
34
36
3. Выполните из командной строки `precommit1c --install` (здесь можно без прав администратора).
35
37
36
-
####Установка через zip-архив
38
+
### Установка через zip-архив
37
39
38
40
1. Скачайте zip-архив precommit1c.zip со страницы [последнего релиза](https://github.com/xDrivenDevelopment/precommit1c/releases/latest).
39
41
@@ -50,12 +52,15 @@
50
52
v8files-extractor.os
51
53
```
52
54
53
-
#### Установка через git clone
55
+
3. Установите необходимые библиотеки oscript - их список можно посмотреть в списке зависимостей в файле `packagedef`.
56
+
57
+
### Установка через git clone
54
58
55
59
1. Склонируйте репозиторий `precommit1c` в удобное место.
56
60
57
61
2. После клонирования репозитория необходимо инициализировать используемые подмодули.
4. Установите необходимые библиотеки oscript - их список можно посмотреть в списке зависимостей в файле `packagedef`.
83
+
76
84
## Запуск
77
85
78
86
После установки достаточно для проверки сделать commit для любого файла epf/erf/cfe, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс
94
-
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git
104
+
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
95
105
--compile inputPath outputPath [--recursive]
96
106
Собрать внешний файл/обработку.
97
107
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
98
-
--install
108
+
--install [--remove-orig-bin-files]
99
109
Установить precommit1c для текущего репозитория git
110
+
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
111
+
112
+
Общие параметры:
113
+
--use-designer
114
+
Если передан этот флаг, то для операций сборки/разборки будет использован конфигуратор 1С.
115
+
ТОЛЬКО ДЛЯ ВЕРСИЙ ПЛАТФОРМЫ 8.3.8 И ВЫШЕ!
116
+
--ib-connection-string
117
+
Строка подключения к информационной базе (для Windows-путей обязательно экранировать '\' так: '\\'!)
При использовании v8Reader макеты выгружаются в файлы, соответствующие их типам, дополнительно обрабатываются специальные случаи:
146
+
147
+
* У макетов табличных документов дополнительно создаются .txt версии, чтобы их было легче сравнивать в текстовом редакторе.
148
+
* У макетов типа html дополнительно выгружаются файлы вложений.
149
+
* Макеты в двоичных данных выгружаются либо в .bin, либо (для печатных форм) в тот тип файла, который указан в имени макета (например, `ПФ_MXL_КакаяТоПечатнаяФорма` будет выгружен в `ПФ_MXL_КакаяТоПечатнаяФорма.mxl`).
150
+
121
151
## Известные проблемы
122
152
123
153
1. При использовании некоторых версий SourceTree (удобный клиент git) может возникать следующая ошибка:
154
+
124
155
>`.git/hooks/pre-commit: line 4: oscript: command not found`
125
156
Несколько вариантов решения:
157
+
126
158
+ убедиться, что команда `oscript` доступна
127
159
+ для проверки вызвать из командной строки или Win+R `cmd /k oscript`
* добавить нужную обработку в индекс git - например, `git add XXX.epf`
138
-
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
170
+
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
139
171
* выполнить `git commit` или `precommit1c --git-precommit`
172
+
* Например, рядом с файлом `v8files-extractor.os` положить файл `logos.cfg` со следующим текстом `logger.rootLogger=DEBUG`
173
+
* или переименовать файл-пример `logos.debug-example.cfg` в `logos.cfg`
174
+
* Или создать и выполнить командный файл
140
175
141
-
+ Например, рядом с файлом `v8files-extractor.os` положить файл `logos.cfg` со следующим текстом `logger.rootLogger=DEBUG`
142
-
143
-
+ или переименовать файл-пример `logos.debug-example.cfg` в `logos.cfg`
144
-
145
-
* Или создать и выполнить командный файл
146
176
```bat
147
177
git add XXX.epf
148
178
@set LOGOS_CONFIG=logger.rootLogger=DEBUG
@@ -152,6 +182,7 @@ git add XXX.epf
152
182
* где каталог `src` - выходной каталог, где хранятся исходники
153
183
154
184
2. Для отключения отладочных логов выполнить обратные действия
185
+
155
186
## Что внутри
156
187
157
188
Как это работает: `v8files-extractor.os` полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*.
0 commit comments