mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Добавил расширенное приведение значений к типам
This commit is contained in:
parent
971b8a02ea
commit
8ac12c1ca1
@ -106,7 +106,7 @@
|
||||
|
||||
Иначе
|
||||
|
||||
ЗначениеТаблицы = ОписаниеТипа.ПривестиЗначение(ЗначениеИсточника);
|
||||
ЗначениеТаблицы = ПривестиЗначение(ОписаниеТипа, ЗначениеИсточника);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@ -427,4 +427,70 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПривестиЗначение(ОписаниеТипа, Значение)
|
||||
|
||||
Если ОписаниеТипа.СодержитТип(Тип("Дата")) Тогда
|
||||
Результат = ПривестиЗначениеКДате(ОписаниеТипа, Значение);
|
||||
ИначеЕсли ОписаниеТипа.СодержитТип(Тип("Число")) Тогда
|
||||
Результат = ПривестиЗначениеКЧислу(ОписаниеТипа, Значение);
|
||||
Иначе
|
||||
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПривестиЗначениеКДате(ОписаниеТипа, Знач Значение)
|
||||
|
||||
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
МассивРазделителей = Новый Массив;
|
||||
МассивРазделителей.Добавить(".");
|
||||
МассивРазделителей.Добавить("/");
|
||||
МассивРазделителей.Добавить("-");
|
||||
|
||||
СтрокаДаты = Неопределено;
|
||||
Для Каждого Разделитель Из МассивРазделителей Цикл
|
||||
|
||||
Если ЗначениеЗаполнено(СтрокаДаты) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
МассивЧастейДат = СтрРазделить(Значение, Разделитель);
|
||||
Если МассивЧастейДат.Количество() = 3 Тогда
|
||||
Если СтрДлина(МассивЧастейДат[2]) = 4 Тогда
|
||||
СтрокаДаты = МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
|
||||
ИначеЕсли СтрДлина(МассивЧастейДат[0]) = 4 Тогда
|
||||
СтрокаДаты = МассивЧастейДат[0] + МассивЧастейДат[1] + МассивЧастейДат[2];
|
||||
Иначе
|
||||
СтрокаДаты = "20" + МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Результат = ОписаниеТипа.ПривестиЗначение(СтрокаДаты);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПривестиЗначениеКЧислу(ОписаниеТипа, Знач Значение)
|
||||
|
||||
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
|
||||
Если ЗначениеЗаполнено(Результат) Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = СтрЗаменить(Значение, " ", "");
|
||||
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user