Skip to content

Commit

Permalink
Merge branch 'release/v2.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Mar 12, 2017
2 parents 6ef501f + fc10400 commit e3d3df5
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 32 deletions.
33 changes: 27 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@

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

### Установка
Expand Down Expand Up @@ -37,7 +36,6 @@
pre-commit
V8Reader
tools
ibService
v8files-extractor.os
```

Expand All @@ -61,13 +59,12 @@ git submodule update --init --recursive
pre-commit
V8Reader
tools
ibService
v8files-extractor.os
```

## Запуск

После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
После установки достаточно для проверки сделать commit для любого файла epf/erf/cfe, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.

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

Expand All @@ -87,6 +84,8 @@ oscript v8files-extractor.os ?
--compile inputPath outputPath [--recursive]
Собрать внешний файл/обработку.
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
--install
Установить precommit1c для текущего репозитория git
```

## Ограничения
Expand All @@ -95,9 +94,31 @@ oscript v8files-extractor.os ?

Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.

### Для корректной работы на 1С версии 8.3.9.2016 и старше

Начиная с версии 8.3.9.2016 1С встроила в платформу механизмы защиты открытия внешних отчетов и обработок. Как обойти данное ограничение написано на ИТС:
> Защита считается отключенной, если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg.
Т.о. в файл C:\Program Files (x86)\1cv8\conf\conf.cfg необходимо добавить строку `DisableUnsafeActionProtection=.*`
Подробнее [на ИТС](http://its.1c.ru/db/v838doc#bookmark:dev:TI000001873)

## Известные проблемы

1. При использовании некоторых версий SourceTree (удобный клиент git) может возникать следующая ошибка:
>`.git/hooks/pre-commit: line 4: oscript: command not found`
Несколько вариантов решения:
+ убедиться, что команда `oscript` доступна
+ для проверки вызвать из командной строки или Win+R `cmd /k oscript`
+ откатиться на предыдущую версию SourceTree
+ рекомендуется
+ указать полный путь к `oscript.exe` в файле `pre-commit` внутри своего репозитария.
+ не рекомендуется, т.к. данную операцию нужно будеть делать для каждого репозитария

## Что внутри

Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*
Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*.

Файлы расширений *.cfe распаковываются на исходники штатными средствами 1С.

## Лицензия

Expand Down
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Описание.Имя("precommit1c")
.Версия("2.0.6")
.Версия("2.1.0")
.ЗависитОт("logos")
.ЗависитОт("cmdline")
.ЗависитОт("tempfiles")
Expand Down
Loading

0 comments on commit e3d3df5

Please sign in to comment.