Функция ПреобразоватьВДату(ИсхСтр)
Стр = СокрЛП(ИсхСтр);
ЭтоДата = Найти(Стр,".") или Найти(Стр,"-") или Найти(Стр,"/");
ЭтоВремя = Найти(Стр,":");
Если Не ЭтоДата и Не ЭтоВремя Тогда
Возврат Дата(1,1,1,1,1,1);
КонецЕсли;
МассивДат = Новый Массив;
МассивВремени = Новый Массив;
врСтр = "";
Для а = 1 По СтрДлина(Стр) Цикл
Если (Сред(Стр,а,1) = "." или Сред(Стр,а,1) = "-" или Сред(Стр,а,1) = "/") и ЭтоДата Тогда
МассивДат.Добавить(Число(врСтр));
врСтр = "";
ИначеЕсли Сред(Стр,а,1) = ":" и Не ЭтоДата Тогда
МассивВремени.Добавить(Число(врСтр));
врСтр = "";
ИначеЕсли Сред(Стр,а,1) = " " или КодСимвола(Сред(Стр,а,1))<48 или КодСимвола(Сред(Стр,а,1))>57 Тогда
Если МассивДат.Количество()>0 и МассивДат.Количество()<3 и врСтр <> "" Тогда
МассивДат.Добавить(Число(врСтр));
КонецЕсли;
ЭтоДата = Ложь;
врСтр = "";
Иначе
врСтр = врСтр + Сред(Стр,а,1);
КонецЕсли;
КонецЦикла;
Если МассивВремени.Количество()>0 и МассивВремени.Количество()<3 и врСтр <> "" Тогда
МассивВремени.Добавить(Число(врСтр));
ИначеЕсли МассивДат.Количество()>0 и МассивДат.Количество()<3 и врСтр <> "" Тогда
МассивДат.Добавить(Число(врСтр));
КонецЕсли;
врДень = 0;
врМесяц = 0;
врГод = 0;
Для Каждого дСтр из МассивДат Цикл
Если врДень <> 0 и врМесяц <> 0 Тогда
врГод = дСтр;
ИначеЕсли врГод <> 0 и врМесяц <> 0 Тогда
врДень = дСтр;
ИначеЕсли врГод <> 0 или врДень <> 0 Тогда
врМесяц = дСтр;
КонецЕсли;
Если дСтр/100>1 Тогда
врГод = дСтр;
КонецЕсли;
Если врГод = 0 и врДень = 0 Тогда
врДень = дСтр;
КонецЕсли;
КонецЦикла;
врЧас = 0;
врМин = 0;
врСек = 0;
Для Каждого вСтр из МассивВремени Цикл
Если врЧас = 0 Тогда
врЧас = вСтр;
ИначеЕсли врМин = 0 Тогда
врМин = вСтр;
ИначеЕсли врСек = 0 Тогда
врСек = вСтр;
КонецЕсли;
КонецЦикла;
Если врГод = 0 или врГод > 9999 Тогда
врГод = 1;
ИначеЕсли врГод/100<1 Тогда
врГод = врГод + 2000;
КонецЕсли;
Если врМесяц = 0 или врМесяц>12 Тогда
врМесяц = 1;
КонецЕсли;
Если врДень = 0 или врДень>31 Тогда
врДень = 1;
КонецЕсли;
Если врЧас>23 Тогда
врЧас = 0;
КонецЕсли;
Если врМин>59 Тогда
врМин = 0;
КонецЕсли;
Если врСек>59 Тогда
врСек = 0;
КонецЕсли;
Возврат Дата(врГод,врМесяц,врДень,врЧас,врМин,врСек);
КонецФункции