Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
precommit1c - инструмент для хранения в Git исходников внешних отчетов/обработок, технически состоит из:
Зависимости:
По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файле pre-commit
Путь хранения исходных текстов разобранных обработок по умолчанию используется как src (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле pre-commit
Выполните установку precommit1c из командной строки opm install precommit1c (предполагается, что OneScript уже установлен и командная строка запущена с правами администратора). При этом необходимые библиотеки oscript будут установлены автоматически.
Перейдите в рабочий каталог репозитория, для которого следует использовать автоматическую сборку/разборку.
Выполните из командной строки precommit1c --install (здесь можно без прав администратора).
Скачайте zip-архив precommit1c.zip со страницы последнего релиза.
Содержимое архива необходимо разархивировать в каталог .git/hooks/ вашего проекта.
Примечание: каталог .git по умолчанию скрыт.
В итоге у вас должна получиться следующая структура каталога:
.git\
hooks\
pre-commit
V8Reader
tools
v8files-extractor.os
packagedef.Склонируйте репозиторий precommit1c в удобное место.
После клонирования репозитория необходимо инициализировать используемые подмодули.
Откройте командую строку и выполните команды:
cd путь/к/репозиторию/precommit1c
git submodule update --init --recursive
.git\
hooks\
pre-commit
V8Reader
tools
v8files-extractor.os
packagedef.После установки достаточно для проверки сделать commit для любого файла epf/erf/cfe, и в вашем репозитории автоматически должна создаться папка src, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
oscript v8files-extractor.os ?
Утилита сборки/разборки внешних файлов 1С
Параметры командной строки:
--decompile inputPath outputPath
Разбор файлов на исходники
--help
Показ этого экрана
--git-check-config
Проверка настроек репозитория git
--git-precommit outputPath [--remove-orig-bin-files]
Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
--compile inputPath outputPath [--recursive]
Собрать внешний файл/обработку.
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
--install [--remove-orig-bin-files]
Установить precommit1c для текущего репозитория git
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
Общие параметры:
--use-designer
Если передан этот флаг, то для операций сборки/разборки будет использован конфигуратор 1С.
ТОЛЬКО ДЛЯ ВЕРСИЙ ПЛАТФОРМЫ 8.3.8 И ВЫШЕ!
--ib-connection-string
Строка подключения к информационной базе (для Windows-путей обязательно экранировать '\' так: '\\'!)
--ib-user
Имя пользователя в информационной базе
--ib-pwd
Пароль пользователя в информационной базе
Дополнительно необходимы настройки git для возможности использования кириллических наименований внешних обработок, длинных имён файлов и корректной работы с окончаниями строк:
git config --local core.quotepath false
git config --local core.longpaths true
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
Начиная с версии 8.3.9.2016 1С встроила в платформу механизмы защиты открытия внешних отчетов и обработок. Как обойти данное ограничение написано на ИТС:
Защита считается отключенной, если строка соединения с информационной базой удовлетворяет одному из шаблонов, указанных в параметре DisableUnsafeActionProtection файла conf.cfg.
Т.о. в файл C:\Program Files (x86)\1cv8\conf\conf.cfg необходимо добавить строку DisableUnsafeActionProtection=.*
Подробнее на ИТС
При использовании v8Reader макеты выгружаются в файлы, соответствующие их типам, дополнительно обрабатываются специальные случаи:
ПФ_MXL_КакаяТоПечатнаяФорма будет выгружен в ПФ_MXL_КакаяТоПечатнаяФорма.mxl).
.git/hooks/pre-commit: line 4: oscript: command not found
Несколько вариантов решения:
oscript доступна
cmd /k oscriptoscript.exe в файле pre-commit внутри своего репозитария.
git add XXX.epfLOGOS_CONFIG или заполнить спец.файл настройки логовgit commit или precommit1c --git-precommitv8files-extractor.os положить файл logos.cfg со следующим текстом logger.rootLogger=DEBUGlogos.debug-example.cfg в logos.cfggit add XXX.epf
@set LOGOS_CONFIG=logger.rootLogger=DEBUG
@precommit1c --git-precommit src
src - выходной каталог, где хранятся исходникиКак это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог und.
Файлы расширений *.cfe распаковываются на исходники штатными средствами 1С.
Лицензировано на условиях Apache License 2.0. Смотрите файл LICENSE.md в корневом каталоге репозитория.
1. Откройте маркетплейс из главного меню TurboConf или из меню в панели уведомлений.
2. Найдите нужную разработку.
3. Нажмите кнопку Установить.
TurboConf все установит автоматически!
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)