Строку в дату по форматной строке Код 1C v 8.х
✍️ @odin1C_rus
// Процедура СтрокаВДату преобразует строку в дату по шаблону форматной строки
//
// Параметры
// Строка - строка, содержащая дату,
// ФорматДаты - форматная строка вида:
// [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"]);
КонецФункции
✍️ @odin1C_rus