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

Добавил расширенное приведение значений к типам

This commit is contained in:
Любаневич Дмитрий 2023-08-09 11:08:16 +03:00
parent 971b8a02ea
commit 8ac12c1ca1

View File

@ -106,7 +106,7 @@
Иначе
ЗначениеТаблицы = ОписаниеТипа.ПривестиЗначение(ЗначениеИсточника);
ЗначениеТаблицы = ПривестиЗначение(ОписаниеТипа, ЗначениеИсточника);
КонецЕсли;
@ -427,4 +427,70 @@
КонецФункции
Функция ПривестиЗначение(ОписаниеТипа, Значение)
Если ОписаниеТипа.СодержитТип(Тип("Дата")) Тогда
Результат = ПривестиЗначениеКДате(ОписаниеТипа, Значение);
ИначеЕсли ОписаниеТипа.СодержитТип(Тип("Число")) Тогда
Результат = ПривестиЗначениеКЧислу(ОписаниеТипа, Значение);
Иначе
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПривестиЗначениеКДате(ОписаниеТипа, Знач Значение)
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;
МассивРазделителей = Новый Массив;
МассивРазделителей.Добавить(".");
МассивРазделителей.Добавить("/");
МассивРазделителей.Добавить("-");
СтрокаДаты = Неопределено;
Для Каждого Разделитель Из МассивРазделителей Цикл
Если ЗначениеЗаполнено(СтрокаДаты) Тогда
Прервать;
КонецЕсли;
МассивЧастейДат = СтрРазделить(Значение, Разделитель);
Если МассивЧастейДат.Количество() = 3 Тогда
Если СтрДлина(МассивЧастейДат[2]) = 4 Тогда
СтрокаДаты = МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
ИначеЕсли СтрДлина(МассивЧастейДат[0]) = 4 Тогда
СтрокаДаты = МассивЧастейДат[0] + МассивЧастейДат[1] + МассивЧастейДат[2];
Иначе
СтрокаДаты = "20" + МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
КонецЕсли;
КонецЕсли;
КонецЦикла;
Результат = ОписаниеТипа.ПривестиЗначение(СтрокаДаты);
Возврат Результат;
КонецФункции
Функция ПривестиЗначениеКЧислу(ОписаниеТипа, Знач Значение)
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
Если ЗначениеЗаполнено(Результат) Тогда
Возврат Результат;
КонецЕсли;
Значение = СтрЗаменить(Значение, " ", "");
Результат = ОписаниеТипа.ПривестиЗначение(Значение);
Возврат Результат;
КонецФункции
#КонецОбласти