mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-12-12 09:04:01 +02:00
parent
3fa3e55482
commit
ec6ae1f290
@ -515,7 +515,8 @@
|
||||
// * ФикцияОбязательныхПолей - Булево - По умолчанию - Ложь
|
||||
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ЗагрузитьИзМакета
|
||||
// ТаблицаЗначений - Для сервера, данные загруженные из макета
|
||||
// Массив из Структура - Для клиента, данные загруженные из макета
|
||||
Функция ЗагрузитьИзМакета(Макет,
|
||||
ОписанияТипов,
|
||||
КэшЗначений = Неопределено,
|
||||
@ -537,35 +538,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает таблицу значений из таблицы MarkDown
|
||||
// Параметры:
|
||||
// Строки - Строка - Таблица markdown
|
||||
// ОписанияТипов - Соответствие из Строка - Соответствие имен колонок таблицы к типам значений
|
||||
// КэшЗначений - Соответствие из Произвольный - Соответствие для хранения создаваемых значений
|
||||
// ЗаменяемыеЗначения - Соответствие из Строка - Значения, использующиеся для замены
|
||||
// ПараметрыСозданияОбъектов - Структура:
|
||||
// * ФикцияОбязательныхПолей - Булево - По умолчанию - Ложь
|
||||
// * ОбменДаннымиЗагрузка - Булево - По умолчанию - Истина
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений
|
||||
Функция ТаблицаЗначенийИзТаблицыMarkDown(Строки,
|
||||
ОписанияТипов,
|
||||
КэшЗначений = Неопределено,
|
||||
ЗаменяемыеЗначения = Неопределено,
|
||||
ПараметрыСозданияОбъектов = Неопределено) Экспорт
|
||||
|
||||
// Параметры = ЮТТестовыеДанные_ТаблицыЗначений.ПараметрыЗаполненияТаблицыЗначений(ПараметрыСозданияОбъектов);
|
||||
// ИсточникДанных = ТаблицаMarkDown(Строки);
|
||||
// ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТипизированнаяТаблицаЗначений(ИсточникДанных,
|
||||
// ОписанияТипов,
|
||||
// КэшЗначений,
|
||||
// ЗаменяемыеЗначения,
|
||||
// Параметры);
|
||||
ТаблицаЗначений = Новый Массив();
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Если Сервер Тогда
|
||||
// Возвращает мок для `HTTPСервисЗапрос`.
|
||||
//
|
||||
|
@ -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 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НоваяТаблица(ОписаниеКолонок)
|
||||
|
||||
ТаблицаЗначений = Новый ТаблицаЗначений();
|
||||
|
||||
Для Каждого ОписаниеКолонки Из ОписаниеКолонок Цикл
|
||||
ТаблицаЗначений.Колонки.Добавить(ОписаниеКолонки.Имя, ОписаниеКолонки.ОписаниеТипа);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПараметрыЗагрузки(КолонкиМакета, ОписанияТипов, ЗаменяемыеЗначения, КэшЗначений, ПараметрыЗаполнения)
|
||||
|
||||
ОписаниеКолонок = ОписаниеКолонок(КолонкиМакета, ОписанияТипов);
|
||||
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, ОписаниеКолонок);
|
||||
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
|
||||
|
||||
ТаблицаЗначений = НоваяТаблица(ОписаниеКолонок);
|
||||
|
||||
ПараметрыЗагрузки = Новый Структура;
|
||||
|
||||
ПараметрыЗагрузки.Вставить("ОписаниеКолонок", ОписаниеКолонок);
|
||||
ПараметрыЗагрузки.Вставить("ПараметрыСоздания", ПараметрыСоздания);
|
||||
ПараметрыЗагрузки.Вставить("Таблица", ТаблицаЗначений);
|
||||
|
||||
Возврат ПараметрыЗагрузки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user