|   |   | 
| 
 | Не корректно выгружаются данные из эксель | ☑ | ||
|---|---|---|---|---|
| 0
    
        bebibo 10.04.20✎ 13:11 | 
        При чтении файла эксель колонка "ДатаРождения" (с форматом - дата) - читается как строка.
 Вот данный код, который читает: Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ПутьКФайлу); WS = WB.Worksheets(1); arr = WS.UsedRange.Value; WB.Close(0); Исключение Предупреждение("Внимание! Файл не открыт."+Символы.ПС+"Попробуйте открыть и пересохранить данный файл программой Excel."); Возврат; КонецПопытки; МассивКолонок = arr.Выгрузить(); С чем это может быть связано? | |||
| 1
    
        bebibo 10.04.20✎ 13:13 | 
        (0) получаю так: ДатаРождения =МассивКолонок.Получить(4).Получить(строкаТП);
 и эту переменную невозможно преобразовать ни к числу, ни к дате! она строка, хотя в экселе она дата | |||
| 2
    
         Делопроизводитель 10.04.20✎ 13:14 | 
        напиши парсер строки в дату     | |||
| 3
    
        mikecool 10.04.20✎ 13:17 | 
        (1) в начале строки нет спец или служебных символов?     | |||
| 4
    
        bebibo 10.04.20✎ 13:19 | 
        (3) нет     | |||
| 5
    
         Делопроизводитель 10.04.20✎ 13:19 | 
        Функция элВыделитьСловоТочка(ИсходнаяСтрока)
 Буфер = СокрЛ(ИсходнаяСтрока); ПозицияПослПробела = Найти(Буфер, "."); Если ПозицияПослПробела <2 Тогда ИсходнаяСтрока = ""; Возврат Буфер; КонецЕсли; ВыделенноеСлово = СокрЛП(Лев(Буфер, ПозицияПослПробела-1)); ИсходнаяСтрока = Сред(ИсходнаяСтрока, ПозицияПослПробела + 1); Возврат ВыделенноеСлово; КонецФункции ДатаСтр=ДатаСтр0; День_Стр=элВыделитьСловоТочка(ДатаСтр); Месяц_Стр=элВыделитьСловоТочка(ДатаСтр); Год_Стр=элВыделитьСловоТочка(ДатаСтр); Если СтрДлина(Год_Стр)>4 Тогда Если ((КодСимвола(Год_Стр,3)>=48)) и ((КодСимвола(Год_Стр,3)<=57)) тогда Год_Стр = Лев(Год_Стр,4); Иначе Год_Стр = Лев(Год_Стр,2); Конецесли; КонецЕсли; Попытка День_Числ=Число(День_Стр); Месяц_Числ=Число(Месяц_Стр); Год_Числ=Число(Год_Стр); Если Год_Числ<100 Тогда Если Год_Числ<15 Тогда Год_Числ=Год_Числ+2000; Иначе Год_Числ=Год_Числ+1900; КонецЕсли; КонецЕсли; ДатаВвода=Дата(Год_Числ,Месяц_Числ,День_Числ,0,0,0); Исключение ОшбкаДатыввода=Истина; КонецПопытки; | |||
| 6
    
        bebibo 10.04.20✎ 13:33 | 
        (5) не понятно как работает код ниже функции     | |||
| 7
    
        bebibo 10.04.20✎ 13:35 | 
        (6) вот это что:
 ДатаСтр=ДатаСтр; День_Стр=элВыделитьСловоТочка(ДатаСтр); Месяц_Стр=элВыделитьСловоТочка(ДатаСтр); Год_Стр=элВыделитьСловоТочка(ДатаСтр); | |||
| 8
    
         Делопроизводитель 10.04.20✎ 13:59 | 
        (7) разбивание строки по точкам на части.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |