// Процедура СтрокаВДату преобразует строку в дату по шаблону форматной строки // // Параметры // Строка - строка, содержащая дату, // ФорматДаты - форматная строка вида: // [dd MM yy] // [yy-MM-dd HH:mm] // [dd MM yy HH mm ss] // [dd MM yyyy] // [MM dd, yyyy, HH:mm] // [dd.MM.yy] // [MM, dd, yyyy] // [yyyyMMdd] // [HH-mm-ss, dd-MM-yy] // [dd] // [dd MM HH:mm:ss yyyy] // [HH:mm:ss] // [HH:mm] // [yyyy-MM-dd HH:mm:ss] // [yyyy-MM-dd] // [yyyy/MM/dd] // [dd/MM/yy] // [MM dd yyyy] // [yyyy-MM] // [yyyy] // [MM, dd, yyyy] // [dd-MM-yyyy] // [ddMMyyyy] // Функция СтрокаВДату(Знач Строка, Знач ФорматДаты) Экспорт Ч = Новый Соответствие; Для ё = 1 По СтрДлина(ФорматДаты) + 6 Цикл Ч[Сред(ФорматДаты + "dMyHms", ё, 1)] = 0 КонецЦикла; Для ё = 1 По СтрДлина(ФорматДаты) Цикл Ч[Сред(ФорматДаты, ё, 1)] = 10 * Ч[Сред(ФорматДаты, ё, 1)] + Найти("123456789", Сред(Строка, ё, 1)); КонецЦикла; Ч["y"] = Ч["y"] + ?(0 < Ч["y"] И Ч["y"] < 50, 2000, ?(0 < Ч["y"] И Ч["y"] < 100, 1900, 0)); Возврат Дата(Макс(Ч["y"], 1), Макс(Ч["M"],1), Макс(Ч["d"],1), Ч["H"], Ч["m"], Ч["s"]); КонецФункции
Источник