|   |   | 
| 
 | СТРОКУ (две цифры года) в ДАТУ, как? | ☑ | ||
|---|---|---|---|---|
| 0
    
        dft2014 06.12.17✎ 16:33 | 
        Как преобразовать СТРОКУ вида 27.10.92 в ДАТУ 27.10.1992?
 Пробовала функцией ниже, но выдает ошибку. СтрокуВДату = РазобратьДату(Данные.ДатаРождения); ФизЛицо.ДатаРождения = Формат(СтрокуВДату, "ДФ=dd.MM.yyyy"); Функция РазобратьДату(ИзмДата); Возврат Дата(Сред(ИзмДата,7,4)+Сред(ИзмДата,4,2)+Сред(ИзмДата,0,2)); КонецФункции | |||
| 1
    
        lodger 06.12.17✎ 16:35 | 
        попробуй просто Дата(Данные.ДатаРождения).     | |||
| 2
    
        Lexey_ 06.12.17✎ 16:39 | 
        (0) это та самая легендарная единственная ошибка 1С?     | |||
| 3
    
        echo77 06.12.17✎ 16:40 | 
        (0)  Возврат Дата(Сред(ИзмДата,7,4)+Сред(ИзмДата,4,2)+Сред(ИзмДата,1,2));     | |||
| 4
    
        1Садовник 06.12.17✎ 16:49 | 
        СтрокуВДату = "921027".  Ты же год полностью не получаешь. Сред(ИзмДата,7,4) вернет ток "92".     | |||
| 5
    
        Umga2002 06.12.17✎ 16:59 | 
        Похоже без анализа года не обойтись....     | |||
| 6
    
        Umga2002 06.12.17✎ 17:01 | 
        Ошибка МИЛЕНИУМ похоже....     | |||
| 7
    
        drcrasher 06.12.17✎ 17:04 | 
        (0) подозреваю, что там даты рождения записаны в строке. если год больше 17, то добавлять 19, если меньше или равен - 20     | |||
| 8
    
        dft2014 06.12.17✎ 17:45 | 
        Ап!     | |||
| 9
    
        azernot 06.12.17✎ 17:52 | 
        Функция РазобратьДату(ИзмДата);
 Год = Сред(ИзмДата,7,4) Если СтрДлина(Год)<4 Тогда ГодЧислом = Число(Год); ГодНачалаСтолетия = 20; Если ГодЧислом > ГодНачалаСтолетия Тогда Год = "19"+Год; Иначе Год = "20"+Год; КонецЕсли; КонецЕсли; Возврат Дата(Год+Сред(ИзмДата,4,2)+Сред(ИзмДата,0,2)); КонецФункции | |||
| 10
    
        dft2014 06.12.17✎ 17:58 | 
        (9) СПАСИБО!!! Все получилось!!!     | |||
| 11
    
        Serg_1960 06.12.17✎ 18:04 | 
        (10) Цирк-шапито да и только :)
 "Как преобразовать СТРОКУ вида 27.10.92" - там не строка, там всё-таки дата. Если учитывать (9) и "все получилось"(цы) | |||
| 12
    
        azernot 06.12.17✎ 18:06 | 
        (11) Эээ... что не так? Из строки "27.10.92" получили дату 27.10.1992     | |||
| 13
    
        Serg_1960 06.12.17✎ 22:25 | 
        Упс, конец напряженного рабочего дня :) "Прошу понять и простить"(с)     | |||
| 14
    
        Serg_1960 06.12.17✎ 23:16 | 
        В качестве компенсации - функция, которая по мнению автора любую экзотику пережуёт, проглотит и выплюнет как дату - лишь бы там только цифры были :)
 
PS: даты с двумя цифрами года преобразуются в дату прошлого века ;) | |||
| 15
    
        Serg_1960 06.12.17✎ 23:18 | 
        PSS: в алгоритме, как всегда, киндер-сюрприз для непосвящённых :))     | |||
| 16
    
        Лефмихалыч 06.12.17✎ 23:27 | 
        Если Строка = "27.10.92" Тогда
 Возврат Дата(1992, 10, 27); КонецЕсли; Это же элементарно! | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |