1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-01-05 12:50:36 +02:00
Замечания сонара
This commit is contained in:
alkoleft 2023-09-03 17:56:22 +03:00
parent 3fa3e55482
commit ec6ae1f290
2 changed files with 92 additions and 82 deletions

View File

@ -515,7 +515,8 @@
// * ФикцияОбязательныхПолей - Булево - По умолчанию - Ложь // * ФикцияОбязательныхПолей - Булево - По умолчанию - Ложь
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина // * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
// Возвращаемое значение: // Возвращаемое значение:
// см. ЮТТестовыеДанные_ТаблицыЗначений.ЗагрузитьИзМакета // ТаблицаЗначений - Для сервера, данные загруженные из макета
// Массив из Структура - Для клиента, данные загруженные из макета
Функция ЗагрузитьИзМакета(Макет, Функция ЗагрузитьИзМакета(Макет,
ОписанияТипов, ОписанияТипов,
КэшЗначений = Неопределено, КэшЗначений = Неопределено,
@ -537,35 +538,6 @@
КонецФункции КонецФункции
// Возвращает таблицу значений из таблицы MarkDown
// Параметры:
// Строки - Строка - Таблица markdown
// ОписанияТипов - Соответствие из Строка - Соответствие имен колонок таблицы к типам значений
// КэшЗначений - Соответствие из Произвольный - Соответствие для хранения создаваемых значений
// ЗаменяемыеЗначения - Соответствие из Строка - Значения, использующиеся для замены
// ПараметрыСозданияОбъектов - Структура:
// * ФикцияОбязательныхПолей - Булево - По умолчанию - Ложь
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
// Возвращаемое значение:
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений
Функция ТаблицаЗначенийИзТаблицыMarkDown(Строки,
ОписанияТипов,
КэшЗначений = Неопределено,
ЗаменяемыеЗначения = Неопределено,
ПараметрыСозданияОбъектов = Неопределено) Экспорт
// Параметры = ЮТТестовыеДанные_ТаблицыЗначений.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
// ИсточникДанных = ТаблицаMarkDown(Строки);
// ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений(ИсточникДанных,
// ОписанияТипов,
// КэшЗначений,
// ЗаменяемыеЗначения,
// Параметры);
ТаблицаЗначений = Новый Массив();
Возврат ТаблицаЗначений;
КонецФункции
#Если Сервер Тогда #Если Сервер Тогда
// Возвращает мок для `HTTPСервисЗапрос`. // Возвращает мок для `HTTPСервисЗапрос`.
// //

View File

@ -17,7 +17,7 @@
//©///////////////////////////////////////////////////////////////////////////©// //©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения) Экспорт Функция ЗагрузитьИзМакета(Макет, ОписанияТипов, КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения) Экспорт
ДанныеМакета = ДанныеМакета(Макет); ДанныеМакета = ДанныеМакета(Макет);
@ -47,22 +47,15 @@
КолонкиМакета.Добавить(ИмяКолонки); КолонкиМакета.Добавить(ИмяКолонки);
КонецЦикла; КонецЦикла;
Колонки = ОписаниеКолонок(КолонкиМакета, ОписанияТипов); ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, Колонки);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
ТаблицаЗначений = Новый ТаблицаЗначений();
Для Каждого ОписаниеКолонки Из Колонки Цикл
ТаблицаЗначений.Колонки.Добавить(ОписаниеКолонки.Имя, ОписаниеКолонки.ОписаниеТипа);
КонецЦикла;
Выборка = ВыборкаИзТабличногоДокумента(ДанныеМакета); Выборка = ВыборкаИзТабличногоДокумента(ДанныеМакета);
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
Строка = ТаблицаЗначений.Добавить(); Строка = ПараметрыЗагрузки.Таблица.Добавить();
Для Каждого ОписаниеКолонки Из Колонки Цикл Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл
ЗначениеПредставления = Выборка[ОписаниеКолонки.Индекс]; ЗначениеПредставления = Выборка[ОписаниеКолонки.Индекс];
@ -70,36 +63,30 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Значение = ЗначениеЯчейки(Выборка, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания); Значение = ЗначениеЯчейки(Выборка,
ЗначениеПредставления,
ОписаниеКолонки,
ЗаменяемыеЗначения,
КэшЗначений,
ПараметрыЗагрузки.ПараметрыСоздания);
Строка[ОписаниеКолонки.Имя] = Значение; Строка[ОписаниеКолонки.Имя] = Значение;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
Возврат ТаблицаЗначений; Возврат ПараметрыЗагрузки.Таблица;
КонецФункции КонецФункции
// Загрузить данные из текстового документа. Функция ЗагрузитьДанныеИзСтроки(ДанныеМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения)
//
// Параметры:
// ДанныеМакета - ТекстовыйДокумент
// ОписанияТипов Описания типов
// ЗаменяемыеЗначения Заменяемые значения
// КэшЗначений Кэш значений
// ПараметрыЗаполнения Параметры заполнения
//
// Возвращаемое значение:
// ТаблицаЗначений - Загрузить данные из текстового документа
Функция ЗагрузитьДанныеИзСтроки(ДанныеМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения) Экспорт
Разделитель = "|"; Разделитель = "|";
Чтение = ПострочноеЧтение(ДанныеМакета); ПараметрыИтератора = ПараметрыИтератора(ДанныеМакета);
Пока СледующаяСтрока(Чтение) Цикл Пока СледующаяСтрока(ПараметрыИтератора) Цикл
Строка = СокрЛП(Чтение.Строка); Строка = СокрЛП(ПараметрыИтератора.Строка);
Если НЕ СтрНачинаетсяС(Строка, Разделитель) Тогда Если НЕ СтрНачинаетсяС(Строка, Разделитель) Тогда
Продолжить; Продолжить;
@ -107,23 +94,16 @@
КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, Истина); КолонкиМакета = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, Истина);
СледующаяСтрока(Чтение); СледующаяСтрока(ПараметрыИтератора);
Прервать; Прервать;
КонецЦикла; КонецЦикла;
Колонки = ОписаниеКолонок(КолонкиМакета, ОписанияТипов); ПараметрыЗагрузки = ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, Колонки);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
ТаблицаЗначений = Новый ТаблицаЗначений(); Пока СледующаяСтрока(ПараметрыИтератора) Цикл
Для Каждого ОписаниеКолонки Из Колонки Цикл
ТаблицаЗначений.Колонки.Добавить(ОписаниеКолонки.Имя, ОписаниеКолонки.ОписаниеТипа);
КонецЦикла;
Пока СледующаяСтрока(Чтение) Цикл
Строка = СокрЛП(Чтение.Строка); Строка = СокрЛП(ПараметрыИтератора.Строка);
Если ПустаяСтрока(Строка) Тогда Если ПустаяСтрока(Строка) Тогда
Продолжить; Продолжить;
@ -131,10 +111,10 @@
Прервать; Прервать;
КонецЕсли; КонецЕсли;
СтрокаДанных = ТаблицаЗначений.Добавить(); СтрокаДанных = ПараметрыЗагрузки.Таблица.Добавить();
Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, Истина); Блоки = ЮТОбщий.РазложитьСтрокуВМассивПодстрок(Строка, Разделитель, Истина);
Для Каждого ОписаниеКолонки Из Колонки Цикл Для Каждого ОписаниеКолонки Из ПараметрыЗагрузки.ОписаниеКолонок Цикл
ЗначениеПредставления = Блоки[ОписаниеКолонки.Индекс]; ЗначениеПредставления = Блоки[ОписаниеКолонки.Индекс];
@ -142,38 +122,49 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Значение = ЗначениеЯчейки(Блоки, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания); Значение = ЗначениеЯчейки(Блоки,
ЗначениеПредставления,
ОписаниеКолонки,
ЗаменяемыеЗначения,
КэшЗначений,
ПараметрыЗагрузки.ПараметрыСоздания);
СтрокаДанных[ОписаниеКолонки.Имя] = Значение; СтрокаДанных[ОписаниеКолонки.Имя] = Значение;
КонецЦикла; КонецЦикла;
КонецЦикла; КонецЦикла;
Возврат ТаблицаЗначений; Возврат ПараметрыЗагрузки.Таблица;
КонецФункции КонецФункции
Функция ПострочноеЧтение(Текст) Функция ПараметрыИтератора(Источник)
ПараметрыЧтения = Новый Структура; ПараметрыЧтения = Новый Структура;
ПараметрыЧтения.Вставить("ИзТекстовогоДокумента", Ложь); ПараметрыЧтения.Вставить("ИзТекстовогоДокумента", Ложь);
ПараметрыЧтения.Вставить("ИзЧтенияТекста", Ложь); ПараметрыЧтения.Вставить("ИзЧтенияТекста", Ложь);
ПараметрыЧтения.Вставить("ИзВыборки", Ложь);
ПараметрыЧтения.Вставить("ДостиглиКонца", Ложь); ПараметрыЧтения.Вставить("ДостиглиКонца", Ложь);
ПараметрыЧтения.Вставить("Строка", Неопределено); ПараметрыЧтения.Вставить("Строка", Неопределено);
Если ТипЗнч(Текст) = Тип("ТекстовыйДокумент") Тогда ТипЗначения = ТипЗнч(Источник);
Если ТипЗначения = Тип("ТекстовыйДокумент") Тогда
ПараметрыЧтения.ИзТекстовогоДокумента = Истина; ПараметрыЧтения.ИзТекстовогоДокумента = Истина;
ПараметрыЧтения.Вставить("ТекстовыйДокумент", Текст); ПараметрыЧтения.Вставить("ТекстовыйДокумент", Источник);
ПараметрыЧтения.Вставить("КоличествоСтрок", Текст.КоличествоСтрок()); ПараметрыЧтения.Вставить("КоличествоСтрок", Источник.КоличествоСтрок());
ПараметрыЧтения.Вставить("ИндексСтроки", 0); ПараметрыЧтения.Вставить("ИндексСтроки", 0);
ИначеЕсли ТипЗнч(Текст) = Тип("Строка") Тогда ИначеЕсли ТипЗначения = Тип("Строка") Тогда
ПараметрыЧтения.ИзЧтенияТекста = Истина; ПараметрыЧтения.ИзЧтенияТекста = Истина;
Кодировка = КодировкаТекста.UTF8; Кодировка = КодировкаТекста.UTF8;
Поток = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка).ОткрытьПотокДляЧтения(); Поток = ПолучитьДвоичныеДанныеИзСтроки(Источник, Кодировка).ОткрытьПотокДляЧтения();
Чтение = Новый ЧтениеТекста(Поток, Кодировка); Чтение = Новый ЧтениеТекста(Поток, Кодировка);
ПараметрыЧтения.Вставить("Чтение", Чтение); ПараметрыЧтения.Вставить("Чтение", Чтение);
ПараметрыЧтения.Вставить("Поток", Поток); ПараметрыЧтения.Вставить("Поток", Поток);
ИначеЕсли ТипЗначения = Тип("ВыборкаДанных") Тогда
ПараметрыЧтения.ИзВыборки = Истина;
ПараметрыЧтения.Вставить("Выборка", Источник);
Иначе Иначе
ВызватьИсключение "Неподдерживаемый параметр"; ВызватьИсключение "Неподдерживаемый параметр";
КонецЕсли; КонецЕсли;
@ -208,6 +199,20 @@
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
ИначеЕсли ПараметрыЧтения.ИзВыборки Тогда
Если ПараметрыЧтения.Выборка.Следующий() Тогда
ПараметрыЧтения.Строка = ПараметрыЧтения.Выборка;
Иначе
ПараметрыЧтения.ДостиглиКонца = Истина;
ПараметрыЧтения.Строка = Неопределено;
Возврат Ложь;
КонецЕсли;
Иначе
ВызватьИсключение "Некорректные/неподдерживаемые параметры чтения";
КонецЕсли; КонецЕсли;
Возврат Истина; Возврат Истина;
@ -235,9 +240,12 @@
ТипПараметра = ТипЗнч(Макет); ТипПараметра = ТипЗнч(Макет);
ДанныеМакета = Неопределено; ДанныеМакета = Неопределено;
Если ТипПараметра = Тип("ТабличныйДокумент") ПараметрыСодержитДанные = ТипПараметра = Тип("ТабличныйДокумент")
ИЛИ ТипПараметра = Тип("ТекстовыйДокумент") Или ТипПараметра = Тип("ТекстовыйДокумент")
ИЛИ ТипПараметра = Тип("Строка") И СтрНачинаетсяС(Макет, "|") Тогда Или ТипПараметра = Тип("Строка")
И СтрНачинаетсяС(Макет, "|");
Если ПараметрыСодержитДанные Тогда
ДанныеМакета = Макет; ДанныеМакета = Макет;
ИначеЕсли ТипПараметра = Тип("Строка") Тогда ИначеЕсли ТипПараметра = Тип("Строка") Тогда
ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет); ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет);
@ -482,4 +490,34 @@
КонецФункции КонецФункции
Функция НоваяТаблица(ОписаниеКолонок)
ТаблицаЗначений = Новый ТаблицаЗначений();
Для Каждого ОписаниеКолонки Из ОписаниеКолонок Цикл
ТаблицаЗначений.Колонки.Добавить(ОписаниеКолонки.Имя, ОписаниеКолонки.ОписаниеТипа);
КонецЦикла;
Возврат ТаблицаЗначений;
КонецФункции
Функция ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения)
ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок);
ПараметрыЗагрузки = Новый Структура;
ПараметрыЗагрузки.Вставить("ОписаниеКолонок", ОписаниеКолонок);
ПараметрыЗагрузки.Вставить("ПараметрыСоздания", ПараметрыСоздания);
ПараметрыЗагрузки.Вставить("Таблица", ТаблицаЗначений);
Возврат ПараметрыЗагрузки;
КонецФункции
#КонецОбласти #КонецОбласти