Coder Social home page Coder Social logo

arkuznetsov / yard Goto Github PK

View Code? Open in Web Editor NEW
69.0 7.0 29.0 470 KB

Загрузка и обработка релизов конфигураций 1С

License: Mozilla Public License 2.0

1C Enterprise 100.00%
1c 1c-enterprise bsl http onescript oscript hacktoberfest

yard's Introduction

GitHub release GitHub license GitHub Releases GitHub All Releases

Build Status Quality Gate Coverage Tech debt

Checked by Silver Bulleters SonarQube BSL plugin

Yet another release downloader (YARD)

Приложение oscript для загрузки и обработки релизов конфигураций 1С.

Требуются следующие библиотеки и инструменты:

Важно 1: Архиватор 7-zip должен поддерживать распаковку rar-архивов. Для этого на linux нужно поставить пакет с поддержкой такого режима. Например, на Ubuntu:

apt-get install p7zip-rar p7zip-full

Важно 2: Для ковентации в формат ЕДТ необходима установленная ЕДТ и ring

Общие сведения

  • выполняет загрузку приложений с сайта релизов 1С

  • для релизов конфигураций доступны следующие возможности

    • загрузка указанных версий конфигурации
    • распаковка архива конфигурации (требуется 7-zip)
    • распаковка файлов шаблона конфигурации в указанный каталог (из формата EFD)
    • последовательная сборка CF-фалов конфигурации из CFU-файлов обновлений (требуется начальный CF)
    • Конвертация в формат ЕДТ (при необходимости)
    • последовательная выгрузка версий конфигурации в формате XML в указанный репозитарий GIT
  • Реализованы 2 варианта работы:

    • запуск отдельных команд для каждого этапа обработки релизов конфигураций
    • экспериментальный пакетный режим с конвейерной обработкой данных (pipeline), т.е. каждая порция данных, полученная в текущей обработке передается в указанный(-ные) в настройках обработчик(-и) для последующе обработки
  • настройки пакетного режима описываются в формате JSON (см. Файл настроек)

Команды

  • process (p) - выполняет обработку данных настройкам из файла (.json)

    • --work-dir - путь к рабочему каталогу (по умолчанию: текущий каталог)
    • <Путь> - путь к файлу настроек (по умолчанию ./yardsettings.json)

    Пользователя и пароль портала 1С можно передать с помощью переменных среды:

    • YARD_RELEASES_USER - пользователь портала 1С;
    • YARD_RELEASES_PWD - пароль пользователя портала 1С.

Пример:

yard process --work-dir "c:\tmp" ".\examples\releases2templates.json"

см. Файл настроек

  • releases (r) - работа с релизами с сайта 1С
    • --user - пользователь портала 1С

    • --pwd - пароль пользователя портала 1С

    • list (l) - получение списка приложений и версий с портала 1С

      • --app-filter - фильтр приложений по имени (регулярное выражение)
      • --version-filter - фильтр версий по номеру (регулярное выражение)
      • --version-start-date - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату)
      • --version-end-date - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату)
      • --output-file - путь к фалу (json) для сохранения списка приложений и версий

Пример:

yard releases --user "user" --pwd "pwd" list --app-filter "Библиотека стандартных подсистем.*3\.1" --version-filter 3\.1.* --version-start-date "01.01.2019" --output-file ".\tmp\releases.json"
  • get (g) - загрузка указанных версий, указанных приложений с портала 1С
    • --app-filter - фильтр приложений по имени (регулярное выражение)
    • --version-filter - фильтр версий по номеру (регулярное выражение)
    • --version-start-date - фильтр по начальной дате версии (формат: dd.MM.yyyy, включая дату)
    • --version-end-date - фильтр по последней дате версии (формат: dd.MM.yyyy, включая дату)
    • --distr-filter - фильтр заголовков ссылок на скачивание дистрибутива если не указан, то будет выполнена проверка наличия ссылки ""Полный дистрибутив"", затем ""Дистрибутив обновления""
    • --path - каталог для загрузки релизов 1С
    • --from-last-version - флаг загрузки версий с номером старше последней версии в каталоге для загрузки (проверяются файлы description.json)
    • --last-version-description - путь к файлу description.json с описанием последней загруженной версией
    • --download-existing - флаг принудительной загрузки ранее загруженных версий в каталоге для загрузки (проверяются файлы description.json)
    • --download-limit - ограничение количества загружаемых версий за 1 запуск
    • --download-only - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
    • --extract - флаг распаковки загруженного архива
    • --extract-path - каталог для распаковки загруженного архива
    • --extract-dir - регулярное выражение, отбора каталогов в архиве EFD для распаковки
    • --extract-files - список файлов для распаковки из архива дистрибутива, разделенный "|"
    • --extract-existing - флаг принудительной распаковки ранее распакованных дистрибутивов версий в каталоге для распаковки (проверяются файлы description.json)
    • --delete - флаг удаления загруженного архива после распаковки

Пример:

yard releases --user "user" --pwd "pwd" get --app-filter "Библиотека стандартных подсистем.*3\.1" --version-filter 3\.1.* --version-start-date "01.01.2019" --path ".\tmp\distr" --extract --extract-path ".\tmp\tmplts"
  • extract (e) - распаковка шаблона конфигурации 1С из EFD-файла дистрибутива конфигурации 1С
    • --path - путь к дистрибутиву конфигурации 1С
    • --extract-path - каталог для распаковки загруженного архива
    • --extract-dir - регулярное выражение, отбора каталогов в архиве EFD для распаковки
    • --extract-files - список файлов для распаковки из архива дистрибутива, разделенный "|"
    • --extract-existing - флаг принудительной распаковки ранее распакованных дистрибутивов в каталоге для распаковки (проверяются файлы description.json)
    • --app-name - имя конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
    • --app-id - идентификатор конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
    • --app-version - версия конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)

Пример:

yard unpack --app-name "Библиотека стандартных подсистем, редакция 3.1" --app-id "SSL31" --app-version "3.1.2.332" --path ".\tmp\distr\SSL31\3.1.2.332" --extract-path ".\tmp\tmplts"
  • extract-all (ea) - для всех дистрибутивов в каталоге выполняет распаковку шаблонов конфигураций 1С из EFD-файлов
    • --path - путь к каталогу содержащему дистрибутивы конфигурации для распаковки
    • --extract-path - каталог для распаковки шаблонов конфигурации
    • --extract-dir - регулярное выражение, отбора каталогов в архиве EFD для распаковки
    • --extract-files - список файлов для распаковки из архива дистрибутива, разделенный "|"
    • --extract-existing - флаг принудительной распаковки ранее распакованных дистрибутивов в каталоге для распаковки (проверяются файлы description.json)

Пример:

yard unpack --app-name "Библиотека стандартных подсистем, редакция 3.1" --app-id "SSL31" --app-version "3.1.2.332" --path ".\tmp\distr\SSL31\3.1.2.332" --extract-path ".\tmp\tmplts"
  • build-cf (b) - выполняет обновление конфигурации (CF) файлом обновления (CFU) и помещает результат в новый файл CF
    • --cf-path - путь к файлу конфигурации (CF) предыдущей версии
    • --cfu-path - путь к файлу обновления (CFU) новой версии
    • --ibconnection - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

Пример:

yard build-cf --cf-path ".\tmp\tmplts\1c\AccountingCorp\3_0_64_54\1cv8.cf" --cfu-path ".\tmp\tmplts\1c\AccountingCorp\3_0_66_53\1cv8.cfu" --ibconnection "/SMyServer\TMP_BASE"
  • build-all (ba) - для всех файлов обновления (CFU) в каталоге ищет доступные для обновления файлы(CF) и выполняет обновление
    • --path - путь к каталогу содержащему версии конфигурации для формирования CF-файлов
    • --ibconnection - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

Пример:

yard build-all --path ".\tmp\tmplts\1c\AccountingCorp" --ibconnection "/SMyServer\TMP_BASE"
  • upload-cf (ucf) - выполняет выгрузку конфигурации 1С из файла конфигурации (CF) в репозитарий git
    • --cf-path - путь к файлу конфигурации (CF) для выгрузки
    • --git-path - путь к репозитарию git
    • --git-branch - имя ветки git в которую будет выполняться выгрузка (по умолчанию: base1c)
    • --git-author - имя автора коммита в git (по умолчанию: 1c)
    • --git-author-email - почта автора коммита в git (по умолчанию: [email protected])
    • --git-commit-date - дата коммита в git в формате POSIX (формат: yyyy-MM-dd hh:mm:ss, по умолчанию: <ТекущаяУниверсальнаяДата>)
    • --git-commit-message - сообщение коммита в git
    • --ibconnection - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

Пример:

yard upload-cf --cf-path ".\tmp\tmplts\SSL31\3.1.1.91\1cv8.cf" --git-path ".\tmp\repo\SSL31" --git-commit-message "Тест выгрузки БСП 3.1.1.91" --ibconnection "/SMyServer\TMP_BASE"
  • upload-all (ua) - выполняет выгрузку всех версий конфигурации 1С в каталоге в репозитарий git
    • --path - путь к каталогу содержащему версии конфигурации для выгрузки в git
    • _--cf-name - имя файла конфигурации (по умолчанию: 1cv8.cf)
    • --git-path - путь к репозитарию git
    • --git-author - имя автора коммита в git (по умолчанию: 1c)
    • --git-author-email - почта автора коммита в git (по умолчанию: [email protected])
    • --ibconnection - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

Пример:

yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tmp\repo\SSL31" --ibconnection "/SMyServer\TMP_BASE"

Управляющие обработки

МенеджерОбработкиДанных.os

Управляющая обработка-менеджер, читает настройки, запускает и управляет обработкой данных.

yard.os

Обработка для интерактивного выполнения команд обработки релизов.

Стандартный программный интерфейс обработки

Функция ОписаниеПараметров() - возвращает структуру с описанием параметров обработки

Функция МенеджерОбработкиДанных() - возвращает ссылку на вызывающую/управляющую обработку - менеджер обработки данных

Процедура УстановитьМенеджерОбработкиДанных(Знач НовыйМенеджерОбработкиДанных) - устанавливает ссылку на вызывающую/управляющую обработку - менеджер обработки данных

Функция Идентификатор() - возвращает идентификатор обработки, установленный при инициализации в менеджере обработки данных

Процедура УстановитьИдентификатор(Знач НовыйИдентификатор) - устанавливает идентификатор обработки, вызывается при инициализации в менеджере обработки данных

Функция ПараметрыОбработкиДанных() - возвращает значения параметров обработки данных

Процедура УстановитьПараметрыОбработкиДанных(Знач НовыеПараметры) - устанавливает значения параметров обработки данных

Функция ПараметрОбработкиДанных(Знач ИмяПараметра) - возвращает значение указанного параметра обработки данных

Процедура УстановитьПараметрОбработкиДанных(Знач ИмяПараметра, Знач Значение) - устанавливает значение указанного параметра обработки

Процедура УстановитьДанные(Знач ВходящиеДанные) - устанавливает данные для обработки

Процедура ОбработатьДанные() - выполняет обработку данных

Функция РезультатОбработки() - возвращает результаты обработки данных

Процедура ЗавершениеОбработкиДанных() - выполняет действия при окончании обработки данных и оповещает обработку-менеджер о завершении обработки данных

Обработчики данных

СписокРелизов1С.os

Получает с сайта 1С список релизов и выводит в консоль или в указанный файл.

Параметры

  • ИмяПользователя - Имя пользователя сайта релизов 1С
  • ПарольПользователя - Пароль пользователя сайта релизов 1С
  • ВремяОжиданияОтвета - Время ожидания ответа от внешнего ресурса (HTTP) в секундах
  • ФильтрПриложений - Фильтр имен приложений
  • ФильтрВерсий - Фильтр номеров версий
  • ФильтрВерсийНачинаяСДаты - Фильтр по начальной дате версии (включая)
  • ФильтрВерсийДоДаты - Фильтр по последней дате версии (включая)
  • ПутьКФайлуДляСохранения - путь к фалу (json) для сохранения списка приложений и версий

ЗагрузчикРелизов1С.os

Выполняет загрузку указанных приложений и версий с сайта 1С и, при необходимости, распаковывает файлы шаблона конфигурации 1С.

Параметры

  • ИмяПользователя - Имя пользователя сайта релизов 1С
  • ПарольПользователя - Пароль пользователя сайта релизов 1С
  • ВремяОжиданияОтвета - Время ожидания ответа от внешнего ресурса (HTTP) в секундах
  • ФильтрПриложений - Фильтр имен приложений
  • ФильтрВерсий - Фильтр номеров версий
  • ФильтрВерсийНачинаяСДаты - Фильтр по начальной дате версии (включая)
  • ФильтрВерсийДоДаты - Фильтр по последней дате версии (включая)
  • ФильтрДистрибутива - фильтр заголовков ссылок на скачивание дистрибутива если не указан, то будет выполнена проверка наличия ссылки "Полный дистрибутив", затем "Дистрибутив обновления"
  • ПолучатьБетаВерсии - Истина - будут получены ознакомительные версии
  • КаталогДляСохранения - каталог для загрузки релизов 1С
  • НачатьСПоследнейВерсии - Истина - будут загружены релизы с версией старше последней найденной в каталоге для загрузки (проверяются файлы description.json) Ложь - будут загружены все релизы с учетом других настроек
  • ОписаниеПоследнейВерсии - путь к файлу description.json с описанием последней загруженной версии Ложь - будут загружены все релизы с учетом других настроек
  • ЗагружатьСуществующие - Истина - будут загружены все найденные релизы независимо от существующих в каталоге для загрузки Ложь - будут загружены только отсутствующие в каталоге для загрузки релизы (проверяются файлы description.json)
  • ОграничениеКоличества - ограничение количества загружаемых за 1 раз версий
  • ТолькоСкачать - Истина - только скачать дистрибутив с сайта и не выполнять дальнейшую обработку
  • РаспаковыватьEFD - Истина - если загруженный архив содержит упакованный шаблонконфигурации (содержит файл 1cv8.efd), то он будет распакован
  • КаталогДляРаспаковкиEFD - каталог для распаковки шаблона конфигурации
  • КаталогВАрхивеДляРаспаковкиEFD - регулярное выражение, отбора каталогов в архиве EFD для распаковки
  • ФайлыДляРаспаковкиEFD - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы
  • РаспаковыватьСуществующие - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json)
  • УдалитьПослеРаспаковкиEFD - Истина - после рапаковки загруженный архив будет удален

РаспаковщикРелизов1С.os

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

Параметры

  • Приложение_Имя - имя конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • Приложение_Ид - идентификатор конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • Приложение_Версия - версия конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • ПутьКДистрибутиву - путь к дистрибутиву конфигурации 1С
  • КаталогДляРаспаковкиEFD - каталог для распаковки шаблона конфигурации
  • КаталогВАрхивеДляРаспаковкиEFD - регулярное выражение, отбора каталогов в архиве EFD для распаковки
  • ФайлыДляРаспаковкиEFD - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы
  • РаспаковыватьСуществующие - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json)

РаспаковщикКаталогаРелизов1С.os

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

Параметры

  • Приложение_Имя - имя конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • Приложение_Ид - идентификатор конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • Приложение_Версия - версия конфигурации 1С (если не указано, значение будет считано из файла 1cv8.mft дистрибутива)
  • ПутьКДистрибутиву - путь к дистрибутиву конфигурации 1С
  • КаталогДляРаспаковкиEFD - каталог для распаковки шаблона конфигурации
  • КаталогВАрхивеДляРаспаковкиEFD - регулярное выражение, отбора каталогов в архиве EFD для распаковки
  • ФайлыДляРаспаковкиEFD - список файлов для распаковки из архива EFD дистрибутива конфигурации, если не указан, то распаковываются все файлы
  • РаспаковыватьСуществующие - Истина - будут распакованы все найденные дистрибутивы независимо от существующих в каталоге для распаковки Ложь - будут оаспакованы только отсутствующие в каталоге для распаковки дистрибутивы (проверяются файлы description.json)

СборщикКонфигураций1С.os

Выполняет обновление конфигурации (CF) файлом обновления (CFU) и помещает результат в новый файл CF.

Параметры

  • ПутьККонфигурации - путь к файлу конфигурации (CF) предыдущей версии
  • ПутьКОбновлению - путь к файлу обновления (CFU) новой версии
  • База_СтрокаСоединения - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

СборщикКонфигураций1СВКаталоге.os

Для всех файлов обновления (CFU) в каталоге ищет доступные для обновления файлы(CF) и выполняет обновление.

Параметры

  • ПутьККаталогуКонфигураций - путь к каталогу содержащему версии конфигурации для формирования CF-файлов
  • База_СтрокаСоединения - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)

ВыгрузкаКонфигурацииВГит.os

Выполняет выгрузку конфигурации 1С из файла конфигурации (CF) в репозитарий git.

Параметры

  • ПутьККонфигурации - путь к файлу конфигурации (CF) для выгрузки
  • РепозитарийГит - путь к репозитарию git
  • ИмяВеткиГит - имя ветки git в которую будет выполняться выгрузка (по умолчанию: base1c)
  • ИмяАвтора - имя автора коммита в git (по умолчанию: 1c)
  • ПочтаАвтора - почта автора коммита в git (по умолчанию: [email protected])
  • ДатаКоммита - дата коммита в git в формате POSIX
  • СообщениеКоммита - сообщение коммита в git
  • База_СтрокаСоединения - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)
  • Конвертировать в формат ЕДТ - флаг конвертации в формат ЕДТ
  • Относительный путь к исходникам - Относительный путь внутри репозитории к исходникам проекта, по умолчанию (src/cf)

ВыгрузкаКаталогаКонфигурацииВГит.os

Выполняет выгрузку конфигурации 1С из файла конфигурации (CF) в репозитарий git.

Параметры

  • ПутьККонфигурации - путь к каталогу содержащему версии конфигурации для выгрузки в git
  • ИмяФайлаКонфигурации - имя файла конфигурации (по умолчанию: "1Cv8.cf")
  • РепозитарийГит - путь к репозитарию git
  • ИмяАвтора - имя автора коммита в git (по умолчанию: 1c)
  • ПочтаАвтора - почта автора коммита в git (по умолчанию: [email protected])
  • База_СтрокаСоединения - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ)
  • Конвертировать в формат ЕДТ - флаг конвертации в формат ЕДТ
  • Относительный путь к исходникам - Относительный путь внутри репозитории к исходникам проекта, по умолчанию (src/cf)

Файл настроек (JSON)

Структура файла настроек

Файл настроек описывает последовательность вызова обработчиков для обработки данных. обработчик = обработка 1С реализующая вышеуказанный API.

    |-> Описание обработчика
    |      |- ИдОбработчика     - строковый идентификатор обработчика (необязательный)
    |      |- ИмяОбработки      - имя класса обработчика
    |      |- ПутьКОбработке    - путь к oscript-файлу класса обработчика
    |      |- Параметры         - структура параметров обработки
    |      |      |- <просто параметр>                 - параметр простого типа
    |      |      |- <параметр из данных обработчика>  - параметр вычисляемый обработчиком
    |      |      |      |- ИдОбработчика              - идентификатор обработчика из которого будет получен параметр
    |      |      |      |- ФункцияПолученияЗначения   - имя функции получения значения параметра (по умолчанию: "ПолучитьРезультат")
    |      |- Обработчики      - массив обработчиков данных полученных на текущем уровне
    |             |- <Описание обработчика>*           - структура, аналогичная данной
    |____________________|

Доступные подстановки

  • $settingsDir - каталог файла настроек
  • $yardDir - каталог запуска скрипта
  • $workDir - указанный при запуске рабочий каталог (по умолчанию: каталог файла настроек)

Пример файла настроек

Пример файла настроек чтения словарей журнала регистрации

{
    // имя класса обработчика получения списка релизов
    "ИмяОбработки":"СписокРелизов1С",
    "Параметры":{
        "ИмяПользователя" : "user",
        "ПарольПользователя" : "password",
        "ВремяОжиданияОтвета" : 30,
        // Регулярки для фильтра приложений/конфигураций по имени
        "ФильтрПриложений" : ["Библиотека стандартных подсистем.*3\\.1"],
        // Регулярки для фильтра версий по номеру
        "ФильтрВерсий" : ["3\\.1\\.2.*"],
        "ФильтрВерсийНачинаяСДаты" : "2020-01-01T00:00:00",
    },
    "Обработчики":[
        {
            // имя класса обработчика загрузки релизов
            "ИмяОбработки":"ЗагрузчикРелизов1С",
            "ИдОбработчика":"ЗагрузчикБСП",
            "Параметры":{
                "ИмяПользователя" : "user",
                "ПарольПользователя" : "password",
                "КаталогДляСохранения" : "$workDir\\tmp\\distr",
                // флаг распаковки шаблона
                "РаспаковыватьEFD" : true,
                // путь распаковки шаблона конфигурации
                "КаталогДляРаспаковкиEFD" : "$workDir\\tmp\\tmplts"
            }
        }
    ]
}

Больше примеров расположены в каталоге examples.

yard's People

Contributors

666bounty999 avatar arkuznetsov avatar daabramov avatar iscarimet avatar mors1eska avatar otymko avatar prodoomman avatar segate-ekb avatar senja006 avatar shootnick-tm avatar stop-time avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

yard's Issues

Код переадресации не соответствует ожидаемому!

Что-то у меня не работает.

PS G:\git\releases> yard -v releases --user "мойлогин" --pwd "мойпароль" list
ИНФОРМАЦИЯ - [СписокРелизов1С]: Инициализирован обработчик
ИНФОРМАЦИЯ - [ЗагрузчикРелизов1С]: Инициализирован обработчик
ИНФОРМАЦИЯ - [РаспаковщикРелизов1С]: Инициализирован обработчик
ИНФОРМАЦИЯ - [РаспаковщикКаталогаРелизов1С]: Инициализирован обработчик
ИНФОРМАЦИЯ - [СборщикКонфигураций1С]: Инициализирован обработчик
ИНФОРМАЦИЯ - [СборщикКонфигураций1СВКаталоге]: Инициализирован обработчик
ИНФОРМАЦИЯ - [ВыгрузкаКонфигурацииВГит]: Инициализирован обработчик
ИНФОРМАЦИЯ - [ВыгрузкаКаталогаКонфигурацииВГит]: Инициализирован обработчик
ОТЛАДКА - [oscript.app.yard] - Авторизация: Получен ответ от ресурса "https://releases.1c.ru//total", переадресация -> ""
ОТЛАДКА - [oscript.app.yard] - Авторизация: Получена строка регистрации от ресурса "https://login.1c.ru/": "inviteCode=&username=мойлогин&password=мойпароль&execution=&_eventId=submit&geolocation=&submit=Войти&rememberMe=on"
КРИТИЧНАЯОШИБКА - [oscript.app.yard] - {Модуль C:\Program Files\OneScript\lib\asserts\src\xunit-asserts.os / Ошибка в строке: 30 / Сравниваемые значения (403; 302) не равны, а хотели, чтобы были равны.
Код переадресации не соответствует ожидаемому!}

Не связано ли это с добавлением защиты от DDOS-атак на серверах 1с?

Выгрузка в гит копирует не все нужные для EDT файлы

МаскаПоискаФайлов = "src|DT-INF";

Маска поиска файлов исключает файл ".project", по которому EDT находит в папке проект конфигурации.
Нужно добавить его в маску.

Или можно несколькими строками ранее заменить "--project-name tmp" на "--project <КаталогВФорматеЕДТ>".
Таким образом можно создавать проект прямо в папке гита, обойдясь без копирования.

Добавить флаг "СнятьСПоддержки"

При использовании YARD для автоматического обновления ветки с типовой конфигурацией возникает потребность снимать эту конфигурацию с поддержки, потому что на проекте конфигурация была изначально снята с поддержки.

Это можно сделать на разных стадиях работы инструмента. Я сейчас вижу безболезненный вариант при конвертации в формат EDT. Достаточно после конвертации удалить файл "ParentConfigurations.bin" в папке "Configuration" исходников.

Авторизация releases.1c.ru через переменные среды

При использовании конфигурационного файла нет возможности передать логин / пароль от сайта releases.1c.ru.

Предложение добавить две переменных среды:

  • YARD_RELEASES_USER
  • YARD_RELEASES_PWD

И прокинуть их в обработчики (модули):

  • ЗагрузчикРелизов
  • СписокРелизов

Сборка в exe

Неплохо бы сделать сделать сборку в exe.

Подсмотреть можно в gitsync

Защита от DDOS-атак при загрузке релизов

Получаю ошибку при попытке загрузки релизов:

ОТЛАДКА - [oscript.app.yard] - Авторизация: Получена строка регистрации от ресурса "https://login.1c.ru": "inviteCode=&username=xxxx&password=yyyy&execution=&_eventId=submit&geolocation=&submit=Войти&rememberMe=on"
КРИТИЧНАЯОШИБКА - [oscript.app.yard] - {Модуль C:\Program Files (x86)\OneScript\lib\asserts\src\xunit-asserts.os / Ошибка в строке: 30 / Сравниваемые значения (403; 302) не равны, а хотели, чтобы были равны.
Код переадресации не соответствует ожидаемому!}

Проверил получаемый ответ от сервера - он содержит страницу с текстом "Проверка браузера перед переходом на сайт" и следующий скрипт:

<script type="text/javascript">var lang=navigator.language,host=window.location.hostname;"ru"==lang||"ru-RU"==lang?(document.getElementById("title").innerHTML="Проверка браузера перед переходом на сайт "+host,document.getElementById("description").innerHTML="Это автоматический процесс. Вы будете перенаправлены на запрашиваемый ресурс в ближайшее время.
Пожалуйста ожидайте...",document.getElementById("link").innerHTML="Защита от DDoS-атак DDos-Guard"):(document.getElementById("title").innerHTML="Checking your browser accessing "+host,document.getElementById("description").innerHTML="This process is automatic. Your browser will redirect to your requested content shortly.
Please allow up to 5 seconds...",document.getElementById("link").innerHTML="DDoS protection by DDos-Guard");</script>

Ошибка при попытке загрузки релиза

vesion 1.9.5
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\yard\src\Классы\ЗагрузчикРелизов1С.os / Ошибка в строке: 1043 / Свойство объекта не обнаружено (Идентификатор)}

Выгрузка в Git не может быть выполнена когда установлено несколько модулей EDT для ring

ПараметрыЗапускаЕДТ.Добавить("edt workspace import");

Текст ошибки:
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\yard\src\Классы\ВыгрузкаКонфигурацииВГит.os / Ошибка в строке: 665 / [ERROR ] Неправильный вызов команды (для справки см. "ring help"): Specify version for module "edt". Available versions: 2021.2.12, 2021.3.0.
}

ввод: ring help modules
вывод: Доступные модули:

[email protected]:x86_64 - 1C:Enterprise Development Tools Ring Cli
[email protected]:x86_64 - 1C:Enterprise Development Tools Ring Cli
[email protected]:x86_64 - Утилита для работы с лицензиями.

Зачем-то ожидает код переадресации

При скачивании релиза (см. конфиг из EvilBeaver/OneScript#1153) падает с ошибкой

КРИТИЧНАЯОШИБКА - {Модуль C:\Users\ovsia\AppData\Local\ovm\current\lib\asserts\src\xunit-asserts.os / Ошибка в строке: 30 / Сравниваемые значения (200; 302) не равны, а хотели, чтобы были равны.
Код переадресации не соответствует ожидаемому!

То есть, запрос получил от 1С 200, а yard проверяет на 302. Неясно зачем.

// Модуль ОбозревательСайта1С
Если ОтветПроверка.КодСостояния = КодОшибкиАвторизации Тогда
    СообщениеОбОшибке = СтрШаблон("Ошибка авторизации на сайте %1/%2 (пользователь: %3)",
        ПараметрыПриложения.СервисАвторизации(),
        ЗапросОбработка.АдресРесурса,
        Имя);
КонецЕсли;

Разбор исходников в формате EDT

Очень хочется возможности формирования истории релизов в формате EDT в нужную ветку. Чтобы история релизов в гит формировалась как-то так:
image

Это нужно для обновления доработанной конфигурации на новые релизы в EDT.

Неинформативная ошибка, если неправильно указал логин-пароль

Сейчас, если неправильно указал логин или пароль от ИТС, скрипт выдает ошибку:
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\asserts\src\xunit-asserts.os / Ошибка в строке: 30 / Сравниваемые значения (401; 302) не равны, а хотели, чтобы были равны. Код переадресации не соответствует ожидаемому!}
По коду 401 я понимаю, что не прошла авторизация, но это неудобно.
Хорошо было бы выдавать ошибку авторизации в человекочитаемом виде.

Игнорировать кавычки при задании переменных окружения (которые используются в regexp)

Не работает:

SET YARD_RELEASES_APP_FILTER="Библиотека стандартных подсистем.*3\.1"

Работает:

SET YARD_RELEASES_APP_FILTER=Библиотека стандартных подсистем.*3\.1

Список переменных для команды release get:

  • YARD_RELEASES_APP_FILTER
  • YARD_RELEASES_VERSION_FILTER

Либо добавить информацию о кавычках в readme

Реализовать возможность выбирать разделитель при сохранении шаблонов ("." / "_")

Добрый день!
Прошу рассмотреть возможность задавать разделитель при именовании папки шаблона.
Например, штатно 1С распаковывается в папку с " _ " в наименовании, например, "3_0_151_27", а yard по умолчанию делает "3.0.151.27", что неудобно, так как некоторые сторонние программы, используемые нами, завязаны на стандартное имя папки шаблона и изменить это мы не можем. Приходится копировать сделанный yard-ом шаблон и перебивать "." на " _ "

image

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

На странице скачивания платформы много вариантов - клиент, сервер, для Windows, для Linux, 64-бит и тд. Хорошо было бы отбирать и по такому варианту нужный для скачивания вариант

Ошибочный путь распаковки дистрибутивов

Добрый день. Обнаружил ошибку при распаковке дистрибутивов.

Пример команды yard.os ea --path=E:\xml\tmp1\distr\Money --extract-path E:\xml\tmp1\tmplts

В результате распаковка проходит по следующему пути:
ИНФОРМАЦИЯ - Записан файл E:\xml\tmp1\tmplts*2.0.41.34*\Money\2.0.41.34\1cv8.cfu

В каталоге для распаковки ошибочно создается подкаталог с номером релиза, затем в нем уже создается каталог с именем конфигурации и снова создается подкаталог с номером релиза.
И соответственно, если затем попытаться запустить сборку cf, она упадёт, так как по ожидаемому пути не обнаружит файлов cfu.

Ошибка воспроизводится как при использовании файла конфигурации, так и просто при запуске команды --extract-all

Могу оформить pull request с фиксом, там буквально 2 строки в классе распаковщика поправить надо.

Исключение при получении списка релизов "Бухгалтерии некоммерческой организации"

Конфиг файл примерно такой:

{
    "ИмяОбработки":"СписокРелизов1С",
    "Параметры":{
        "ИмяПользователя" : "",
        "ПарольПользователя" : "",
        "ФильтрПриложений" : ["Бухгалтерия некоммерческой организации"],
        "ПолучатьБетаВерсии": true,
        "ФильтрВерсийНачинаяСДаты" : "2024-03-01T00:00:00"
    }
}

При запуске yard происходит следующее:

ОТЛАДКА - Получена страница сайта "https://releases.1c.ru/version_files?nick=AccountingNPO&ver=3.0.149.2"
ОТЛАДКА - Авторизация: Получен ответ от ресурса "https://releases.1c.ru/version_file?nick=AccountingNPO&ver=3.0.149.2&path=AccountingNPO%5c3_0_149_2%5cAccountingNPO_3_0_149_2_setup1c.zip", Необходима авторизация
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\yard\src\Классы\ОбозревательСайта1С.os / Ошибка в строке: 596 / Авторизация: Ожидали что execution будет заполнен, но это не так!}

То есть yard пытается проверить ссылку на загрузку полного дистрибутива, но падает в исключение. Возможно потому что там требуется авторизация по СМС.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.