Skip to content

arkuznetsov/1CFilesConverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 (по умолчанию: C:\Program Files\1cv8\%V8_VERSION%\bin\1cv8.exe)
  • IBCMD_TOOL - путь к утилите управления автономным сервером ibcmd (по умолчанию: C:\Program Files\1cv8\%V8_VERSION%\bin\ibcmd.exe)
  • RING_TOOL - путь к утилите ring из состава EDT (по умолчанию берется из переменной окружения %PATH%)
  • IBCMD_DATA - путь к каталогу данных автономного сервера при использовании утилиты ibcmd (по умолчанию %V8_TEMP%\ibcmd_data)
  • V8_SKIP_ENV - если установлена в 1, то отключает чтение переменных среды из файла .env

Значения переменных среды могут быть указаны в файле .env в текущем рабочем каталоге, пример приведен в файле tests/example.env

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

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

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

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

  • Файл выгрузки конфигурации (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

Выполняет конвертацию конфигурации из указанного источника в бинарный 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

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

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

  • Путь к файлу конфигурации (cf)
  • Файловая информационная база
  • Серверная информационная база
  • Каталог проекта 1C:Enterprise Development Tools (EDT)

Параметры:

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

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_CONF_XML_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%.
По умолчанию используется пакетный режим конфигуратора.

Выполняет выгрузку конфигурации из указанного источника в проект 1C:Enterprise Development Tools (EDT).

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

  • Путь к файлу конфигурации (cf)
  • Файловая информационная база
  • Серверная информационная база
  • Каталог выгрузки конфигурации в файлы (xml)

Параметры:

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

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

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_CONF_EDT_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%.
По умолчанию используется пакетный режим конфигуратора.

Выполняет конвертацию внешних отчетов и обработок в бинарный формат (epf/erf).

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

  • Путь к основному файлу внешнего отчета или обработки в формате выгрузки конфигуратора (XML)
  • Каталог внешних отчетов и обработок формате выгрузки конфигуратора (XML)
  • Каталог проекта 1C:Enterprise Development Tools (EDT)

Параметры:

  • Путь к источнику внешних отчетов и обработок (переменная среды %V8_SRC_PATH%)
  • Путь к каталогу для сохранения бинарных файлов внешних отчетов и обработок (переменная среды %V8_DST_PATH%)

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_DP_BIN_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

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

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

  • Файл внешнего отчета или обработки (epf, erf)
  • Каталог, содержащий бинарные файлы внешних отчетов и обработок (epf, erf)
  • Каталог проекта 1C:Enterprise Development Tools (EDT)

Параметры:

  • Путь к источнику внешних отчетов и обработок (переменная среды %V8_SRC_PATH%)
  • Путь к каталогу для сохранения в формате выгрузки конфигуратора (XML) (переменная среды %V8_DST_PATH%)

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_DP_XML_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

Выполняет конвертацию файлов внешних отчетов и обработок в проект 1C:Enterprise Development Tools (EDT).

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

  • Файл внешнего отчета или обработки (epf, erf)
  • Каталог, содержащий бинарные файлы внешних отчетов и обработок (epf, erf)
  • Каталог внешних отчетов и обработок формате выгрузки конфигуратора (XML)

Параметры:

  • Путь к источнику внешних отчетов и обработок (переменная среды %V8_SRC_PATH%)
  • Путь к каталогу проекта 1C:Enterprise Development Tools (EDT) (переменная среды %V8_DST_PATH%)

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_DP_EDT_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

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

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

  • Файл выгрузки расширения конфигурации (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%.
По умолчанию используется пакетный режим конфигуратора.

Выполняет конвертацию расширения конфигурации из указанного источника в бинарный 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

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

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

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

Параметры:

  • Путь к источнику расширения конфигурации (переменная среды %V8_SRC_PATH%)
  • Путь к каталогу для сохранения в формате выгрузки конфигуратора (XML) (переменная среды %V8_DST_PATH%)
  • Имя расширения (переменная среды %V8_EXT_NAME%)

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_EXT_XML_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

Выполняет конвертацию расширения конфигурации в проект 1C:Enterprise Development Tools (EDT).

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

  • Файловая информационная база
  • Серверная информационная база
  • Файл выгрузки расширения конфигурации (cfe)
  • Каталог выгрузки расширения конфигурации в файлы (xml)

Параметры:

  • Путь к источнику расширения конфигурации (переменная среды %V8_SRC_PATH%)
  • Путь к каталогу проекта 1C:Enterprise Development Tools (EDT) (переменная среды %V8_DST_PATH%)
  • Имя расширения (переменная среды %V8_EXT_NAME%)

Если перед выгрузкой необходимо очистить каталог назначения, то требуется установить переменную среды V8_EXT_EDT_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

Выполняет проверку проекта 1C:Enterprise Development Tools (EDT) (ring edt 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%"

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published