ФункцияПолучитьДатуИзСтроки(Стр)
Д = Дата("00010101000000");
ЕслиПустаяСтрока(Стр) Тогда
Возврат Д;
КонецЕсли;
ЕслиНайти(Стр,".") > 0 Тогда
Если Найти(Стр,":") > 0 И Найти(Стр," ") > 0 Тогда
М = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр," ");
ВозвратПолучитьДатуИзСтроки(М[0]);
КонецЕсли;
М = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,".");
ИначеЕсли Найти(Стр,"/")>0 Тогда
М = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,"/");
ИначеЕсли Найти(Стр,",")>0 Тогда
М = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,",");
ИначеЕсли Найти(Стр,"-")>0 Тогда
М = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Стр,"-");
КонецЕсли;
Попытка
Если М.Количество() = 3 Тогда //"01.02.13" или "01.02.2013"
Год = ?(СтрДлина(М[2]) = 2,2000 + М[2],М[2]);
Д = Дата(Год,М[1],М[0]);
ИначеЕсли М.Количество() = 2 Тогда //"02.13" или "02.2013";
Год = ?(СтрДлина(М[1]) = 2,2000 + М[1],М[1]);
Д = Дата(Год,М[0],1);
КонецЕсли;
Исключение
КонецПопытки;
ВозвратД;
КонецФункции
// Функция "расщепляет" строку на подстроки, используя заданный
// разделитель. Разделитель может иметь любую длину.
// Если в качестве разделителя задан пробел, рядом стоящие пробелы
// считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
// игнорируются.
// Например,
// РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,
// три из которых - пустые строки, а
// РазложитьСтрокуВМассивПодстрок(" ку му", " ") возвратит массив значений из двух элементов
//
// Параметры:
// Стр - строка, которую необходимо разложить на подстроки.
// Параметр передается по значению.
// Разделитель - строка-разделитель, поумолчанию - запятая.
//
//
// Возвращаемое значение:
// массив значений, элементы которого - подстроки
//
ФункцияРазложитьСтрокуВМассивПодстрок(ЗначСтр, Разделитель = ",") Экспорт
МассивСтрок = НовыйМассив();
ЕслиРазделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока Истина Цикл
Поз = Найти(Стр,Разделитель);
Если Поз = 0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз - 1));
Стр = СокрЛ(Сред(Стр,Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока Истина Цикл
Поз = Найти(Стр,Разделитель);
Если Поз = 0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз - 1));
Стр = Сред(Стр,Поз + ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции
Вступайте в нашу телеграмм-группу Инфостарт