Мне уже не в первой имеется надобность имея строку вида "20.07.2011" привести её к типу значения Дата (ну чтоб в запросе вставить куда-то, или записать в какой-то объект или... или...). К сожалению нету в 1С встроенной функции, которая могла бы помочь в этом деле. "А что же делать?", - спросят новички. А сделать надо следующее:
Функция ПривестиКТипуДата(СтрДата)
День = Сред(СтрДата, 1, 2);
Месяц = Сред(СтрДата, 4, 2);
Год = Сред(СтрДата, 7, 4);
Возврат(Дата(Год+Месяц+День));
КонецФункции
Функция ПривестиКТипуДата(СтрДата)
...........
Возврат(Дата(Год+Месяц+День));
КонецФункции
Возврат Дата(Год+Месяц+День+"000000");
Нашел на http://pro1c.org.ua/redirect.php?http://infostart.ru/public/200111/.
// для тестов:
//Сообщить(СтрокаВДату("20:01:0"));
//Сообщить(СтрокаВДату("27/08\2015 3-15-22"));
//Сообщить(СтрокаВДату(20150320220315));
//Сообщить(СтрокаВДату("2/3/55"));
//Сообщить(СтрокаВДату("05/3/15"));
//Сообщить(СтрокаВДату("1 ФеВраЛя 05 г. 20:01:0"));
//Сообщить(СтрокаВДату("1 янв. 2005 г ::"));
//Сообщить(СтрокаВДату("1 янв 2005г. ::01"));
//Сообщить(СтрокаВДату("1 янв 2005г ::01"));
//Сообщить(СтрокаВДату("1 ФеВраЛь 05 г. 0:02:"));
//Сообщить(СтрокаВДату("1 янВа 2005 г. 20:01"));
//Сообщить(СтрокаВДату("02/04/2015"));
//Сообщить(СтрокаВДату("20150320220315"));
//Сообщить(СтрокаВДату("27.08.2015 3:15:22"));
//Сообщить(СтрокаВДату("27.08-2015 5:24"));
Функция СтрокаВДату(Знач ФорматДаты, Знач Дано, Ошибка = Ложь) Экспорт
Попытка
ё = Формат('00010101', "ДФ=" + ФорматДаты) // - необязательная проверка первого правильности параметра
Исключение
Ошибка = Истина;
Возврат '00010101'
КонецПопытки;
Ч = Новый Соответствие;
Для ё = 1 По СтрДлина(ФорматДаты) + 7 Цикл
Ч[Сред(ФорматДаты + "dMyHhms", ё, 1)] = 0 // - инициализация частей даты
КонецЦикла;
Для ё = 1 По 12 Цикл
Дано = СтрЗаменить(Дано, Формат(Дата(1, ё, 1), "ДФ=MMММ"), Формат(ё, "ЧЦ=4; ЧВН=")); // - замена названий месяцев числами
Дано = СтрЗаменить(Дано, Формат(Дата(1, ё, 1), "ДФ=MMМ" ), Формат(ё, "ЧЦ=3; ЧВН="))
КонецЦикла;
Для ё = 1 По СтрДлина(ФорматДаты) Цикл
Ч[Сред(ФорматДаты, ё, 1)] = 10 * Ч[Сред(ФорматДаты, ё, 1)] + Найти("123456789", Сред(Дано, ё, 1)); // - накопление частей даты
Ошибка = Ошибка ИЛИ Найти("dMyHhms", Сред(ФорматДаты, ё, 1)) И НЕ Найти("0123456789", Сред(Дано, ё, 1)) // - необязательная проверка на цифры
КонецЦикла;
Ч["y"] = Ч["y"] + ?(Ч["y"] < 50, 2000, ?(Ч["y"] < 100, 1900, 0)); // - дополнение двух цифр года до четырех
Попытка
Возврат Дата(Ч["y"], Ч["M"], Ч["d"], Ч["H"] + Ч["h"], Ч["m"], Ч["s"])
Исключение
Ошибка = Истина;
Возврат '00010101'
КонецПопытки
КонецФункции
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua