1
0
mirror of https://github.com/arkuznetsov/1CFilesConverter.git synced 2024-11-24 08:33:30 +02:00
Cкрипты для конвертации файлов 1С между различными форматами (Binary, XML, EDT)
Go to file
2024-10-09 12:43:10 +03:00
examples refactor: Путь к каталогу программ определяется через переменную среды %PROGRAMW6432%. 2024-10-08 10:44:48 +03:00
scripts refactor: Изменены версии 1С и EDT, используемые по умолчанию. 2024-10-09 11:41:43 +03:00
tests test: Поправлена ошибка определения рпбочего каталога выполнения тестов. 2024-10-09 11:42:26 +03:00
wmscripts fix: В скриптах автоматической конвертации обработок/отчетов отключен флаг очистки каталога назначения и поправлены сообщения лога. 2024-10-09 11:44:14 +03:00
.gitattributes Инициализация проекта 2023-07-20 17:54:11 +03:00
.gitignore tests: Добавлен файл-пример указания переменных окружения (.env) для выполнеия тестов. 2023-09-01 17:27:50 +03:00
LICENSE Добавлена лицензия 2023-08-01 16:05:34 +03:00
README.md docs: Дополнен README. 2024-10-09 11:44:46 +03:00
VERSION Изменен номер версии 2024-10-09 11:47:55 +03:00

GitHub release GitHub license GitHub Releases GitHub All Releases

Набор скриптов для конвертации файлов 1С между различными форматами (бинарные файлы, XML, EDT)

Цель - упростить использование инструментов конвертации до вызова одного скрипта с парой параметров.

Скрипты расположены в каталоге scripts

Примеры и шаблоны производных (вспомогательных) скриптов расположениы в каталоге examples, описание README.md.

Необходимые инструменты

Переменные среды

  • 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

Переменная среды V8_SKIP_ENV позволяет отключить чтение переменных среды из файла .env: V8_SKIP_ENV=1

Скрипты конвертации

conf2ib.cmd

Выполняет загрузку конфигурации из указанного источника в информационную базу.

Источником может выступать:

  • Файл выгрузки конфигурации (cf)
  • Каталог выгрузки конфигурации в файлы (xml)
  • Каталог проекта 1C:Enterprise Development Tools (EDT)

Параметры:

  • Путь к источнику конфигурации (переменная среды %V8_SRC_PATH%)
  • Путь к информационной базе (переменная среды %V8_DST_PATH%)
    • Для файловой информационной базы может указываться в одном из 2-х вариантов "<путь к базе>" или "/F<путь к базе>"
    • Для серверной информационной базы может указываться в виде "/S<имя сервера>\<путь к базе>", где <имя сервера>:
      • при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
      • при выгрузке с использованием утилиты ibcmd - имя сервера СУБД
  • Флаг создания новой информационной базы - если указано значение create, то будет создана новая информационная база, в противном случае будет выполнена загрузка конфигурации в существующую базу

Результат:

  • Информационная база с загруженной исходной конфигурацией

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.


ВНИМАНИЕ! При использовании ibcmd могут возникать ошибки загрузки конфигурации из XML-файлов, если в пути к файлам присутствует `..`, т.е. рекомендуется указывать полные пути.

Проверялось на версии 8.3.20.2290, 8.3.23.1865, 8.3.23.2040

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)

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.


ВНИМАНИЕ! При использовании ibcmd могут возникать ошибки загрузки конфигурации из XML-файлов, если в пути к файлам присутствует `..`, т.е. рекомендуется указывать полные пути.

Проверялось на версии 8.3.20.2290, 8.3.23.1865, 8.3.23.2040

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-файлы выгрузки исходной конфигурации

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

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) исходной конфигурации

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

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

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

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

ext2ib.cmd

Выполняет загрузку расширения конфигурации из указанного источника в информационную базу.

Источником может выступать:

  • Файл выгрузки расширения конфигурации (cfe)
  • Каталог выгрузки расширения конфигурации в файлы (xml)
  • Каталог проекта 1C:Enterprise Development Tools (EDT)

Параметры:

  • Путь к источнику расширения конфигурации (переменная среды %V8_SRC_PATH%)
  • Путь к информационной базе для загрузки расширения (переменная среды %V8_DST_PATH%)
    • Для файловой информационной базы может указываться в одном из 2-х вариантов "<путь к базе>" или "/F<путь к базе>"
    • Для серверной информационной базы может указываться в виде "/S<имя сервера>\<путь к базе>", где <имя сервера>:
      • при выгрузке с использованием пакетного режима конфигуратора (designer) - имя сервера 1С:Предприятие
      • при выгрузке с использованием утилиты ibcmd - имя сервера СУБД
  • Имя расширения (переменная среды %V8_EXT_NAME%)

Результат:

  • Информационная база с загруженным расширением конфигурации

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

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)

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта conf2ib.cmd

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-файлы выгрузки исходного расширения конфигурации

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта conf2ib.cmd

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) исходного расширения конфигурации

Для указания инструмента конвертации необходимо установить переменную среды `%V8_CONVERT_TOOL%.
По умолчанию используется пакетный режим конфигуратора.

Для использования базовой конфигурации в различных форматах может потребовать наличия скрипта conf2ib.cmd

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)

Для работы с конфигурациями, расширениями, внешними отчетами/обработками в различных форматах может потребовать наличия скриптов:

Автоматический разбор конфигураций, расширений, внешних отчетов и обработок (watchman)

Помогает решать задачу автоматического разбора на исходные файлы бинарных файлов конфигураций, расширений, внешних отчетов и обработок сразу после внесения изменений. Позволяет увидеть внесенные изменения до помещения в git.

Для автоматического разбора используется инструмент watchman.

Примеры настройки и скрипты расположены в каталоге ./wmscripts

Регистрация каталога для отслеживания watch

Примеры:


rem Через параметры командной строки
watchman watch "<path to my repo>\ext"


rem Передача текста JSON на stdin
echo ["watch", "<path to my repo>\ext"] | watchman -j


rem Передача файла JSON на stdin
watchman -j < .\wmscripts\watch_example.json

Подключение триггера изменения файлов trigger

Примеры:


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


rem Передача файла JSON на stdin
watchman -j < .\wmscripts\trigger_example.json

Просмотр списка подключенных триггеров trigger-list

Примеры:


watchman trigger-list "<path to my repo>\ext"

Отключение триггера trigger-del

Примеры:


watchman trigger-del "<path to my repo>\ext" "myEPFTrigger"

Просмотр списка отслеживаемых каталогов watch-list

Примеры:


watchman watch-list

Остановка отслеживания каталога watch-del

Примеры:


rem Через параметры командной строки
watchman watch-del "<path to my repo>\ext"

Запуск отслеживания каталога settrigger.cmd

Скрипт регистрации отслеживания каталога, содержащего файлы для конвертации. Использует watchman.

Выполняет регистрацию каталога для отслеживания и подключает триггер на изменение файлов.

Переменные среды:

  • WATCH_TOOL - путь к утилите watchman (по умолчанию берется из переменной окружения %PATH%)
  • WATCH_LOG - путь к файлу протокола выполнения обработки изменения файлов

Параметры:

  • Имя триггера, который будет отслеживать изменения файлов (переменная среды %TRIGGER_NAME%)
  • Путь к отслеживаемому каталогу (переменная среды %WATCH_PATH%)
  • Список расширений отслеживаемых файлов разделенных пробелом (переменная среды %WATCH_FILES%), может быть указан псевдоним списка расширений:
    • 1cdpr - внешние отчеты и обработки
    • 1cxml - исходные файлы конфигурации в формате XML
    • 1cedt - исходные файлы конфигурации в формате проекта 1C:Enterprise Development Tools (EDT)
  • Имя или путь к скрипту, исполняемому при изменении файлов в отслеживаемом каталоге (переменная среды %WATCH_SCRIPT%). См. описания скриптов. Если взаимное расположение и имена каталогов скриптов не изменялись, то можно просто указать имя скрипта без расширения.
  • Путь к каталогу для сохранения результатов конвертации (переменная среды %WATCH_OUT_PATH%)

Пример:


.\settrigger.cmd MyEPFTrigger "<path to my repo>\ext" 1cdpr dp2xml "<path to my repo>\src\ext"

Конвертация convert.cmd

Скрипт - обертка для запуска скриптов конвертации при срабатывании зарегистрированного тригера. Выполняет конвертацию файлов 1С с использованием указанного скрипта конвертации в указанный каталог.

Не предполагался для ручного запуска

Параметры:

  • Имя или путь к исполняемому скрипту (переменная среды %CONVERT_SCRIPT%). См. описания скриптов. Если взаимное расположение и имена каталогов скриптов не изменялись, то можно просто указать имя скрипта без расширения.
  • Путь к отслеживаемому каталогу (переменная среды %CONVERT_SRC_PATH%)
  • Путь к каталогу для сохранения результатов конвертации (переменная среды %CONVERT_DST_PATH%)

Пример:


.\convert.cmd dp2xml "<path to my repo>\ext" "<path to my repo>\src\ext"

Тесты

Тесты расположены в каталоге tests.

  • В каталоге tests/fixtures расположены тестовые данные (конфигурация, расширения, отчеты и обработки в бинарном формате).
  • В каталоге tests/before расположены скрипты подготовки тестовых данных
  • В каталоге tests/tests расположены модульные тесты
  • В каталоге 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/test.cmd

Структура скрипта теста модуля


@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%"