1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-11-27 08:31:11 +02:00

fix: исправлено получение значения субконто

This commit is contained in:
alkoleft 2024-08-30 11:37:55 +03:00
parent 689baa0549
commit e0cbc70a18
7 changed files with 105 additions and 116 deletions

View File

@ -66,7 +66,7 @@ jobs:
with:
type: onec
onec_version: ${{ inputs.v8_version }}
cache: false
cache: ${{runner.os == 'Windows'}}
env:
ONEC_USERNAME: ${{ secrets.ONEC_USERNAME }}
ONEC_PASSWORD: ${{ secrets.ONEC_PASSWORD }}

View File

@ -35,7 +35,11 @@
Значение = Объект;
Для Каждого Часть Из Путь Цикл
Если ТипЗнч(Значение) = Тип("ХранилищеЗначения") Тогда
ТипЗначения = ТипЗнч(Значение);
ТипПоля = ТипЗнч(Часть);
ИзСоответствия = ЮТТипыДанныхСлужебный.ЭтоСоответствие(ТипЗначения);
Если ТипЗначения = Тип("ХранилищеЗначения") Тогда
#Если ВебКлиент Или ТонкийКлиент Тогда
Значение = ЮТОбщийСлужебныйВызовСервера.ИзХранилищаЗначений(Значение);
#Иначе
@ -43,11 +47,17 @@
#КонецЕсли
КонецЕсли;
Если ТипЗнч(Часть) = Тип("Число") И Часть < 0 И ТипЗнч(Значение) <> Тип("Соответствие") Тогда
Если ТипПоля = Тип("Число") И Часть < 0 И НЕ ИзСоответствия Тогда
Часть = Значение.Количество() + Часть;
КонецЕсли;
Значение = Значение[Часть];
Если ТипПоля = Тип("Строка") И НЕ ИзСоответствия Тогда
Прокси = Новый Структура(Часть);
ЗаполнитьЗначенияСвойств(Прокси, Значение);
Значение = Прокси[Часть];
Иначе
Значение = Значение[Часть];
КонецЕсли;
КонецЦикла;

View File

@ -1,96 +0,0 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТест("Пауза")
.ДобавитьТест("ВывестиВКонсоль")
.ДобавитьСерверныйТест("Менеджер")
.ДобавитьТест("ЗначениеСвойства")
;
КонецПроцедуры
Процедура Пауза() Экспорт
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
ЮТОбщий.Пауза(1);
ЮТОбщий.Пауза(1);
ЮТОбщий.Пауза(1);
Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
ЮТест.ОжидаетЧто(Дельта)
.МеждуВключаяГраницы(3000, 3999);
КонецПроцедуры
Процедура ВывестиВКонсоль() Экспорт
ЮТОбщий.ВывестиВКонсоль(ТекущаяДата());
КонецПроцедуры
#Если Сервер Тогда
Процедура Менеджер() Экспорт
Варианты = ЮТест.Варианты("Параметр, Результат")
.Добавить("Справочник.Товары", Справочники.Товары)
.Добавить("Справочники.Товары", Справочники.Товары)
.Добавить(Справочники.Товары, Справочники.Товары)
.Добавить(Справочники.Товары.ПустаяСсылка(), Справочники.Товары)
.Добавить(Тип("СправочникМенеджер.Товары"), Справочники.Товары)
.Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары)
.Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары)
.Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты)
;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
Описание = СтрШаблон("%1 (%2)", Вариант.Параметр, ТипЗнч(Вариант.Параметр));
ЮТест.ОжидаетЧто(ЮТОбщий.Менеджер(Вариант.Параметр), Описание)
.Равно(Вариант.Результат);
КонецЦикла;
КонецПроцедуры
#КонецЕсли
Процедура ЗначениеСвойства() Экспорт
Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
Структура = Новый Структура("Число, Массив", 1, Массив);
Варианты = ЮТест.Варианты("Значение, Свойство, Результат")
.Добавить(Массив, 0, 1)
.Добавить(Массив, -1, 3)
.Добавить(Массив, "[0]", 1)
.Добавить(Массив, 1, 2)
.Добавить(Структура, "Число", 1)
.Добавить(Структура, "Массив[0]", 1)
;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9d9e1592-1e79-4d25-9b77-7e17d8d70642">
<name>ОМ_Общий</name>
<synonym>
<key>ru</key>
<value>Общий</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -21,11 +21,76 @@
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТест("Пауза")
.ДобавитьТест("ВывестиВКонсоль")
.ДобавитьТест("ЗначениеСвойства")
.ДобавитьТест("ОписаниеТиповЛюбаяСсылка")
.ДобавитьСерверныйТест("Менеджер")
.ДобавитьСерверныйТест("ЗначениеСвойства_Субконто")
;
КонецПроцедуры
Процедура Пауза() Экспорт
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
ЮТОбщий.Пауза(1);
ЮТОбщий.Пауза(1);
ЮТОбщий.Пауза(1);
Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало;
ЮТест.ОжидаетЧто(Дельта)
.МеждуВключаяГраницы(3000, 3999);
КонецПроцедуры
Процедура ВывестиВКонсоль() Экспорт
ЮТОбщий.ВывестиВКонсоль(ТекущаяДата());
КонецПроцедуры
#Если Сервер Тогда
Процедура Менеджер() Экспорт
Варианты = ЮТест.Варианты("Параметр, Результат")
.Добавить("Справочник.Товары", Справочники.Товары)
.Добавить("Справочники.Товары", Справочники.Товары)
.Добавить(Справочники.Товары, Справочники.Товары)
.Добавить(Справочники.Товары.ПустаяСсылка(), Справочники.Товары)
.Добавить(Тип("СправочникМенеджер.Товары"), Справочники.Товары)
.Добавить(Тип("СправочникСсылка.Товары"), Справочники.Товары)
.Добавить(ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Товары"), Справочники.Товары)
.Добавить("РегистрыНакопления.Взаиморасчеты", РегистрыНакопления.Взаиморасчеты)
;
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
Описание = СтрШаблон("%1 (%2)", Вариант.Параметр, ТипЗнч(Вариант.Параметр));
ЮТест.ОжидаетЧто(ЮТОбщий.Менеджер(Вариант.Параметр), Описание)
.Равно(Вариант.Результат);
КонецЦикла;
КонецПроцедуры
#КонецЕсли
Процедура ЗначениеСвойства() Экспорт
Массив = ЮТКоллекции.ЗначениеВМассиве(1, 2, 3);
Структура = Новый Структура("Число, Массив", 1, Массив);
Варианты = ЮТест.Варианты("Значение, Свойство, Результат")
.Добавить(Массив, 0, 1)
.Добавить(Массив, -1, 3)
.Добавить(Массив, "[0]", 1)
.Добавить(Массив, 1, 2)
.Добавить(Структура, "Число", 1)
.Добавить(Структура, "Массив[0]", 1)
;
КонецПроцедуры
Процедура ОписаниеТиповЛюбаяСсылка() Экспорт
ЛюбаяСсылка = ЮТОбщий.ОписаниеТиповЛюбаяСсылка();
@ -36,8 +101,30 @@
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Если Сервер Тогда
Процедура ЗначениеСвойства_Субконто() Экспорт
Валюта = ЮТест.Данные().СоздатьЭлемент(Справочники.Валюты);
Счет = ЮТест.Данные().КонструкторОбъекта("ПланыСчетов.Основной")
.Установить("Валютный", Истина)
.Установить("Количественный", Истина)
.ТабличнаяЧасть("ВидыСубконто")
.ДобавитьСтроку()
.Установить("ВидСубконто", ПредопределенноеЗначение("ПланВидовХарактеристик.ВидыСубконто.Валюта"))
.Фикция("Суммовой")
.Установить("Валютный", Истина)
.Установить("Количественный", Истина)
.Записать();
Набор = РегистрыБухгалтерии.Основной.СоздатьНаборЗаписей();
Запись = Набор.Добавить();
Запись.Счет = Счет;
Запись.Субконто.Валюта = Валюта;
ЮТест.ОжидаетЧто(Запись)
.Свойство("Субконто.Валюта").Равно(Валюта);
КонецПроцедуры
#КонецЕсли
#КонецОбласти

View File

@ -89,7 +89,7 @@
Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
.ИмеетДлину(39);
.ИмеетДлину(38);
КонецПроцедуры

View File

@ -34,7 +34,6 @@
<commonModules>CommonModule.ОМ_Мокито</commonModules>
<commonModules>CommonModule.ОМ_МокитоОбучение</commonModules>
<commonModules>CommonModule.ОМ_МокитоСлужебный</commonModules>
<commonModules>CommonModule.ОМ_Общий</commonModules>
<commonModules>CommonModule.ОМ_ОшибкаЗагрузкиСценариев</commonModules>
<commonModules>CommonModule.ОМ_ЮТДымовыеТестыСлужебныйВызовСервера</commonModules>
<commonModules>CommonModule.ОМ_ЮТДымовыеТестыСлужебныйКлиентСервер</commonModules>