fix: Исправление типов значений неподдерживаемых опций

This commit is contained in:
Dmitry Ivanov
2024-12-26 00:23:01 +03:00
parent aa1f126a72
commit d4854360c8
2 changed files with 130 additions and 117 deletions
@@ -8,13 +8,17 @@
Ответ = Соединение.Получить(Запрос);
ПрверяемаяСтрока = Ответ.ПолучитьТелоКакСтроку();
РегулярноеВыражение = Новый РегулярноеВыражение("<a name=""(-+[a-zA-Z]+[a-zA-Z0-9-]*)""></a><span class=""nroffip"">([a-zA-Z0-9-,\s]*)(.*)</span>");
РегулярноеВыражение = Новый РегулярноеВыражение("<p class=""level0""><a name=""(-+[a-zA-Z0-9]+[a-zA-Z0-9-.]*)""></a><span class=""nroffip"">([a-zA-Z0-9-,.\s]*)(.*)</span>");
Совпадения = РегулярноеВыражение.НайтиСовпадения(ПрверяемаяСтрока);
МассивОпций = Новый Массив();
Для Каждого Совпадение Из Совпадения Цикл
Опции = СокрЛП(СтрЗаменить(Совпадение.Группы[2].Значение, ",", ""));
МассивОпций.Добавить(Опции);
КонецСтроки = Совпадение.Группы[3].Значение;
ЭтоБулево = Не (СтрНайти(КонецСтроки, "&lt;") И СтрНайти(КонецСтроки, "&gt;"));
МассивОпций.Добавить(Новый Структура("Опции, ЭтоБулево", Опции, ЭтоБулево));
КонецЦикла;
Возврат МассивОпций;
@@ -35,8 +39,8 @@
ПоддерживаемыеОпцииСоответствие.Вставить(Опция, Истина);
КонецЦикла;
Для Каждого ОпцииСтрока Из Опции Цикл
ОпцииБезОбработки = СтрРазделить(ОпцииСтрока, " ");
Для Каждого Строка Из Опции Цикл
ОпцииБезОбработки = СтрРазделить(Строка.Опции, " ");
Если ПоддерживаемыеОпцииСоответствие.Получить(ОпцииБезОбработки[0]) = Неопределено Тогда
ОпцииОбработанные = Новый Массив();
Для Каждого Опция Из ОпцииБезОбработки Цикл
@@ -44,7 +48,10 @@
Опция = Сред(Опция, ПозицияНаименования);
ОпцииОбработанные.Добавить(Опция);
КонецЦикла;
Результат.ДобавитьСтроку("Приложение.Опция(""" + СтрСоединить(ОпцииОбработанные, " ") + """).ТМассивСтрок();");
Текст = СтрШаблон("Приложение.Опция(""%1"").%2();",
СтрСоединить(ОпцииОбработанные, " "),
?(Строка.ЭтоБулево, "ТМассивБулево", "ТМассивСтрок"));
Результат.ДобавитьСтроку(Текст);
КонецЕсли;
КонецЦикла;