Metadata-Version: 2.1
Name: parse-1c-build
Version: 7.0.1
Summary: Parse and build utilities for 1C:Enterprise
Keywords: 1c,parse,build,v8reader,v8unpack,gcomp
Author-Email: Cujoko <cujoko@gmail.com>
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Russian
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Project-URL: repository, https://github.com/Cujoko-Dev/parse-1c-build
Requires-Python: >=3.10
Requires-Dist: cjk-commons<4.0.0,>=3.6.3
Requires-Dist: commons-1c<4.0.0,>=3.6.3
Requires-Dist: loguru>=0.6.0
Requires-Dist: questionary>=2.1.1
Description-Content-Type: text/markdown

# Утилита для разборки и сборки *epf*-, *erf*-, *cf*-, *cfe*-, *ert*- и *md*-файлов

## Что делает

При установке пакета в каталоге скриптов интерпретатора Python создаётся исполняемый файл *p1cb.exe*. Его можно 
запустить с командой *parse* для разборки *epf*-, *erf*-, *cf*- и *cfe*-файлов с помощью [V8Unpack][2]
(для *epf*/*erf* также устаревший путь через [V8Reader][1]), *ert*- и 
*md*-файлов с помощью [GComp][3], или с командой *build* для сборки тех же типов обратно.

Цель — получить **исходники модулей** (для Git, обфускации и т.п.) и уметь собрать контейнер обратно.
Для *epf*/*erf* модули лежат в корне каталога распаковки (`0_`/`1_`/`2_` + `bin`/`meta`).
Для *cf*/*cfe* — корень `bin`/`meta`/`objects` плюс модули конфигурации (`0_`/`1_`/`2_`/`9_`);
объекты метаданных — в `objects/Catalogs|Documents|…/Имя/` (английские имена классов 1С).

Пути к сервисной информационной базе, *V8Reader.epf*, *v8unpack.exe* и GComp указываются в файле настроек 
*settings.yaml*, который сначала ищется в текущем каталоге, затем в каталоге данных приложения пользователя 
(в Windows 10 каталог *C:\Users\\<Пользователь>\AppData\Roaming\util-1c\parse-1c-build\>*), а затем в общем каталоге 
данных приложения (в Windows 10 каталог *C:\ProgramData\util-1c\parse-1c-build\>*). Если путь к платформе 
1С:Предприятие 8 в файле настроек не указан, то он ищется автоматически.

## Требования

- Windows
- Python 3.10 и выше. Каталоги интерпретатора и скриптов Python должны быть прописаны в переменной окружения Path
- Для работы с *epf*-, *erf*-, *cf*- и *cfe*-файлами:
  - [V8Unpack][2]
  - (опционально, deprecated) платформа 1С:Предприятие 8.3, сервисная ИБ и [V8Reader][1] — только для *epf*/*erf* с `--use-reader`
- Для работы *ert*- и *md*-файлами:
  - [GComp][3]

## Установка

```cmd
pipx install parse-1c-build
```

## Установка в pipx для локальной разработки

Для рабочего editable-окружения запускай:

```powershell
C:\Dev\PowerShell\dev-utils\install-pipx-editable.ps1
```

Скрипт выполняет установку приложения из `.dev`, читает editable-зависимости из `[tool.pdm.dev-dependencies].dev` в `.dev/pyproject.toml` и инжектит найденные `-e file://...` зависимости в тот же pipx venv через `pipx runpip ... --no-deps -e <project-root>`.

Локальные зависимости должны указывать на корни проектов, а не на их `.dev`: editable-режим тогда смотрит на `src`, а metadata берётся из основного `pyproject.toml`. Флаг `--no-deps` важен, чтобы одна локальная зависимость не переустановила другую обратно в обычном режиме.

[1]: https://github.com/xDrivenDevelopment/v8Reader
[2]: https://github.com/e8tools/v8unpack
[3]: http://1c.alterplast.ru/gcomp/
