mirror of
https://github.com/arkuznetsov/1CFilesConverter.git
synced 2025-03-05 14:45:12 +02:00
723 lines
51 KiB
Markdown
723 lines
51 KiB
Markdown
[](https://github.com/ArKuznetsov/1CFilesConverter/releases)
|
|
[](https://github.com/ArKuznetsov/1CFilesConverter/blob/develop/LICENSE)
|
|
[](https://github.com/ArKuznetsov/1CFilesConverter/releases)
|
|
[](https://github.com/ArKuznetsov/1CFilesConverter/releases)
|
|
|
|
# Набор скриптов для конвертации файлов 1С между различными форматами (бинарные файлы, XML, EDT)
|
|
|
|
Цель - упростить использование инструментов конвертации до вызова одного скрипта с парой параметров.
|
|
|
|
Скрипты расположены в каталоге [scripts](./scripts)
|
|
|
|
Примеры и шаблоны производных (вспомогательных) скриптов расположениы в каталоге [examples](./examples), описание [README.md](./examples/readme.md).
|
|
|
|
* [Необходимые инструменты](#tools)
|
|
* [Переменные среды](#environment)
|
|
* [Скрипты конвертации](#scripts)
|
|
* [Автоматический разбор конфигураций, расширений, внешних отчетов и обработок (watchman)](#watchman)
|
|
* [Тесты](#tests)
|
|
|
|
## <a id="tools"></a>Необходимые инструменты
|
|
|
|
* [Платформа 1С:Предприятие 8.3](https://releases.1c.ru/project/Platform83)
|
|
* [Java runtime environment 11](https://releases.1c.ru/project/Liberica11FullJDK)
|
|
* [1C:Enterprise Development Tools (EDT)](https://releases.1c.ru/project/DevelopmentTools10)
|
|
* Утилита ring (входит в состав EDT)
|
|
* Утилита 1C:EDT CLI (входит в состав EDT)
|
|
* [watchman](https://facebook.github.io/watchman/docs/install) - для [автоматической конвертации файлов при изменении](#watchman) (рекомендуется прописать в переменную окружения `%PATH%`)
|
|
|
|
## <a id="environment"></a>Переменные среды
|
|
|
|
* **V8_VERSION** - используемая версия платформы 1С:Предприятие
|
|
* **V8_EDT_VERSION** - используемая версия 1C:EDT (если не указано, то ожидается использование единственной установленной версии)
|
|
* **V8_ENCODING** - кодировка вывода лога (по умолчанию: `65001`)
|
|
* **V8_TEMP** - путь к каталогу для создания временных файлов в процессе конвертации (по умолчанию: `%TEMP%\1c`)
|
|
* **V8_CONVERT_TOOL** - инструмент для конвертации файлов конфигурации/расширения (по умолчанию: `designer`):
|
|
* **designer** - для конвертации используется пакетный режим конфигуратора
|
|
* **ibcmd** - для конвертации используется утилита администрирования автономного сервера
|
|
* **V8_TOOL** - путь к исполняемому файлу 1С:Предприятие `1Cv8.exe` (по умолчанию: `%PROGRAMW6432%\1cv8\%V8_VERSION%\bin\1cv8.exe`)
|
|
* **IBCMD_TOOL** - путь к утилите управления автономным сервером `ibcmd` (по умолчанию: `%PROGRAMW6432%\1cv8\%V8_VERSION%\bin\ibcmd.exe`)
|
|
* **RING_TOOL** - путь к утилите ring из состава EDT (по умолчанию берется из переменной окружения `%PATH%`)
|
|
* **EDTCLI_TOOL** - путь к утилите 1cedtcli из состава EDT (по умолчанию ищется в каталоге `%PROGRAMW6432%\1C\1CE\components\1c-edt-%V8_EDT_VERSION%*`)
|
|
* **IBCMD_DATA** - путь к каталогу данных автономного сервера при использовании утилиты `ibcmd` (по умолчанию `%V8_TEMP%\ibcmd_data`)
|
|
* **V8_SKIP_ENV** - если установлена в `1`, то отключает чтение переменных среды из файла `.env`
|
|
* **V8_CONF_CLEAN_DST** - если установлена в `1`, то перед конвертацией конфигурации каталог назначения будет очищен
|
|
* **V8_EXT_CLEAN_DST** - если установлена в `1`, то перед конвертацией расширения каталог назначения будет очищен
|
|
* **V8_DP_CLEAN_DST** - если установлена в `1`, то перед конвертацией обработок/отчетов каталог назначения будет очищен
|
|
|
|
Значения переменных среды могут быть указаны в файле `.env` в текущем рабочем каталоге, пример приведен в файле [tests/example.env](./tests/example.env)
|
|
|
|
Переменная среды **V8_SKIP_ENV** позволяет отключить чтение переменных среды из файла `.env`: `V8_SKIP_ENV=1`
|
|
|
|
## <a id="scripts"></a>Скрипты конвертации
|
|
|
|
### [conf2ib.cmd](./scripts/cf2ib.cmd)
|
|
|
|
Выполняет загрузку конфигурации из указанного источника в информационную базу.
|
|
|
|
Источником может выступать:
|
|
|
|
* Файл выгрузки конфигурации (cf)
|
|
* Каталог выгрузки конфигурации в файлы (xml)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к информационной базе (переменная среды `%V8_DST_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Флаг создания новой информационной базы - если указано значение `create`, то будет создана новая информационная база, в противном случае будет выполнена загрузка конфигурации в существующую базу
|
|
|
|
Результат:
|
|
|
|
* Информационная база с загруженной исходной конфигурацией
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
```txt
|
|
|
|
ВНИМАНИЕ! При использовании ibcmd могут возникать ошибки загрузки конфигурации из XML-файлов, если в пути к файлам присутствует `..`, т.е. рекомендуется указывать полные пути.
|
|
|
|
Проверялось на версии 8.3.20.2290, 8.3.23.1865, 8.3.23.2040
|
|
|
|
```
|
|
|
|
### [conf2cf.cmd](./scripts/conf2cf.cmd)
|
|
|
|
Выполняет конвертацию конфигурации из указанного источника в бинарный CF-файл.
|
|
|
|
Источником может выступать:
|
|
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Каталог выгрузки конфигурации в файлы (xml)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Путь к файлу конфигурации (cf) (переменная среды `%V8_DST_PATH%`)
|
|
|
|
В случае выгрузки из серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Файл выгрузки исходной конфигурации (cf)
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
```txt
|
|
|
|
ВНИМАНИЕ! При использовании ibcmd могут возникать ошибки загрузки конфигурации из XML-файлов, если в пути к файлам присутствует `..`, т.е. рекомендуется указывать полные пути.
|
|
|
|
Проверялось на версии 8.3.20.2290, 8.3.23.1865, 8.3.23.2040
|
|
|
|
```
|
|
|
|
### [conf2xml.cmd](./scripts/conf2xml.cmd)
|
|
|
|
Выполняет выгрузку конфигурации из указанного источника в формат выгрузки конфигуратора (XML).
|
|
|
|
Источником может выступать:
|
|
|
|
* Путь к файлу конфигурации (cf)
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Путь к каталогу выгрузки файлов конфигурации (переменная среды `%V8_DST_PATH%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_CONF_CLEAN_DST`=1.
|
|
|
|
В случае выгрузки из серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
* **V8_CONVERT_TOOL** - тип конвертации 'ibcmd'
|
|
* **IBCMD_DATA** - путь к рабочему каталогу `ibcmd`. Если не указан, то создается во временных файлах.
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий XML-файлы выгрузки исходной конфигурации
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
### [conf2edt.cmd](./scripts/conf2edt.cmd)
|
|
|
|
Выполняет выгрузку конфигурации из указанного источника в проект 1C:Enterprise Development Tools (EDT).
|
|
|
|
Источником может выступать:
|
|
|
|
* Путь к файлу конфигурации (cf)
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Каталог выгрузки конфигурации в файлы (xml)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Путь к каталогу проекта EDT (переменная среды `%V8_DST_PATH%`)
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_CONF_CLEAN_DST`=1.
|
|
|
|
В случае выгрузки из серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий проект 1C:Enterprise Development Tools (EDT) исходной конфигурации
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
### [dp2epf.cmd](./scripts/dp2epf.cmd)
|
|
|
|
Выполняет конвертацию внешних отчетов и обработок в бинарный формат (epf/erf).
|
|
|
|
Источником может выступать:
|
|
|
|
* Путь к основному файлу внешнего отчета или обработки в формате выгрузки конфигуратора (XML)
|
|
* Каталог внешних отчетов и обработок формате выгрузки конфигуратора (XML)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику внешних отчетов и обработок (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к каталогу для сохранения бинарных файлов внешних отчетов и обработок (переменная среды `%V8_DST_PATH%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_DP_CLEAN_DST`=1.
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий бинарные файлы исходных внешних отчетов (epf) и обработок (erf)
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [dp2xml.cmd](./scripts/dp2xml.cmd)
|
|
|
|
Выполняет конвертацию файлов внешних отчетов и обработок в формат выгрузки конфигуратора (XML).
|
|
|
|
Источником может выступать:
|
|
|
|
* Файл внешнего отчета или обработки (epf, erf)
|
|
* Каталог, содержащий бинарные файлы внешних отчетов и обработок (epf, erf)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику внешних отчетов и обработок (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к каталогу для сохранения в формате выгрузки конфигуратора (XML) (переменная среды `%V8_DST_PATH%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_DP_CLEAN_DST`=1.
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий XML-файлы выгрузки исходных внешних отчетов (epf) и обработок (erf)
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [dp2edt.cmd](./scripts/dp2edt.cmd)
|
|
|
|
Выполняет конвертацию файлов внешних отчетов и обработок в проект 1C:Enterprise Development Tools (EDT).
|
|
|
|
Источником может выступать:
|
|
|
|
* Файл внешнего отчета или обработки (epf, erf)
|
|
* Каталог, содержащий бинарные файлы внешних отчетов и обработок (epf, erf)
|
|
* Каталог внешних отчетов и обработок формате выгрузки конфигуратора (XML)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику внешних отчетов и обработок (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к каталогу проекта 1C:Enterprise Development Tools (EDT) (переменная среды `%V8_DST_PATH%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_DP_CLEAN_DST`=1.
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий проект 1C:Enterprise Development Tools (EDT) исходных внешних отчетов и обработок
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [ext2ib.cmd](./scripts/cf2ib.cmd)
|
|
|
|
Выполняет загрузку расширения конфигурации из указанного источника в информационную базу.
|
|
|
|
Источником может выступать:
|
|
|
|
* Файл выгрузки расширения конфигурации (cfe)
|
|
* Каталог выгрузки расширения конфигурации в файлы (xml)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику расширения конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к информационной базе для загрузки расширения (переменная среды `%V8_DST_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Имя расширения (переменная среды `%V8_EXT_NAME%`)
|
|
|
|
Результат:
|
|
|
|
* Информационная база с загруженным расширением конфигурации
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
### [ext2cfe.cmd](./scripts/ext2cfe.cmd)
|
|
|
|
Выполняет конвертацию расширения конфигурации из указанного источника в бинарный CFE-файл.
|
|
|
|
Источником может выступать:
|
|
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Каталог выгрузки расширения конфигурации в файлы (xml)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику расширения конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к бинарному файлу расширения конфигурации (cfe) (переменная среды `%V8_DST_PATH%`)
|
|
* Имя расширения (переменная среды `%V8_EXT_NAME%`)
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
В случае использования для выгрузки служебной серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Файл выгрузки исходного расширения конфигурации (cfe)
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [ext2xml.cmd](./scripts/ext2xml.cmd)
|
|
|
|
Выполняет конвертацию расширения конфигурации в формат выгрузки конфигуратора (XML).
|
|
|
|
Источником может выступать:
|
|
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Файл выгрузки расширения конфигурации (cfe)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику расширения конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к каталогу для сохранения в формате выгрузки конфигуратора (XML) (переменная среды `%V8_DST_PATH%`)
|
|
* Имя расширения (переменная среды `%V8_EXT_NAME%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_EXT_CLEAN_DST`=1.
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
В случае использования для выгрузки служебной серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий XML-файлы выгрузки исходного расширения конфигурации
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [ext2edt.cmd](./scripts/ext2edt.cmd)
|
|
|
|
Выполняет конвертацию расширения конфигурации в проект 1C:Enterprise Development Tools (EDT).
|
|
|
|
Источником может выступать:
|
|
|
|
* Файловая информационная база
|
|
* Серверная информационная база
|
|
* Файл выгрузки расширения конфигурации (cfe)
|
|
* Каталог выгрузки расширения конфигурации в файлы (xml)
|
|
|
|
Параметры:
|
|
|
|
* Путь к источнику расширения конфигурации (переменная среды `%V8_SRC_PATH%`)
|
|
* Путь к каталогу проекта 1C:Enterprise Development Tools (EDT) (переменная среды `%V8_DST_PATH%`)
|
|
* Имя расширения (переменная среды `%V8_EXT_NAME%`)
|
|
|
|
Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды `V8_EXT_CLEAN_DST`=1.
|
|
|
|
Для указания базовой конфигурации и информационной базы для выгрузки можно указать переменные среды:
|
|
|
|
* **V8_BASE_IB** - путь к служебной информационной для выполнеия выгрузки (если не указан, будет использована временная файловая информационная база)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* **V8_BASE_CONFIG** - путь к конфигурации в любом из форматов (CF, XML, EDT) (если не указан, будет использована либо конфигурация из `V8_BASE_IB`, либо пустая конфигурация)
|
|
|
|
В случае использования для выгрузки служебной серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Каталог, содержащий проект 1C:Enterprise Development Tools (EDT) исходного расширения конфигурации
|
|
|
|
```txt
|
|
|
|
Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
|
|
По умолчанию используется пакетный режим конфигуратора.
|
|
|
|
```
|
|
|
|
Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта [conf2ib.cmd](./scripts/conf2ib.cmd)
|
|
|
|
### [edt-validate.cmd](./scripts/edt-validate.cmd)
|
|
|
|
Выполняет проверку проекта 1C:Enterprise Development Tools (EDT) (`ring edt validate` или `1cedtcli -command validate`).
|
|
Может использоваться для проектов конфигураций, расширений, внешних отчетов и отбработок.
|
|
|
|
Проверяем проектом может выступать:
|
|
|
|
* Путь к файловой информационной базе 1С
|
|
* Сервер\имя серверной информационной базе 1С
|
|
* Файл конфигурации (cf)
|
|
* Файл расширения конфигурации (cfe)
|
|
* Каталог выгрузки конфигурации или расширения в файлы (xml)
|
|
* Каталог файлов внешних отчетов и обработок (epf, erf)
|
|
* Каталог внешних отчетов и обработок формате выгрузки конфигуратора (XML)
|
|
* Каталог проекта 1C:Enterprise Development Tools (EDT)
|
|
|
|
Параметры:
|
|
|
|
* Проверяемый проект (переменная среды `%V8_SRC_PATH%`)
|
|
* Для файловой информационной базы может указываться в одном из 2-х вариантов `"<путь к базе>"` или `"/F<путь к базе>"`
|
|
* Для серверной информационной базы может указываться в виде `"/S<имя сервера>\<путь к базе>"`, где <имя сервера>:
|
|
* при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
|
|
* при выгрузке с использованием утилиты `ibcmd` - имя сервера СУБД
|
|
* Путь к файлу отчета о проверке
|
|
|
|
В случае использования серверной информационной базы и использовании утилиты `ibcmd` дополнительно требуется указать переменные среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
|
|
Результат:
|
|
|
|
* Отчет о проверке конфигурации средствами 1C:Enterprise Development Tools (EDT)
|
|
|
|
Для работы с конфигурациями, расширениями, внешними отчетами/обработками в различных форматах может потребовать наличия скриптов:
|
|
|
|
* [conf2edt.cmd](./scripts/conf2edt.cmd)
|
|
* [dp2edt.cmd](./scripts/dp2edt.cmd)
|
|
* [ext2edt.cmd](./scripts/ext2edt.cmd)
|
|
|
|
## <a id="watchman"></a>Автоматический разбор конфигураций, расширений, внешних отчетов и обработок (watchman)
|
|
|
|
Помогает решать задачу автоматического разбора на исходные файлы бинарных файлов конфигураций, расширений, внешних отчетов и обработок сразу после внесения изменений. Позволяет увидеть внесенные изменения до помещения в git.
|
|
|
|
Для автоматического разбора используется инструмент [watchman](https://facebook.github.io/watchman/docs/install).
|
|
|
|
Примеры настройки и скрипты расположены в каталоге [./wmscripts](./wmscripts)
|
|
|
|
### <a id="wm_watch"></a>Регистрация каталога для отслеживания [watch](https://facebook.github.io/watchman/docs/cmd/watch)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
rem Через параметры командной строки
|
|
watchman watch "<path to my repo>\ext"
|
|
|
|
```
|
|
|
|
```bat
|
|
|
|
rem Передача текста JSON на stdin
|
|
echo ["watch", "<path to my repo>\ext"] | watchman -j
|
|
|
|
```
|
|
|
|
```bat
|
|
|
|
rem Передача файла JSON на stdin
|
|
watchman -j < .\wmscripts\watch_example.json
|
|
|
|
```
|
|
|
|
### <a id="wm_trigger"></a>Подключение триггера изменения файлов [trigger](https://facebook.github.io/watchman/docs/cmd/trigger)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
rem Передача текста JSON на stdin
|
|
echo ["trigger", "<path to my repo>\ext", ^{"name": "myEPFTrigger", "expression": ["anyof", ["imatch","*.epf"]], "command": ["convert.cmd", "dp2xml", "<path to my repo>\ext", "<path to my repo>\src\ext"], "stdin": "NAME_PER_LINE"^}] | watchman -j
|
|
|
|
```
|
|
|
|
```bat
|
|
|
|
rem Передача файла JSON на stdin
|
|
watchman -j < .\wmscripts\trigger_example.json
|
|
|
|
```
|
|
|
|
### <a id="wm_trigger_list"></a>Просмотр списка подключенных триггеров [trigger-list](https://facebook.github.io/watchman/docs/cmd/trigger-list)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
watchman trigger-list "<path to my repo>\ext"
|
|
|
|
```
|
|
|
|
### <a id="wm_trigger_del"></a>Отключение триггера [trigger-del](https://facebook.github.io/watchman/docs/cmd/trigger-del)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
watchman trigger-del "<path to my repo>\ext" "myEPFTrigger"
|
|
|
|
```
|
|
|
|
### <a id="wm_watch_list"></a>Просмотр списка отслеживаемых каталогов [watch-list](https://facebook.github.io/watchman/docs/cmd/watch-list)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
watchman watch-list
|
|
|
|
```
|
|
|
|
### <a id="wm_trigger_del"></a>Остановка отслеживания каталога [watch-del](https://facebook.github.io/watchman/docs/cmd/watch-del)
|
|
|
|
Примеры:
|
|
|
|
```bat
|
|
|
|
rem Через параметры командной строки
|
|
watchman watch-del "<path to my repo>\ext"
|
|
|
|
```
|
|
|
|
### Запуск отслеживания каталога [settrigger.cmd](./wmscripts/settrigger.cmd)
|
|
|
|
Скрипт регистрации отслеживания каталога, содержащего файлы для конвертации. Использует [watchman](https://facebook.github.io/watchman/docs/install).
|
|
|
|
Выполняет [регистрацию каталога для отслеживания](#wm_watch) и [подключает триггер на изменение файлов](#wm_trigger).
|
|
|
|
Переменные среды:
|
|
|
|
* **WATCH_TOOL** - путь к утилите watchman (по умолчанию берется из переменной окружения `%PATH%`)
|
|
* **WATCH_LOG** - путь к файлу протокола выполнения обработки изменения файлов
|
|
|
|
Параметры:
|
|
|
|
* Имя триггера, который будет отслеживать изменения файлов (переменная среды `%TRIGGER_NAME%`)
|
|
* Путь к отслеживаемому каталогу (переменная среды `%WATCH_PATH%`)
|
|
* Список расширений отслеживаемых файлов разделенных `пробелом` (переменная среды `%WATCH_FILES%`), может быть указан псевдоним списка расширений:
|
|
* **1cdpr** - внешние отчеты и обработки
|
|
* **1cxml** - исходные файлы конфигурации в формате XML
|
|
* **1cedt** - исходные файлы конфигурации в формате проекта 1C:Enterprise Development Tools (EDT)
|
|
* Имя или путь к скрипту, исполняемому при изменении файлов в отслеживаемом каталоге (переменная среды `%WATCH_SCRIPT%`). См. [описания скриптов](#scripts). Если взаимное расположение и имена каталогов скриптов не изменялись, то можно просто указать имя скрипта без расширения.
|
|
* Путь к каталогу для сохранения результатов конвертации (переменная среды `%WATCH_OUT_PATH%`)
|
|
|
|
Пример:
|
|
|
|
```bat
|
|
|
|
.\settrigger.cmd MyEPFTrigger "<path to my repo>\ext" 1cdpr dp2xml "<path to my repo>\src\ext"
|
|
```
|
|
|
|
### Конвертация [convert.cmd](./wmscripts/convert.cmd)
|
|
|
|
Скрипт - обертка для запуска скриптов конвертации при срабатывании зарегистрированного тригера. Выполняет конвертацию файлов 1С с использованием указанного скрипта конвертации в указанный каталог.
|
|
|
|
`Не предполагался для ручного запуска`
|
|
|
|
Параметры:
|
|
|
|
* Имя или путь к исполняемому скрипту (переменная среды `%CONVERT_SCRIPT%`). См. [описания скриптов](#scripts). Если взаимное расположение и имена каталогов скриптов не изменялись, то можно просто указать имя скрипта без расширения.
|
|
* Путь к отслеживаемому каталогу (переменная среды `%CONVERT_SRC_PATH%`)
|
|
* Путь к каталогу для сохранения результатов конвертации (переменная среды `%CONVERT_DST_PATH%`)
|
|
|
|
Пример:
|
|
|
|
```bat
|
|
|
|
.\convert.cmd dp2xml "<path to my repo>\ext" "<path to my repo>\src\ext"
|
|
```
|
|
|
|
## <a id="tests"></a>Тесты
|
|
|
|
Тесты расположены в каталоге [tests](./tests).
|
|
|
|
* В каталоге [tests/fixtures](./tests/fixtures) расположены тестовые данные (конфигурация, расширения, отчеты и обработки в бинарном формате).
|
|
* В каталоге [tests/before](./tests/before) расположены скрипты подготовки тестовых данных
|
|
* В каталоге [tests/tests](./tests/tests) расположены модульные тесты
|
|
* В каталоге [tests/after](./tests/after) расположены скрипты, выполняемые после запуска тестов
|
|
|
|
Для выполнения тестов с серверной информационной базой 1С необходимо наличие и доступность сервера 1С:Предприятие и сервера СУБД, а также потребуется указание переменных среды:
|
|
|
|
* **V8_DB_SRV_DBMS** - тип сервера СУБД (MSSQLServer, PostgreSQL, IBMDB2, OracleDatabase) (опционально, по умолчанию: MSSQLServer)
|
|
* **V8_DB_SRV_ADDR** - адрес сервера СУБД
|
|
* **V8_DB_SRV_USR** - пользователь сервера СУБД
|
|
* **V8_DB_SRV_PWD** - пароль пользователя сервера СУБД
|
|
* **V8_SRV_ADDR** - адрес сервера 1С:Предприятие
|
|
* **V8_SRV_AGENT_PORT** - порт агента сервера 1С:Предприятие (например: 1540)
|
|
* **V8_SRV_REG_PORT** - порт главного менеджера кластера 1С:Предприятие (например: 1541)
|
|
* **V8_SRV_PORT_RANGE** - диапазон сетевых портов рабочих процессов 1С:Предприятие (например: 1560-1591)
|
|
* **V8_RAS_PORT** - порт службы RAS (например: 1545) (поднимается автоматически на машине запуска тестов)
|
|
* **V8_IB_NAME** - имя временной информационной базы 1С для выполнения тестов
|
|
|
|
Значения переменных могут быть указаны в файле `./tests/.env`, пример приведен в файле [tests/example.env](./tests/example.env)
|
|
|
|
Запуск тестов выполняется скриптом [tests/test.cmd](./tests/test.cmd)
|
|
|
|
### Структура скрипта теста модуля
|
|
|
|
```bat
|
|
|
|
@ECHO OFF
|
|
|
|
rem Заголовок теста
|
|
set TEST_NAME="Conf CF -> XML (ibcmd)"
|
|
|
|
rem Путь к каталогу выходных данных
|
|
set TEST_OUT_PATH=%OUT_PATH%\%~n0
|
|
set TEST_OUT_PATH=%TEST_OUT_PATH: =_%
|
|
|
|
rem Список файлов, наличие которых проверяется после выполнения теста
|
|
set TEST_CHECK_PATH=%TEST_OUT_PATH%\Configuration.xml
|
|
|
|
rem Инструмент конвертации файлов 1С
|
|
set V8_CONVERT_TOOL=ibcmd
|
|
|
|
echo ===
|
|
echo Test %TEST_COUNT%. ^(%~n0^) %TEST_NAME%
|
|
echo ===
|
|
|
|
rem Команда запуска теста (выполнения конвертации)
|
|
call %SCRIPTS_PATH%\conf2xml.cmd "%TEST_BINARY%\1cv8.cf" "%TEST_OUT_PATH%"
|
|
|
|
rem Переменной TEST_ERROR_MESSAGE можно присвоить произвольный текст ошибки
|
|
IF ERRORLEVEL 1 set TEST_ERROR_MESSAGE=Error running test "%TEST_NAME%"
|
|
|
|
```
|