Skip to content

DrElaks/precommit1c

 
 

Repository files navigation

Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении(commit) в git.

Что к чему


  • pyv8unpack.py - python скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние обработки/отчеты и запускающий внешнюю обработку для распаковки этих файлов.
  • V8Reader.epf - внешняя обработка 1С, которая с помощью v8unpack разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т.д. и раскладывает их в нормальную структуру папок.
  • ibService - сервисная база данных на 1С, для запуска V8Reader.epf
  • pre-commit - собственно командный файл вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py

Установка

  1. Зависимости:

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

  3. Путь к платформе находит автоматически, в случаии стандатной установки 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
  1. Путь хранения исходных текстово разобранных обработок поумолчанию используется как src (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini файле
[DEFAULT]
source = plugin_source
  1. Флажок изменеяющий корневую папку хранения исходных текстово разобранных обработок поумолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini файле. Если изменить флажок на True - в каждой корневой папаке внешних обработок будет создан подкаталог текстово разобранных обработок.
[DEFAULT]
source_in_source = False
  1. Наконец содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.

Примечание: каталог .git по умолчанию скрыт.

.git\
    hooks\
        pre-commit
        V8Reader.epf
        ibService 
        pyv8unpack.py

##Запуск

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

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

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

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

About

precommit1c

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 95.0%
  • Shell 5.0%