1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-17 20:48:01 +02:00

Merge pull request #267 from bia-technologies/feature/266

Исправление ошибки загрузки из нескольких макетов
This commit is contained in:
Koryakin Aleksey 2024-02-28 18:33:31 +03:00 committed by GitHub
commit b79b3624f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 266 additions and 22 deletions

View File

@ -565,9 +565,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");
// you may not use this file except in compliance with the License.
@ -248,10 +248,10 @@
КэшироватьЗначение = Значение = Неопределено И ОписаниеКолонки.Менеджер <> Неопределено;
Если КэшироватьЗначение Тогда
Если КэшЗначений[ОписаниеКолонки.Менеджер] = Неопределено Тогда
КэшЗначений.Вставить(ОписаниеКолонки.Менеджер, Новый Соответствие());
Если КэшЗначений[ОписаниеКолонки.КлючТипаЗначения] = Неопределено Тогда
КэшЗначений.Вставить(ОписаниеКолонки.КлючТипаЗначения, Новый Соответствие());
Иначе
Значение = КэшЗначений[ОписаниеКолонки.Менеджер][ЗначениеПредставления];
Значение = КэшЗначений[ОписаниеКолонки.КлючТипаЗначения][ЗначениеПредставления];
КонецЕсли;
КонецЕсли;
@ -263,7 +263,7 @@
Значение = ПривестиЗначениеКолонки(ОписаниеКолонки, ЗначениеПредставления, ЗначенияРеквизитов, ПараметрыСоздания);
Если КэшироватьЗначение Тогда
КэшЗначений[ОписаниеКолонки.Менеджер].Вставить(ЗначениеПредставления, Значение);
КэшЗначений[ОписаниеКолонки.КлючТипаЗначения].Вставить(ЗначениеПредставления, Значение);
КонецЕсли;
Возврат Значение;
@ -286,8 +286,8 @@
Продолжить;
КонецЕсли;
Если КэшЗначений[Колонка.Менеджер] = Неопределено Тогда
КэшЗначений.Вставить(Колонка.Менеджер, Новый Соответствие);
Если КэшЗначений[Колонка.КлючТипаЗначения] = Неопределено Тогда
КэшЗначений.Вставить(Колонка.КлючТипаЗначения, Новый Соответствие);
КонецЕсли;
КонецЦикла;
@ -480,6 +480,7 @@
ОписаниеКолонки.Вставить("ДополнительныеРеквизиты", Новый Массив());
ОписаниеКолонки.Вставить("Составное", Ложь);
ОписаниеКолонки.Вставить("Менеджер", Неопределено);
ОписаниеКолонки.Вставить("КлючТипаЗначения", Неопределено);
ОписаниеКолонки.Вставить("ОписаниеОбъектаМетаданных", Неопределено);
ОписаниеКолонки.Вставить("ЭтоПеречисление", Ложь);
ОписаниеКолонки.Вставить("ЭтоЧисло", Ложь);
@ -553,6 +554,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");
// you may not use this file except in compliance with the License.
@ -164,7 +164,7 @@
Функция ЗагрузитьИзМакета(Знач Макет,
Знач ОписанияТипов,
Знач КэшЗначений,
КэшЗначений,
Знач ЗаменяемыеЗначения,
Знач ПараметрыЗаполнения,
Знач ТаблицаЗначений) Экспорт

View File

@ -849,7 +849,7 @@
ЗаполнитьЗначенияСвойств(ПараметрыЗаписи, ВходныеПараметрыЗаписи);
КонецЕсли;
Возврат Новый ФиксированнаяСтруктура("ФикцияОбязательныхПолей, ПараметрыЗаписи", ФикцияОбязательныхПолей, ПараметрыЗаписи);
Возврат Новый Структура("ФикцияОбязательныхПолей, ПараметрыЗаписи", ФикцияОбязательныхПолей, ПараметрыЗаписи);
КонецФункции

View File

@ -34,6 +34,8 @@
.ДобавитьТест("ЗагрузитьИзМакета_MarkDown")
.ДобавитьТест("ЗагрузитьИзМакета_ЧастичнаяЗагрузкаДанных")
.ДобавитьТест("ЗагрузитьИзМакета_Проверки")
.ДобавитьТест("ЗагрузитьИзМакета_ЦепочкаЗагрузок")
.ДобавитьТест("ЗагрузитьИзМакета_ОбменДаннымиЗагрузка")
.ДобавитьТест("СлучайныйИдентификатор")
.ДобавитьТест("СлучайноеЗначениеПеречисления")
.ДобавитьТест("УстановитьЗначениеРеквизита")
@ -151,9 +153,9 @@
КонецЕсли;
ЮТУтверждения.Что(ЮТТестовыеДанные)
.Метод(ТестируемыйМетод, ПараметрыМетода)
.ВыбрасываетИсключение(ТекстИсключения);
.Метод(ТестируемыйМетод, ПараметрыМетода)
.ВыбрасываетИсключение(ТекстИсключения);
Мокито.Сбросить();
КонецПроцедуры
@ -389,6 +391,63 @@
КонецПроцедуры
Процедура ЗагрузитьИзМакета_ЦепочкаЗагрузок() Экспорт
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Период", Новый ОписаниеТипов("Дата"));
ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"));
ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число"));
ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число"));
КэшЗначений = Неопределено;
ТаблицаРезультатов = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R2C1:R5C11",
ОписанияТипов,
КэшЗначений
);
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Период", Новый ОписаниеТипов("Дата"));
ОписанияТипов.Вставить("Активность", Новый ОписаниеТипов("Булево"));
ОписанияТипов.Вставить("Товар", Новый ОписаниеТипов("СправочникСсылка.Товары"));
ОписанияТипов.Вставить("Цена", Новый ОписаниеТипов("Число"));
ОписанияТипов.Вставить("Количество", Новый ОписаниеТипов("Число"));
ОписанияТипов.Вставить("Сумма", Новый ОписаниеТипов("Число"));
ОжидаемыеЗначения = ЮТест.Данные().ЗагрузитьИзМакета("ОбщийМакет.ЮТ_МакетТестовыхДанных.R8C1:R11C6",
ОписанияТипов,
КэшЗначений
);
ЮТест.ОжидаетЧто(КэшЗначений).НеРавно(Неопределено);
Для Каждого Строка Из ТаблицаРезультатов Цикл
ЮТест.ОжидаетЧто(ОжидаемыеЗначения)
.Содержит(ЮТест.Предикат().Реквизит("Товар").Равно(Строка.Товар));
КонецЦикла;
КонецПроцедуры
Процедура ЗагрузитьИзМакета_ОбменДаннымиЗагрузка() Экспорт
ОписанияТипов = Новый Соответствие;
ОписанияТипов.Вставить("Счет", Новый ОписаниеТипов("СправочникСсылка.РасчетныеСчета"));
ПараметрыСозданияОбъектов = ЮТФабрика.ПараметрыСозданияОбъектов();
ПараметрыСозданияОбъектов.ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина;
Параметры = ЮТОбщий.ЗначениеВМассиве("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3", ОписанияТипов, Неопределено, Неопределено, ПараметрыСозданияОбъектов);
ЮТест.ОжидаетЧто(ЮТест.Данные())
.Метод("ЗагрузитьИзМакета", Параметры)
.НеВыбрасываетИсключение();
ЮТест.ОжидаетЧто(ЮТест.Данные())
.Метод("ЗагрузитьИзМакета").Параметр("ОбщийМакет.ЮТ_МакетТестовыхДанных.R14C1:R16C3").Параметр(ОписанияТипов)
.ВыбрасываетИсключение("не заполнено или заполнено неверно");
КонецПроцедуры
Процедура СлучайноеЗначениеПеречисления() Экспорт
Варианты = ЮТест.Варианты("Перечисление, Описание")

View File

@ -6,6 +6,7 @@
<languageInfo>
<id>ru</id>
<code>Русский</code>
<description/>
</languageInfo>
</languageSettings>
<columns>
@ -47,13 +48,13 @@
</column>
</columnsItem>
<columnsItem>
<index>7</index>
<index>6</index>
<column>
<formatIndex>7</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>6</index>
<index>7</index>
<column>
<formatIndex>8</formatIndex>
</column>
@ -584,6 +585,12 @@
</c>
</row>
</rowsItem>
<rowsItem>
<index>5</index>
<row>
<empty>true</empty>
</row>
</rowsItem>
<rowsItem>
<index>6</index>
<row>
@ -884,9 +891,158 @@
</c>
</row>
</rowsItem>
<rowsItem>
<index>11</index>
<row>
<empty>true</empty>
</row>
</rowsItem>
<rowsItem>
<index>12</index>
<row>
<c>
<c>
<f>0</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>РасчетныеСчета</v8:content>
</v8:item>
</tl>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>13</index>
<row>
<c>
<c>
<f>28</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Счет</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>28</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Счет.Номер</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>28</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Счет.Банк</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>29</f>
</c>
</c>
<c>
<c>
<f>30</f>
</c>
</c>
<c>
<c>
<f>31</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>14</index>
<row>
<c>
<c>
<f>27</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Счет 1</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>32</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>1</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>33</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Банк 1</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>34</f>
</c>
</c>
<c>
<c>
<f>35</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>15</index>
<row>
<c>
<c>
<f>27</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Счет 2</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>27</f>
</c>
</c>
<c>
<c>
<f>27</f>
</c>
</c>
</row>
</rowsItem>
<templateMode>true</templateMode>
<height>11</height>
<vgRows>11</vgRows>
<height>16</height>
<vgRows>16</vgRows>
<line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line>
@ -910,10 +1066,10 @@
<width>77</width>
</format>
<format>
<width>209</width>
<width>176</width>
</format>
<format>
<width>176</width>
<width>209</width>
</format>
<format>
<width>65</width>
@ -1002,4 +1158,33 @@
<format>
<border>0</border>
</format>
<format>
<font>0</font>
<border>0</border>
<width>95</width>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<width>95</width>
</format>
<format>
<width>147</width>
</format>
<format>
<width>120</width>
</format>
<format>
<border>0</border>
<width>123</width>
</format>
<format>
<border>0</border>
<width>83</width>
</format>
<format>
<width>56</width>
</format>
<format>
<width>105</width>
</format>
</document>