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