Metadata-Version: 2.1
Name: parse-1c-build
Version: 7.2.0
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С).

На Windows _v8unpack.exe_ входит в пакет (`parse_1c_build/vendor/`) и используется по умолчанию,
чтобы не подхватить чужую копию из PATH или из пользовательского _settings.yaml_.
Явный `v8unpack_file_path` в коде по-прежнему перекрывает встроенный файл.

Пути к сервисной информационной базе, _V8Reader.epf_ и GComp указываются в файле настроек
_settings.yaml_, который сначала ищется в текущем каталоге, а затем в персональном каталоге
данных приложения пользователя (в Windows 10 каталог
_C:\Users\\<Пользователь>\AppData\Local\util-1c\parse-1c-build\>_). Если путь к платформе
1С:Предприятие 8 в файле настроек не указан, то он ищется автоматически.

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

- Windows
- Python 3.10 и выше. Каталоги интерпретатора и скриптов Python должны быть прописаны в переменной окружения Path
- Для работы с _epf_-, _erf_-, _cf_- и _cfe_-файлами:
  - встроенный [V8Unpack][2] (Windows); на других платформах — `v8unpack` рядом с интерпретатором или `v8unpack_file` в настройках
  - (опционально, 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\Others\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/cujoko/v8unpack
[3]: http://1c.alterplast.ru/gcomp/
