утилита автоматизация базовых операций разработчика 1С
Clone or download
abirambul and artbear Добавлена команда копирования пользователей хранилища #261 (#263)
* Добавлена команда копирования пользователей хранилища #261

* Исправил неверное обращение к переменным копии
Latest commit 72114a1 Oct 30, 2018
Permalink
Failed to load latest commit information.
.vscode Удалил устаревший файл команд VSC Jan 27, 2018
build Добавил пустой каталог для проекта. Apr 18, 2016
epf * Если расширение не найдено по GUID, будет вызвано ислючение. Oct 18, 2017
examples Убрал упоминание о --ibname из json-файлов и readme Aug 9, 2017
features Управление выводом отладочной информации в отдельный лог-файл, без по… Aug 25, 2018
src Добавлена команда копирования пользователей хранилища #261 (#263) Oct 30, 2018
tasks Порт сборки/разборки внешних обработок с add (#226) May 30, 2018
tests/fixtures Убрал использование $schema для решения проблемы зависания прогона фич Apr 23, 2018
tools Избавился от кода, пересенного в основные команды Aug 25, 2018
.gitattributes merge develop Jan 20, 2017
.gitignore Добавил служебные файлы oscript в игнор #246 Aug 1, 2018
Jenkinsfile Попытка решения падения сборки #201 Jan 24, 2018
LICENSE Initial commit Apr 18, 2016
README.md Добавил ссылки на ADD Jul 16, 2018
behavior-schema.json исправил наименование схемы Apr 15, 2018
packagedef Увеличил зависимость от правильной версии asserts Sep 21, 2018
sonar-project.properties Добавил шаг прогона bdd-фич для CI Apr 1, 2017
vanessa-runner-schema.json Убрал упоминание о --ibname из json-файлов и readme Aug 9, 2017
xunit-schema.json Использую последнюю версию шаблона Apr 15, 2018

README.md

Автоматизация повседневных операций 1С разработчика

Gitter Build Status SonarQube Tech Debt

Описание

Библиотека проекта oscript.io для автоматизации различных операции для работы с cf/cfe/epf файлами и простой запуск сценариев поведения (BDD) и тестов из фреймворка Vanessa-ADD.

Предназначена для организации разработки 1С в режиме, когда работа в git идет напрямую с исходниками или работаем через хранилище 1С.

Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборки CI-CD

Установка

используйте пакетный менеджер opm из стандартной поставки дистрибутива oscript.io

opm install vanessa-runner

при установке будет создан исполняемый файл runner в каталоге bin интерпретатора oscript.

После чего доступно выполнение команд через командную строку runner <имя команды>

Использование

Ключ help покажет справку по параметрам.

runner help

или внутри батника (ВАЖНО) через call

call runner help

Основной принцип - запустили bat файл с настроенными командами и получили результат.

Сборка обработок и конфигураций

Для сборки обработок необходимо иметь установленный oscript в переменной PATH и платформу выше 8.3.8

В командной строке нужно перейти в каталог с проектом и выполнить tools\compile_epf.bat, по окончанию в каталоге build\epf должны появиться обработки. Вся разработка в конфигураторе делается в каталоге build, по окончанию доработок запускаем tools\decompile_epf.bat

Обязательно наличие установленного v8unpack версии не ниже 3.0.38 в переменной PATH. Установку можно взять https://github.com/dmpas/v8unpack#build

Примеры настройки и вызова

1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ

1с-init.cmd :

@rem Полная инициализация из репозитария, обновление в режиме Предприятия и начальное заполнение ИБ ./build/ibservice

@rem Пример запуска 1с-init.cmd storage-user storage-password

@chcp 65001

@set RUNNER_IBNAME=/F./build/ibservice

@call runner init-dev --storage --storage-name http:/repo-1c --storage-user %1 --storage-pwd %2

@call runner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\build\out\ЗакрытьПредприятие.epf

@call runner vanessa --settings tools/vrunner.first.json

@rem Если убрать комментарий из последней строки, тогда можно выполнять полный прогон bdd-фич
@rem @call runner vanessa --settings tools/vrunner.json

2. Вызов проверки поведения через Vanessa-ADD

  • запуск runner vanessa --settings tools/vrunner.json

    • или внутри батника
      • call runner vanessa --settings tools/vrunner.json
  • vrunner.json:

{
    "default": {
        "--ibconnection": "/F./build/ib",
        "--db-user": "Администратор",
        "--db-pwd": "",
        "--ordinaryapp": "0"
    },
    "vanessa": {
        "--vanessasettings": "./tools/VBParams.json",
        "--workspace": ".",
        "--additional": "/DisplayAllFunctions /L ru"
    }
}
  • VBParams.json
{
    "ВыполнитьСценарии": true,
    "ЗавершитьРаботуСистемы": true,
    "ЗакрытьTestClientПослеЗапускаСценариев": true,
    "КаталогФич": "$workspaceRoot/features/01-СистемаУправления",
    "СписокТеговИсключение": [
        "IgnoreOnCIMainBuild",
        "FirstStart",
        "Draft"
    ],
    "КаталогиБиблиотек": [
        "./features/Libraries"
    ],
    "ДелатьОтчетВФорматеАллюр": true,
    "КаталогOutputAllureБазовый": "$workspaceRoot/build/out/allure",
    "ДелатьОтчетВФорматеCucumberJson": true,
    "КаталогOutputCucumberJson": "$workspaceRoot/build/out/cucumber",
    "ВыгружатьСтатусВыполненияСценариевВФайл": true,
    "ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев": "$workspaceRoot/build/out/vbStatus.log",
    "ДелатьЛогВыполненияСценариевВТекстовыйФайл": true,
    "ИмяФайлаЛогВыполненияСценариев": "$workspaceRoot/build/out/vbOnline.log"
}

3. Переопределение аргументов запуска

В случае необходимости переопределения параметров запуска используется схема приоритетов.

Приоритет в порядке возрастания (от минимального до максимального приоритета)

  • env.json(в корне проекта)
  • --settings ../env.json(указание файла настроек вручную)
  • RUNNER_* (из переменных окружения)
  • --* (ключи командной строки)

Описание:

  • На первоначальном этапе читаются настройки из файла настроек, указанного в ключе команды --settings tools/vrunner.json
  • Потом, если настройка есть в переменной окружения, тогда берем из еe.
  • Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки.

Например:

Переопределение переменной окружения:

Установка значения.

  1. Допустим, в файле vrunner.json указана настройка

    "--db-user":"Администратор"

    а нам для определенного случая надо переопределить имя пользователя, тогда можно установить переменную: set RUNNER_DBUSER=Иванов и в данный параметр будет передано значение Иванов

  2. Очистка значения после установки

    set RUNNER_DBUSER=Иванов
    set RUNNER_DBUSER=

    в данном случаи установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть.

  3. Установка пустого значения:

    set RUNNER_DBUSER=""
    set RUNNER_DBUSER=''

    Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр --db-user будет установлена пустая строка.

  4. Переопределение через параметры командной строки.

    Любое указание параметра в командной строке имеет наивысший приоритет.

Шаблонные переменные

При указании значений параметров внутри строки с параметром можно использовать шаблонные переменные. Список таких переменных:

  • workspaceRoot - означает каталог текущего проекта
  • runnerRoot - означает каталог установки vanessa-runner
  • addRoot - означает каталог установки библиотеки ADD

Вывод отладочной информации

Управление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos.

Основной лог vanessa-runner имеет название oscript.app.vanessa-runner.

Примеры

Включение всех отладочных логов:

rem только для logos версии >=0.6
set LOGOS_CONFIG=logger.rootLogger=DEBUG

call vrunner <параметры запуска>

Если пишет, что неправильные параметры командной строки:

set LOGOS_CONFIG=logger.oscript.lib.cmdline=DEBUG
call vrunner <параметры запуска>

Включит отладочный лог только для библиотеки cmdline, которая анализирует параметры командной строки.

Дополнительные обработки для режима 1С:Предприятие

В папке epf есть несколько обработок, позволяющих упростить развертывание/тестирование для конфигураций, основанных на БСП.

  • Основной пример (см. ниже пример вызова) - это передача через параметры /C команды "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы" и одновременная передача через /Execute"ЗакрытьПредприятие.epf".

    • При запуске с такими ключами подключается обработчик ожидания, который проверяет наличие формы с заголовком обновления и при окончании обновления завершает 1С:Предприятие. Данное действие необходимо для полного обновления информационной базы 1С:Предприятия, пока действует блокировка на фоновые задачи и запуск пользователей.
  • ЗагрузитьРасширение позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения.

  • ЗагрузитьВнешниеОбработки позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям.