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