1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

Вынес методы работы со строками

This commit is contained in:
alkoleft 2024-01-16 03:04:30 +03:00
parent 1402466d8c
commit 9eec1e8a20
8 changed files with 91 additions and 49 deletions
exts/yaxunit/src/CommonModules
ЮТЗапросыКлиентСервер
ЮТКонструкторТестовыхДанныхСлужебный
ЮТОбщий
ЮТПараметрыЗапуска
ЮТРегистрацияОшибок
ЮТСтроки
ЮТТестовыеДанные_ТаблицыЗначений
ЮТУтверждения

View File

@ -45,7 +45,7 @@
ТипПараметра = ТипЗнч(ВыбираемыеПоля); ТипПараметра = ТипЗнч(ВыбираемыеПоля);
Если ТипПараметра = Тип("Строка") Тогда Если ТипПараметра = Тип("Строка") Тогда
ВыбираемыеПоля = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ВыбираемыеПоля, ","); ВыбираемыеПоля = ЮТСтроки.РазделитьСтроку(ВыбираемыеПоля, ",");
ТипПараметра = Тип("Массив"); ТипПараметра = Тип("Массив");
КонецЕсли; КонецЕсли;

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©// //©///////////////////////////////////////////////////////////////////////////©//
// //
// Copyright 2021-2023 BIA-Technologies Limited Liability Company // Copyright 2021-2024 BIA-Technologies Limited Liability Company
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. // you may not use this file except in compliance with the License.
@ -43,7 +43,7 @@
КонецЕсли; КонецЕсли;
Если ОграничениеТипа <> Неопределено Тогда Если ОграничениеТипа <> Неопределено Тогда
ПолноеИмяРеквизита = ЮТОбщий.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, "."); ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
ТипЗначения = ПересечениеТипов(ОписаниеРеквизита.Тип, ОграничениеТипа, ПолноеИмяРеквизита); ТипЗначения = ПересечениеТипов(ОписаниеРеквизита.Тип, ОграничениеТипа, ПолноеИмяРеквизита);
Иначе Иначе
ТипЗначения = ОписаниеРеквизита.Тип; ТипЗначения = ОписаниеРеквизита.Тип;

View File

@ -70,7 +70,7 @@
#Область Строки #Область Строки
// ДобавитьСтроку // Устарела Метод перенесен в см. ЮТСтроки.ДобавитьСтроку
// Конкатенирует строки, разделяя их разделителем // Конкатенирует строки, разделяя их разделителем
// //
// Параметры: // Параметры:
@ -80,28 +80,14 @@
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - Результат конкатенации строк // Строка - Результат конкатенации строк
// Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
Функция ДобавитьСтроку(Знач ИсходнаяСтрока, Знач ДополнительнаяСтрока, Знач Разделитель = ";") Экспорт
Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда ВызовУстаревшегоМетода("ЮТОбщий.ДобавитьСтроку", "ЮТСтроки.ДобавитьСтроку");
Возврат ЮТСтроки.ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель);
Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда
Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока);
Иначе
Возврат Строка(ДополнительнаяСтрока);
КонецЕсли;
КонецЕсли;
Возврат Строка(ИсходнаяСтрока);
КонецФункции КонецФункции
// РазложитьСтрокуВМассивПодстрок // Устарела Метод перенесен в см. ЮТСтроки.РазделитьСтроку
// Возвращает массив на основании строки // Возвращает массив на основании строки
// //
// Параметры: // Параметры:
@ -111,26 +97,14 @@
// Возвращаемое значение: // Возвращаемое значение:
// Массив Из Строка - массив строк // Массив Из Строка - массив строк
// //
Функция РазложитьСтрокуВМассивПодстрок(Знач Значение, Разделитель = ";") Экспорт Функция РазложитьСтрокуВМассивПодстрок(Значение, Разделитель = ";") Экспорт
КодУниверсальногоРазделителя = 5855; ВызовУстаревшегоМетода("ЮТОбщий.РазложитьСтрокуВМассивПодстрок", "ЮТСтроки.РазбитьСтроку");
УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя); Возврат ЮТСтроки.РазделитьСтроку(Значение, Разделитель);
МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель);
МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока,
УниверсальныйРазделитель));
Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]);
КонецЦикла;
Возврат МассивСтрок;
КонецФункции КонецФункции
// Сформировать строку символов. // Устарела Метод перенесен в см. ЮТСтроки.СтрокаСимволов
// Формирует строку из заданного количества повторяемых символов // Формирует строку из заданного количества повторяемых символов
// Параметры: // Параметры:
// Символ - Строка - Повторяемый символ // Символ - Строка - Повторяемый символ
@ -140,7 +114,8 @@
// Строка - Строка повторяемых символов // Строка - Строка повторяемых символов
Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт Функция СформироватьСтрокуСимволов(Символ, Количество) Экспорт
Возврат СтрСоединить(Новый Массив(Количество + 1), Символ); ВызовУстаревшегоМетода("ЮТОбщий.СформироватьСтрокуСимволов", "ЮТСтроки.СтрокаСимволов");
Возврат ЮТСтроки.СтрокаСимволов(Символ, Количество);
КонецФункции КонецФункции
@ -210,7 +185,7 @@
Функция ПредставлениеПродолжительности(Знач Продолжительность) Экспорт Функция ПредставлениеПродолжительности(Знач Продолжительность) Экспорт
Представление = ЧислоВСтроку(Цел(Продолжительность / 1000)); Представление = ЧислоВСтроку(Цел(Продолжительность / 1000));
Представление = ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), "."); Представление = ЮТСтроки.ДобавитьСтроку(Представление, Формат(Продолжительность % 1000, "ЧЦ=3; ЧВН=;"), ".");
Инкремент(Представление, " сек"); Инкремент(Представление, " сек");

View File

@ -73,7 +73,7 @@
Возврат Параметры; Возврат Параметры;
КонецЕсли; КонецЕсли;
ПарыКлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(ПараметрыЗапускаСтрокой, ";"); ПарыКлючЗначение = ЮТСтроки.РазделитьСтроку(ПараметрыЗапускаСтрокой, ";");
ПараметрыЗапуска = Новый Структура; ПараметрыЗапуска = Новый Структура;
@ -83,7 +83,7 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
КлючЗначение = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Пара, "="); КлючЗначение = ЮТСтроки.РазделитьСтроку(Пара, "=");
Если КлючЗначение.Количество() = 1 Тогда Если КлючЗначение.Количество() = 1 Тогда
ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина); ПараметрыЗапуска.Вставить(КлючЗначение[0], Истина);

View File

@ -330,8 +330,8 @@
Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт Функция ДобавитьОписания(ТекстОшибки, ОписаниеПроверки = Неопределено) Экспорт
Если ОписаниеПроверки <> Неопределено Тогда Если ОписаниеПроверки <> Неопределено Тогда
ПрефиксОшибки = ЮТОбщий.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " "); ПрефиксОшибки = ЮТСтроки.ДобавитьСтроку(ОписаниеПроверки.ПрефиксОшибки, ОписаниеПроверки.ОписаниеПроверки, " ");
СообщениеОбОшибке = ЮТОбщий.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": "); СообщениеОбОшибке = ЮТСтроки.ДобавитьСтроку(ПрефиксОшибки, ТекстОшибки, ": ");
Иначе Иначе
СообщениеОбОшибке = ТекстОшибки; СообщениеОбОшибке = ТекстОшибки;
КонецЕсли; КонецЕсли;

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©// //©///////////////////////////////////////////////////////////////////////////©//
// //
// Copyright 2021-2023 BIA-Technologies Limited Liability Company // Copyright 2021-2024 BIA-Technologies Limited Liability Company
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. // you may not use this file except in compliance with the License.
@ -18,6 +18,73 @@
#Область ПрограммныйИнтерфейс #Область ПрограммныйИнтерфейс
// Конкатенирует строки, разделяя их разделителем
//
// Параметры:
// ИсходнаяСтрока - Строка - Исходная строка
// ДополнительнаяСтрока - Строка - Добавляемая строка
// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками
//
// Возвращаемое значение:
// Строка - Результат конкатенации строк
//
Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт
Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда
Если Не ПустаяСтрока(ИсходнаяСтрока) Тогда
Возврат Строка(ИсходнаяСтрока) + Разделитель + Строка(ДополнительнаяСтрока);
Иначе
Возврат Строка(ДополнительнаяСтрока);
КонецЕсли;
КонецЕсли;
Возврат Строка(ИсходнаяСтрока);
КонецФункции
// Возвращает массив на основании строки.
// При этом:
// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке.
// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее.
//
// Параметры:
// Значение - Строка - преобразуемая строка
// Разделитель - Строка - строка-разделитель
//
// Возвращаемое значение:
// Массив Из Строка - массив строк
//
Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт
КодУниверсальногоРазделителя = 5855;
УниверсальныйРазделитель = Символ(КодУниверсальногоРазделителя);
МодифицированнаяСтрока = СтрЗаменить(Значение, Разделитель, УниверсальныйРазделитель);
МассивСтрок = ?(МодифицированнаяСтрока = "", Новый Массив, СтрРазделить(МодифицированнаяСтрока, УниверсальныйРазделитель));
Для Индекс = 0 По МассивСтрок.ВГраница() Цикл
МассивСтрок[Индекс] = СокрЛП(МассивСтрок[Индекс]);
КонецЦикла;
Возврат МассивСтрок;
КонецФункции
// Формирует строку из заданного количества повторяемых символов
// Параметры:
// Символ - Строка - Повторяемый символ
// Количество - Число - Количество повторений
//
// Возвращаемое значение:
// Строка - Строка повторяемых символов
Функция СтрокаСимволов(Символ, Количество) Экспорт
Возврат СтрСоединить(Новый Массив(Количество + 1), Символ);
КонецФункции
// Строка с символами русского алфавита // Строка с символами русского алфавита
// //
// Параметры: // Параметры:

View File

@ -92,7 +92,7 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель); КолонкиМакета = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
СледующаяСтрока(ПараметрыИтератора); СледующаяСтрока(ПараметрыИтератора);
Прервать; Прервать;
@ -112,7 +112,7 @@
КонецЕсли; КонецЕсли;
СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить(); СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить();
Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель); Блоки = ЮТСтроки.РазделитьСтроку(Строка, Разделитель);
Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл

View File

@ -1817,7 +1817,7 @@
Функция ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки, ОбъектПроверки = "проверяемое значение") Функция ПараметрыСообщенийОбОшибке(ПроверяемоеЗначение, ОписаниеПроверки, ОбъектПроверки = "проверяемое значение")
Контекст = Контекст(); Контекст = Контекст();
ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
ПредставлениеЗначения = СтрШаблон("`%1`", ПроверяемоеЗначение); ПредставлениеЗначения = СтрШаблон("`%1`", ПроверяемоеЗначение);
Возврат ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения); Возврат ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, ОбъектПроверки, ПредставлениеЗначения);
@ -1852,7 +1852,7 @@
Контекст = Контекст(); Контекст = Контекст();
Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение); Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение);
ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); ПолноеОписаниеПроверки = ЮТСтроки.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " ");
ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление);
Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения);