diff --git a/.gitignore b/.gitignore index 75d90ab..2a190e0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ exec.log ignore/** tests/common-fixtures/** tests.xml + +*.old diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 9677b0e..aecdd38 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,55 +1,52 @@ { - "version": "0.1.0", + "version": "2.0.0", "command": "oscript", - "isShellCommand": true, - "showOutput": "silent", "args": [ "-encoding=utf-8" ], "tasks": [ { - "taskName": "OneScript: compile", + "label": "OneScript: compile", + "type": "shell", + "command": "oscript", "args": [ + "-encoding=utf-8", "-compile", "${file}" ], - "echoCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "isBuildCommand": false + "problemMatcher": [] }, { - "taskName": "OneScript: check", + "label": "OneScript: check", + "type": "shell", + "command": "oscript", "args": [ + "-encoding=utf-8", "-check", "${file}" ], - "echoCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "isBuildCommand": false + "problemMatcher": [] }, { - "taskName": "OneScript: make", + "label": "OneScript: make", + "type": "shell", + "command": "oscript", "args": [ + "-encoding=utf-8", "-make", "${file}", "${fileBasename}.exe" ], - "echoCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "isBuildCommand": false + "problemMatcher": [] }, { - "taskName": "OneScript: run", + "label": "OneScript: run", + "type": "shell", + "command": "oscript", "args": [ + "-encoding=utf-8", "${file}" ], - "echoCommand": true, - "showOutput": "always", - "suppressTaskName": true, - "isBuildCommand": true, "problemMatcher": { "fileLocation": "absolute", "pattern": { @@ -58,7 +55,8 @@ "location": 2, "message": 3 } - } + }, + "group": "build" } ] } \ No newline at end of file diff --git a/LICENSE b/LICENSE index fe1311c..91810f9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2019 BIA Technologies, LLC +Copyright (c) 2019-2021 BIA Technologies, LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийEDT.os b/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийEDT.os index 0b62aac..eec8d20 100644 --- a/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийEDT.os +++ b/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийEDT.os @@ -203,6 +203,18 @@ КонецПроцедуры +// Записывает значение версии совместимости +// +// Параметры: +// Запись - ЗаписьXML - Поток записи +// Значение - Строка - Записываемое значение формата 8.3.10 +// +Процедура ВерсияСовместимости(Запись, Значение) Экспорт + + Запись.ЗаписатьТекст(XMLСтрока(Значение)); + +КонецПроцедуры + // Записывает логическое значение // // Параметры: diff --git a/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийКонфигуратор.os b/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийКонфигуратор.os index 4530052..538decf 100644 --- a/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийКонфигуратор.os +++ b/src/Внутренние/ГенераторОписаний/Модули/ГенераторОписанийКонфигуратор.os @@ -223,6 +223,46 @@ КонецПроцедуры + +// Записывает значение версии совместимости +// +// Параметры: +// Запись - ЗаписьXML - Поток записи +// Значение - Строка - Записываемое значение +// +Процедура ВерсияСовместимости(Запись, Значение) Экспорт + + Если НЕ ЗначениеЗаполнено(Значение) Тогда + + Возврат; + + КонецЕсли; + + Запись.ЗаписатьТекст(XMLСтрока(ВерсияСовместимостиСтрокой(Значение))); + + +КонецПроцедуры + +// Записывает значение версии совместимости +// +// Параметры: +// Запись - ЗаписьXML - Поток записи +// Значение - Строка - Записываемое значение +// +Функция ВерсияСовместимостиСтрокой(Значение) Экспорт + + НачалоСтроки = "Version"; // Version8_3_10 + + Если СтрНачинаетсяС(Значение, НачалоСтроки) Тогда + + Возврат Значение; + КонецЕсли; + + Версия = СтрРазделить(Значение, ".", Ложь); + Возврат СтрШаблон("%1%2_%3_%4", НачалоСтроки, Версия[0], Версия[1], Версия[2]); + +КонецФункции + // Записывает логическое значение // // Параметры: diff --git a/src/Внутренние/Макеты/СвойстваОбъектов.md b/src/Внутренние/Макеты/СвойстваОбъектов.md index b3fd1bf..c1d6e6b 100644 --- a/src/Внутренние/Макеты/СвойстваОбъектов.md +++ b/src/Внутренние/Макеты/СвойстваОбъектов.md @@ -81,10 +81,12 @@ ## Реквизиты Extension -| Наименование | Реквизит | МетодПреобразования | -| ------------ | ----------------------------- | ------------------- | -| ПрефиксИмен | NamePrefix | | -| Назначение | ConfigurationExtensionPurpose | | +| Наименование | Реквизит | МетодПреобразования | +| ----------------------------------------- | --------------------------------------- | ------------------- | +| РежимСовместимостиРасширенияКонфигурации | ConfigurationExtensionCompatibilityMode | ВерсияСовместимости | +| ПрефиксИмен | NamePrefix | | +| Назначение | ConfigurationExtensionPurpose | | + ## Реквизиты Subsystem diff --git a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеМодулей.os b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеМодулей.os index b4dbfce..50678a2 100644 --- a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеМодулей.os +++ b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеМодулей.os @@ -591,7 +591,7 @@ НомерСтрокиВозвращаемоеЗначение = Ит; Прервать; - ИначеЕсли СтрНачинаетсяС(СтрокаКомментария, "Пример") Тогда + ИначеЕсли СтрНачинаетсяС(СтрокаКомментария, "Примеры:") ИЛИ СтрНачинаетсяС(СтрокаКомментария, "Пример:") Тогда НомерСтрокиПример = Ит; Прервать; @@ -609,6 +609,8 @@ ИмяПараметра = Неопределено; ОписаниеПараметра = ""; ТипПараметра = ""; + Дочитывание = Ложь; + ПрошлаяСтрока = ""; Для Ит = НомерСтрокиПараметры + 1 По ПоследнийБлокКомментария.КонечнаяСтрока Цикл СтрокаКомментария = Файл.ПолучитьСтроку(Ит); @@ -618,17 +620,22 @@ НомерСтрокиВозвращаемоеЗначение = Ит; Прервать; - ИначеЕсли СтрНачинаетсяС(СтрокаКомментария, "Пример") Тогда + ИначеЕсли СтрНачинаетсяС(СтрокаКомментария, "Примеры:") ИЛИ СтрНачинаетсяС(СтрокаКомментария, "Пример:") Тогда НомерСтрокиПример = Ит; Прервать; Иначе + Если Дочитывание Тогда + СтрокаКомментария = ПрошлаяСтрока + СтрокаКомментария; + ПрошлаяСтрока = ""; + Дочитывание = Ложь; + КонецЕсли; + // шаблон параметра // 'Имя' - 'Тип' - 'Описание' // 'продолжение описания' - СоставСтрокиКомментария = СтрРазделить(СтрокаКомментария, "-"); Если СоставСтрокиКомментария.Количество() >= 3 Тогда @@ -652,6 +659,16 @@ ПозицияДефис = СтрНайти(СтрокаКомментария, "-",, ПозицияДефис + 1); ОписаниеПараметра = СокрЛП(Сред(СтрокаКомментария, ПозицияДефис + 1)); + + ИначеЕсли СоставСтрокиКомментария.Количество() = 2 и СтрЗаканчиваетсяНа(СокрЛП(СоставСтрокиКомментария[1]), ",") Тогда + // шаблон параметра + // 'Имя' - 'Тип','Тип', + // 'Тип' - 'Описание' + // 'продолжение описания' + ПрошлаяСтрока = СтрокаКомментария; + Дочитывание = Истина; + Продолжить; + Иначе // продолжение описания параметра либо косячное описание diff --git a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os index c8b44eb..681be90 100644 --- a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os +++ b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийEDT.os @@ -52,6 +52,23 @@ КонецФункции +// Читает Версию совместимости +// +// Параметры: +// ЧтениеXML - ЧтениеXML - Читатель данных +// +// Возвращаемое значение: +// Строка - Данные строки, версия формата 8.3.10 +// +Функция ВерсияСовместимости(Знач ЧтениеXML) Экспорт + + ЧтениеXML.Прочитать(); + + Возврат ЧтениеXML.Значение; + +КонецФункции + + // Читает описание типа // // Параметры: diff --git a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийКонфигуратор.os b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийКонфигуратор.os index 6dbb8a0..e052e4a 100644 --- a/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийКонфигуратор.os +++ b/src/Внутренние/ЧтениеОписаний/Модули/ЧтениеОписанийКонфигуратор.os @@ -52,6 +52,39 @@ КонецФункции +// Читает версию совместимости +// Версия приводится к единному с EDT виду внутри инструмента +// Параметры: +// ЧтениеXML - ЧтениеXML - Читатель данных +// +// Возвращаемое значение: +// Строка - Данные строки +// +Функция ВерсияСовместимости(Знач ЧтениеXML) Экспорт + + ЧтениеXML.Прочитать(); + + Возврат ВерсияСовместимостиСтрокой(ЧтениеXML.Значение); + +КонецФункции + +// Удаляет лишние символы из строки версии +// +// Параметры: +// ЧтениеXML - ЧтениеXML - Читатель данных +// +// Возвращаемое значение: +// Строка - Данные строки, версия формата 8.3.10 +// +Функция ВерсияСовместимостиСтрокой(Значение) + + Версия = СтрРазделить(СтрЗаменить(Значение, "Version", ""), "_", Ложь); + + Возврат СтрШаблон("%1.%2.%3", Версия[0], Версия[1], Версия[2]); + + +КонецФункции + // Читает описание типа // // Параметры: diff --git a/src/Модули/ПараметрыПродукта.os b/src/Модули/ПараметрыПродукта.os index a7081c7..dbc1348 100644 --- a/src/Модули/ПараметрыПродукта.os +++ b/src/Модули/ПараметрыПродукта.os @@ -33,7 +33,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "1.3"; + Возврат "21.09"; КонецФункции diff --git a/tests/ТестСозданияРасширения.os b/tests/ТестСозданияРасширения.os index 105447e..6a942b8 100644 --- a/tests/ТестСозданияРасширения.os +++ b/tests/ТестСозданияРасширения.os @@ -11,6 +11,7 @@ #Использовать logos #Использовать asserts #Использовать fs +#Использовать 1testrunner /////////////////////////////////////////////////////////////////////////////// @@ -52,7 +53,7 @@ СвойстваРасширения.Наименование = "Simple"; СвойстваРасширения.Синоним = "Простое расширение"; СвойстваРасширения.ПрефиксИмен = "smpl_"; - + СвойстваРасширения.РежимСовместимостиРасширенияКонфигурации = "8.3.9"; Для Каждого Объект Из Конфигурация.ОписаниеКонфигурации().ОбъектыКонфигурации Цикл Если Объект.Тип = ТипыОбъектовКонфигурации.ИмяТипаПодсистема() ИЛИ Объект.Тип = ТипыОбъектовКонфигурации.ИмяТипаКонфигурации() Тогда @@ -67,7 +68,13 @@ КонецЦикла; Расширение.Зафиксировать(); + + ТекстОписаниеКонфигурации = Утилиты.ПрочитатьФайл(Расширение.СтруктураКаталогов().ИмяФайлаОписанияКонфигурации()); + Ожидаем.Что(ТекстОписаниеКонфигурации, "Файл configuration содержит верный режим совместимости").Содержит("Version8_3_9"); + + ТекстКонфигаРасширения = Новый Файл(ОбъединитьПути(КаталогРасширения, "Configuration.xml")); + КонецПроцедуры Процедура ТестСоздатьПростоеРасширениеВИерархическомФорматеEDT() Экспорт