mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Добавил функционал получения таблицы значений из различных источников
This commit is contained in:
parent
ef17f24237
commit
07d373b4ad
@ -411,6 +411,59 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Читает табличный документ в массив структур
|
||||
//
|
||||
// Параметры:
|
||||
// ТабличныйДокумент - ТабличныйДокумент - Исходный табличный документ
|
||||
// НомерКолонки - Число - Номер строки таблицы, с которой следует начать считывание
|
||||
// НомерСтроки - Число - Номер колонки таблицы, с которой следует начать считывание
|
||||
// Возвращаемое значение:
|
||||
// Массив из Структура - Данные табличного документа
|
||||
Функция СтруктурыТабличногоДокумента(ТабличныйДокумент, Знач НомерКолонки = 1, Знач НомерСтроки = 1) Экспорт
|
||||
|
||||
МассивДанных = Новый Массив;
|
||||
СведенияКолонок = Новый Массив;
|
||||
|
||||
ЗаменяемыеСтроки = ЮТТестовыеДанныеСлужебный.ПодстрокиДляЗаменыВИменахСвойств();
|
||||
|
||||
ЗначениеКолонки = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Текст;
|
||||
Пока ЗначениеЗаполнено(ЗначениеКолонки) Цикл
|
||||
|
||||
Для Каждого Замена Из ЗаменяемыеСтроки Цикл
|
||||
ПодстрокаПоиска = Замена.Ключ;
|
||||
ПодстрокаЗамены = Замена.Значение;
|
||||
ИмяКолонки = СтрЗаменить(ЗначениеКолонки, ПодстрокаПоиска, ПодстрокаЗамены);
|
||||
КонецЦикла;
|
||||
|
||||
Сведения = Новый Структура("НомерКолонки, ИмяКолонки", НомерКолонки, ИмяКолонки);
|
||||
СведенияКолонок.Добавить(Сведения);
|
||||
|
||||
НомерКолонки = НомерКолонки + 1;
|
||||
ЗначениеКолонки = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Текст;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
НомерСтроки = НомерСтроки + 1;
|
||||
|
||||
Пока ЕстьЗначенияВСтроке(ТабличныйДокумент, НомерСтроки, СведенияКолонок) Цикл
|
||||
|
||||
Структура = Новый Структура;
|
||||
|
||||
Для Каждого Сведения Из СведенияКолонок Цикл
|
||||
Значение = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, Сведения.НомерКолонки).Текст);
|
||||
Структура.Вставить(Сведения.ИмяКолонки, Значение);
|
||||
КонецЦикла;
|
||||
|
||||
МассивДанных.Добавить(Структура);
|
||||
|
||||
НомерСтроки = НомерСтроки + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует массив различных комбиначий параметров
|
||||
//
|
||||
// Предназначено для формирования таблицы возможных значений параметров для краш теста метода.
|
||||
@ -493,6 +546,53 @@
|
||||
Возврат Обработки.ЮТHTTPСервисЗапрос.Создать();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает таблицу значений из табличного документа
|
||||
// Параметры:
|
||||
// ТабличныйДокумент - ТабличныйДокумент - Исходный табличный документ
|
||||
// ОписанияТипов - Соответствие из Строка - Соответствие имен колонок таблицы к типам значений
|
||||
// КэшЗначений - Соответствие из Произвольный - Соответствие для хранения создаваемых значений
|
||||
// Параметры - Соответствие из Строка - Соответствие значений в табличном документе значению таблицы
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур
|
||||
Функция ТаблицаЗначенийИзТабличногоДокумента(ТабличныйДокумент, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
Параметры = Неопределено) Экспорт
|
||||
|
||||
ИсточникДанных = СтруктурыТабличногоДокумента(ТабличныйДокумент);
|
||||
ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур(
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
Параметры
|
||||
);
|
||||
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает таблицу значений из таблицы MarkDown
|
||||
// Параметры:
|
||||
// Строки - Строка - Таблица markdown
|
||||
// ОписанияТипов - Соответствие из Строка - Соответствие имен колонок таблицы к типам значений
|
||||
// КэшЗначений - Соответствие из Произвольный - Соответствие для хранения создаваемых значений
|
||||
// Параметры - Соответствие из Строка - Соответствие значений в табличном документе значению таблицы
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур
|
||||
Функция ТаблицаЗначенийИзТаблицыMarkDown(Строки, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
Параметры = Неопределено) Экспорт
|
||||
|
||||
ИсточникДанных = ТаблицаMarkDown(Строки);
|
||||
ТаблицаЗначений = ЮТТестовыеДанные_ТаблицыЗначений.ТаблицаЗначенийИзМассиваСтруктур(
|
||||
ИсточникДанных,
|
||||
ОписанияТипов,
|
||||
КэшЗначений,
|
||||
Параметры
|
||||
);
|
||||
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
@ -518,4 +618,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЕстьЗначенияВСтроке(ТабличныйДокумент, НомерСтроки, СведенияКолонок)
|
||||
|
||||
ЕстьЗаполненныеЗначения = Ложь;
|
||||
|
||||
Для Каждого Сведения Из СведенияКолонок Цикл
|
||||
Если ЕстьЗаполненныеЗначения Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
НомерКолонки = Сведения.НомерКолонки;
|
||||
ЕстьЗаполненныеЗначения = ЗначениеЗаполнено(ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Текст);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЕстьЗаполненныеЗначения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,430 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Возвращает таблицу значений, заполненную из массива структур
|
||||
// Параметры:
|
||||
// Данные - Массив из Структура
|
||||
// ОписанияТипов - Соответствие из Строка
|
||||
// КэшЗначений - Соответствие из Произвольный
|
||||
// Параметры - Соответствие из Строка
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений
|
||||
Функция ТаблицаЗначенийИзМассиваСтруктур(Данные, ОписанияТипов, КэшЗначений = Неопределено,
|
||||
Параметры = Неопределено) Экспорт
|
||||
|
||||
Если Не ЗначениеЗаполнено(Данные) Тогда
|
||||
Возврат Новый ТаблицаЗначений;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры = Неопределено Тогда
|
||||
Параметры = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ИменаКолонок = ПолучитьИменаКолонок(Данные[0]);
|
||||
|
||||
СведенияОбъектовМетаданных = СведенияОбъектовМетаданныхИзОписанийТипов(ИменаКолонок, ОписанияТипов);
|
||||
СведенияОРеквизитахОбъектов = СведенияРеквизитовОбъектовМетаданных(ИменаКолонок, СведенияОбъектовМетаданных);
|
||||
ТаблицаЗначений = ИнициализированнаяТаблицаЗначений(ИменаКолонок, ОписанияТипов);
|
||||
|
||||
ИнициализироватьКэшЗначенийОбъектовМетаданных(КэшЗначений, ИменаКолонок, СведенияОбъектовМетаданных);
|
||||
|
||||
Для Каждого Источник Из Данные Цикл
|
||||
|
||||
НоваяСтрока = ТаблицаЗначений.Добавить();
|
||||
|
||||
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
|
||||
|
||||
ИмяКолонки = Колонка.Имя;
|
||||
ОписаниеТипа = Колонка.ТипЗначения;
|
||||
|
||||
ЗначениеИсточника = Источник[ИмяКолонки];
|
||||
|
||||
Если Не ЗначениеЗаполнено(ЗначениеИсточника) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СведенияОбъекта = СведенияОбъектовМетаданных.Получить(ИмяКолонки);
|
||||
ЗначениеПараметра = Параметры.Получить(ЗначениеИсточника);
|
||||
|
||||
Если ЗначениеПараметра <> Неопределено Тогда
|
||||
|
||||
ЗначениеТаблицы = ЗначениеПараметра;
|
||||
|
||||
ИначеЕсли СведенияОбъекта <> Неопределено Тогда
|
||||
|
||||
Менеджер = СведенияОбъекта.Менеджер;
|
||||
ОписаниеОбъектаМетаданных = СведенияОбъекта.ОписаниеОбъектаМетаданных;
|
||||
|
||||
ЗначениеТаблицы = КэшЗначений[Менеджер].Получить(ЗначениеИсточника);
|
||||
|
||||
Если ЗначениеТаблицы = Неопределено Тогда
|
||||
|
||||
ЗначенияРеквизитовОбъекта = ПолучитьЗначенияРеквизитовПоУмолчанию(
|
||||
ОписаниеОбъектаМетаданных,
|
||||
ЗначениеИсточника
|
||||
);
|
||||
|
||||
СведенияРеквизитовОбъекта = СведенияОРеквизитахОбъектов.Получить(ИмяКолонки);
|
||||
Если СведенияРеквизитовОбъекта <> Неопределено Тогда
|
||||
|
||||
ДополнитьЗначенияРеквизитовОбъекта(
|
||||
ЗначенияРеквизитовОбъекта,
|
||||
СведенияРеквизитовОбъекта,
|
||||
Источник,
|
||||
КэшЗначений,
|
||||
Параметры
|
||||
);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеТаблицы = ЗначениеОбъектаМетаданных(
|
||||
ОписаниеОбъектаМетаданных,
|
||||
Менеджер,
|
||||
ЗначенияРеквизитовОбъекта
|
||||
);
|
||||
|
||||
КэшЗначений[Менеджер].Вставить(ЗначениеИсточника, ЗначениеТаблицы);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеТаблицы = ОписаниеТипа.ПривестиЗначение(ЗначениеИсточника);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НоваяСтрока[ИмяКолонки] = ЗначениеТаблицы;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьИменаКолонок(Структура)
|
||||
|
||||
ИменаКолонок = Новый Массив;
|
||||
|
||||
Для Каждого КлючЗначение Из Структура Цикл
|
||||
ИменаКолонок.Добавить(КлючЗначение.Ключ);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ИменаКолонок;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СведенияОбъектовМетаданныхИзОписанийТипов(ИменаКолонок, ОписанияТипов)
|
||||
|
||||
МенеджерыЗначений = Новый Соответствие;
|
||||
|
||||
Для Каждого ИмяКолонки Из ИменаКолонок Цикл
|
||||
|
||||
ОписаниеТипа = ОписанияТипов.Получить(ИмяКолонки);
|
||||
ОписаниеОбъектаМетаданных = ОписаниеОбъектМетаданныхПоОписаниюТипа(ОписаниеТипа);
|
||||
|
||||
Если ОписаниеОбъектаМетаданных = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер = МенеджерОбъектаИзОписанияОбъектаМетаданных(ОписаниеОбъектаМетаданных);
|
||||
|
||||
Сведения = Новый Структура;
|
||||
Сведения.Вставить("Менеджер", Менеджер);
|
||||
Сведения.Вставить("ОписаниеОбъектаМетаданных", ОписаниеОбъектаМетаданных);
|
||||
|
||||
МенеджерыЗначений.Вставить(ИмяКолонки, Сведения);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МенеджерыЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОбъектМетаданныхПоОписаниюТипа(ОписаниеТипа)
|
||||
|
||||
ОписаниеОбъектаМетаданных = Неопределено;
|
||||
|
||||
Тип = ТипИзОписанияТипа(ОписаниеТипа);
|
||||
|
||||
Если Тип = Неопределено Тогда
|
||||
Возврат ОписаниеОбъектаМетаданных;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(Тип);
|
||||
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
Возврат ОписаниеОбъектаМетаданных;
|
||||
КонецЕсли;
|
||||
|
||||
Если Метаданные.Перечисления.Содержит(ОбъектМетаданных) Тогда
|
||||
ОписаниеОбъектаМетаданных = Новый Структура;
|
||||
ОписаниеОбъектаМетаданных.Вставить("Имя", ОбъектМетаданных.Имя);
|
||||
Иначе
|
||||
ОписаниеОбъектаМетаданных = ЮтМетаданные.ОписаниеОбъектМетаданных(ОбъектМетаданных.ПолноеИмя());
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОписаниеОбъектаМетаданных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипИзОписанияТипа(ОписаниеТипа)
|
||||
|
||||
Тип = Неопределено;
|
||||
|
||||
Если ТипЗнч(ОписаниеТипа) <> Тип("ОписаниеТипов") Тогда
|
||||
Возврат Тип;
|
||||
КонецЕсли;
|
||||
|
||||
Типы = ОписаниеТипа.Типы();
|
||||
Если Не ЗначениеЗаполнено(Типы) Тогда
|
||||
Возврат Тип;
|
||||
КонецЕсли;
|
||||
|
||||
Тип = Типы[0];
|
||||
|
||||
Возврат Тип;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МенеджерОбъектаИзОписанияОбъектаМетаданных(ОписаниеОбъектаМетаданных)
|
||||
|
||||
Если Метаданные.Перечисления.Найти(ОписаниеОбъектаМетаданных.Имя) <> Неопределено Тогда
|
||||
|
||||
Менеджер = Новый ("ПеречислениеМенеджер." + ОписаниеОбъектаМетаданных.Имя);
|
||||
|
||||
Иначе
|
||||
|
||||
ОписаниеТипа = ОписаниеОбъектаМетаданных.ОписаниеТипа;
|
||||
|
||||
ИмяТипаМенеджера = СтрШаблон("%1Менеджер.%2", ОписаниеТипа.Имя, ОписаниеОбъектаМетаданных.Имя);
|
||||
Менеджер = Новый (ИмяТипаМенеджера);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Менеджер;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СведенияРеквизитовОбъектовМетаданных(ИменаКолонок, СведенияОбъектовМетаданных)
|
||||
|
||||
ПодстрокиДляЗамены = ЮТТестовыеДанныеСлужебный.ПодстрокиДляЗаменыВИменахСвойств();
|
||||
ПодстрокаЗаменыТочки = ПодстрокиДляЗамены.Получить(".");
|
||||
|
||||
СведенияРеквизитовОбъекта = Новый Соответствие;
|
||||
|
||||
Для Каждого ИмяКолонкиОбъекта Из ИменаКолонок Цикл
|
||||
|
||||
СведенияОбъектаМетаданных = СведенияОбъектовМетаданных.Получить(ИмяКолонкиОбъекта);
|
||||
|
||||
Если СведенияОбъектаМетаданных = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОбъектаМетаданных = СведенияОбъектаМетаданных.ОписаниеОбъектаМетаданных;
|
||||
|
||||
МассивСведений = Новый Массив;
|
||||
|
||||
Для Каждого ИмяКолонки Из ИменаКолонок Цикл
|
||||
|
||||
Если СтрНайти(ИмяКолонки, ИмяКолонкиОбъекта) = 0 Или СтрНайти(ИмяКолонки, ПодстрокаЗаменыТочки) = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Массив = СтрРазделить(ИмяКолонки, ПодстрокаЗаменыТочки, Ложь);
|
||||
|
||||
Если Массив.Количество() <> 2 Тогда
|
||||
Продолжить;
|
||||
Иначе
|
||||
РеквизитОбъекта = Неопределено;
|
||||
ОписаниеОбъектаМетаданных.Реквизиты.Свойство(Массив[1], РеквизитОбъекта);
|
||||
Если РеквизитОбъекта <> Неопределено Тогда
|
||||
Сведения = Новый Структура;
|
||||
Сведения.Вставить("Идентификатор", ИмяКолонки);
|
||||
Сведения.Вставить("ИмяРеквизита", РеквизитОбъекта.Имя);
|
||||
Сведения.Вставить("ОписаниеТипа", РеквизитОбъекта.Тип);
|
||||
МассивСведений.Добавить(Сведения);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(МассивСведений) Тогда
|
||||
СведенияРеквизитовОбъекта.Вставить(ИмяКолонкиОбъекта, МассивСведений);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СведенияРеквизитовОбъекта;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИнициализированнаяТаблицаЗначений(ИменаКолонок, ОписанияТипов)
|
||||
|
||||
ТаблицаЗначений = Новый ТаблицаЗначений;
|
||||
|
||||
Для Каждого ИмяКолонки Из ИменаКолонок Цикл
|
||||
|
||||
ОписаниеТипаКолонки = ОписанияТипов.Получить(ИмяКолонки);
|
||||
|
||||
Если ОписаниеТипаКолонки = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаЗначений.Колонки.Добавить(ИмяКолонки, ОписаниеТипаКолонки);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ТаблицаЗначений;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ИнициализироватьКэшЗначенийОбъектовМетаданных(КэшЗначений, ИменаКолонок, СведенияОбъектовМетаданных)
|
||||
|
||||
Если Не ЗначениеЗаполнено(КэшЗначений) Тогда
|
||||
КэшЗначений = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИмяКолонки Из ИменаКолонок Цикл
|
||||
|
||||
СведенияОбъекта = СведенияОбъектовМетаданных.Получить(ИмяКолонки);
|
||||
Если СведенияОбъекта = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер = СведенияОбъекта.Менеджер;
|
||||
Если КэшЗначений.Получить(Менеджер) = Неопределено Тогда
|
||||
КэшЗначений.Вставить(Менеджер, Новый Соответствие);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗначенияРеквизитовПоУмолчанию(ОписаниеОбъектаМетаданных, Значение)
|
||||
|
||||
ЗначенияРеквизитовПоУмолчанию = Новый Структура;
|
||||
|
||||
Если Метаданные.Перечисления.Найти(ОписаниеОбъектаМетаданных.Имя) <> Неопределено Тогда
|
||||
ЗначенияРеквизитовПоУмолчанию.Вставить("Значение", Значение);
|
||||
Иначе
|
||||
Если ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя = "Справочник" Тогда
|
||||
ЗначенияРеквизитовПоУмолчанию.Вставить("Наименование", Значение);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗначенияРеквизитовПоУмолчанию;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДополнитьЗначенияРеквизитовОбъекта(Результат, СведенияРеквизитов, Источник, КешЗначений, Параметры)
|
||||
|
||||
Для Каждого Сведения Из СведенияРеквизитов Цикл
|
||||
|
||||
ЗначениеИсточника = Источник[Сведения.Идентификатор];
|
||||
ОписаниеОбъектаМетаданных = ОписаниеОбъектМетаданныхПоОписаниюТипа(Сведения.ОписаниеТипа);
|
||||
|
||||
Если ОписаниеОбъектаМетаданных = Неопределено Тогда
|
||||
|
||||
ЗначениеРеквизита = Сведения.ОписаниеТипа.ПривестиЗначение(ЗначениеИсточника);
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(ЗначениеИсточника) Тогда
|
||||
|
||||
ЗначениеПараметра = Параметры.Получить(ЗначениеИсточника);
|
||||
|
||||
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
|
||||
|
||||
ЗначениеРеквизита = ЗначениеПараметра;
|
||||
|
||||
Иначе
|
||||
|
||||
Менеджер = МенеджерОбъектаИзОписанияОбъектаМетаданных(ОписаниеОбъектаМетаданных);
|
||||
|
||||
ЗначенияМенеджера = КешЗначений[Менеджер];
|
||||
Если ЗначенияМенеджера = Неопределено Тогда
|
||||
ЗначенияМенеджера = Новый Соответствие;
|
||||
КешЗначений.Вставить(Менеджер, ЗначенияМенеджера);
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеРеквизита = ЗначенияМенеджера.Получить(ЗначениеИсточника);
|
||||
Если ЗначениеРеквизита = Неопределено Тогда
|
||||
|
||||
ЗначенияРеквизитовОбъекта = ПолучитьЗначенияРеквизитовПоУмолчанию(
|
||||
ОписаниеОбъектаМетаданных,
|
||||
ЗначениеИсточника
|
||||
);
|
||||
|
||||
ЗначениеРеквизита = ЗначениеОбъектаМетаданных(
|
||||
ОписаниеОбъектаМетаданных,
|
||||
Менеджер,
|
||||
ЗначенияРеквизитовОбъекта
|
||||
);
|
||||
|
||||
КешЗначений[Менеджер].Вставить(ЗначениеИсточника, ЗначениеРеквизита);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеРеквизита = Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Вставить(Сведения.ИмяРеквизита, ЗначениеРеквизита);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеОбъектаМетаданных(ОписаниеОбъектаМетаданных, Менеджер, ЗначенияРеквизитов)
|
||||
|
||||
ОбменДаннымиЗагрузка = Истина;
|
||||
|
||||
Если Метаданные.Перечисления.Найти(ОписаниеОбъектаМетаданных.Имя) <> Неопределено Тогда
|
||||
|
||||
Значение = Менеджер[ЗначенияРеквизитов.Значение];
|
||||
|
||||
Иначе
|
||||
|
||||
КонструкторОбъекта = ЮТест.Данные().КонструкторОбъекта(Менеджер);
|
||||
Для Каждого ДанныеЗначения Из ЗначенияРеквизитов Цикл
|
||||
КонструкторОбъекта.Установить(ДанныеЗначения.Ключ, ДанныеЗначения.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Значение = КонструкторОбъекта
|
||||
.ФикцияОбязательныхПолей()
|
||||
.Записать(, ОбменДаннымиЗагрузка);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="18cbfea5-3366-44ec-b0bd-7fd1d933bbf8">
|
||||
<name>ЮТТестовыеДанные_ТаблицыЗначений</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Тестовые данные таблицы значений</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -116,6 +116,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает соответствие с подстроками поиска и замены
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из Строка
|
||||
Функция ПодстрокиДляЗаменыВИменахСвойств() Экспорт
|
||||
|
||||
ЗаменяемыеПодстроки = Новый Соответствие;
|
||||
ЗаменяемыеПодстроки.Вставить(".", ПодстрокаЗаменыТочки());
|
||||
|
||||
Возврат ЗаменяемыеПодстроки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
|
||||
@ -229,4 +241,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодстрокаЗаменыТочки()
|
||||
|
||||
Возврат "_tchk_";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -89,6 +89,7 @@
|
||||
<commonModules>CommonModule.ЮТСравнениеКлиентСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТСравнениеСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанные</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанные_ТаблицыЗначений</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанныеВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТТестовыеДанныеСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТТесты</commonModules>
|
||||
|
Loading…
x
Reference in New Issue
Block a user