Преобразование строки в дату.
Работа со строками в БСП 3.0
Общий модуль СтроковыеФункцииКлиентСервер
Для преобразования текст ячейки табличного документа в дату используется один из двух вариантов функции преобразования значений :
- Вариант 1 – по составляющим : Дата(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)
- Вариант 2 – по строке – Дата( <строка>), , где Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS.
Однако, не написано в документации какой из вариантов предпочтительнее. Я всегда пользуюсь процедуру из общего модуля библиотеки стандартных подсистем, которая преобразует исходную строку ячейки в дату. :
Дата = СтроковыеФункцииКлиентСервер.СтрокаВДату(Значение );
где Значение – это строка, которую необходимо привести к дате. Формат даты должен быть в виде “ДД.ММ.ГГГГ” или “ДД/ММ/ГГ” или “ДД-ММ-ГГ”, Например, “23.02.1980” или “23/02/80”.
Функция СтрокаВДату(Знач Значение) ЭкспортЗначение = СтрЗаменить(Значение, " ", "");Значение = СокрЛП(СтрЗаменить(Значение, ".", ""));Значение = СокрЛП(СтрЗаменить(Значение, "/", ""));Значение = СокрЛП(СтрЗаменить(Значение, "-", ""));Значение = Сред(Значение, 5) + Сред(Значение, 3, 2) + Лев(Значение, 2);Если СтрДлина(Значение) = 6 ТогдаГод = СтрокаВЧисло(Лев(Значение, 2));Если Год = Неопределено ТогдаВозврат Дата('0001.01.01');КонецЕсли;Значение = ?(Год > 29, "19", "20") + Значение;КонецЕсли;ОписаниеТипа = Новый ОписаниеТипов("Дата");Результат = ОписаниеТипа.ПривестиЗначение(Значение);Возврат Результат;КонецФункции См. также