1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-12 09:04:01 +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СервисЗапрос`.
//

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);
ИначеЕсли ТипЗнч(Текст) = Тип("Строка") Тогда
ИначеЕсли ТипЗначения = Тип("Строка") Тогда
ПараметрыЧтения.ИзЧтенияТекста = Истина;
Кодировка = КодировкаТекста.UTF8;
Поток = ПолучитьДвоичныеДанныеИзСтроки(Текст, Кодировка).ОткрытьПотокДляЧтения();
Поток = ПолучитьДвоичныеДанныеИзСтроки(Источник, Кодировка).ОткрытьПотокДляЧтения();
Чтение = Новый ЧтениеТекста(Поток, Кодировка);
ПараметрыЧтения.Вставить("Чтение", Чтение);
ПараметрыЧтения.Вставить("Поток", Поток);
ИначеЕсли ТипЗначения = Тип("ВыборкаДанных") Тогда
ПараметрыЧтения.ИзВыборки = Истина;
ПараметрыЧтения.Вставить("Выборка", Источник);
Иначе
ВызватьИсключение "Неподдерживаемый параметр";
КонецЕсли;
@ -208,6 +199,20 @@
Возврат Ложь;
КонецЕсли;
ИначеЕсли ПараметрыЧтения.ИзВыборки Тогда
Если ПараметрыЧтения.Выборка.Следующий() Тогда
ПараметрыЧтения.Строка = ПараметрыЧтения.Выборка;
Иначе
ПараметрыЧтения.ДостиглиКонца = Истина;
ПараметрыЧтения.Строка = Неопределено;
Возврат Ложь;
КонецЕсли;
Иначе
ВызватьИсключение "Некорректные/неподдерживаемые параметры чтения";
КонецЕсли;
Возврат Истина;
@ -235,9 +240,12 @@
ТипПараметра = ТипЗнч(Макет);
ДанныеМакета = Неопределено;
Если ТипПараметра = Тип("ТабличныйДокумент")
ИЛИ ТипПараметра = Тип("ТекстовыйДокумент")
ИЛИ ТипПараметра = Тип("Строка") И СтрНачинаетсяС(Макет, "|") Тогда
ПараметрыСодержитДанные = ТипПараметра = Тип("ТабличныйДокумент")
Или ТипПараметра = Тип("ТекстовыйДокумент")
Или ТипПараметра = Тип("Строка")
И СтрНачинаетсяС(Макет, "|");
Если ПараметрыСодержитДанные Тогда
ДанныеМакета = Макет;
ИначеЕсли ТипПараметра = Тип("Строка") Тогда
ДанныеМакета = ЮТОбщийВызовСервера.Макет(Макет);
@ -482,4 +490,34 @@
КонецФункции
Функция НоваяТаблица(ОписаниеКолонок)
ТаблицаЗначений = Новый ТаблицаЗначений();
Для Каждого ОписаниеКолонки Из ОписаниеКолонок Цикл
ТаблицаЗначений.Колонки.Добавить(ОписаниеКолонки.Имя, ОписаниеКолонки.ОписаниеТипа);
КонецЦикла;
Возврат ТаблицаЗначений;
КонецФункции
Функция ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения)
ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов);
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок);
ПараметрыЗагрузки = Новый Структура;
ПараметрыЗагрузки.Вставить("ОписаниеКолонок", ОписаниеКолонок);
ПараметрыЗагрузки.Вставить("ПараметрыСоздания", ПараметрыСоздания);
ПараметрыЗагрузки.Вставить("Таблица", ТаблицаЗначений);
Возврат ПараметрыЗагрузки;
КонецФункции
#КонецОбласти