|   |   | 
| 
 | Проблема 1С 8.2, Excel и Дата | ☑ | ||
|---|---|---|---|---|
| 0
    
        Hellen_p 16.07.12✎ 09:54 | 
        Есть 2 базы 1С:8.2, обмен некоторых документов происходить при помощи Excel.
  Выгрузка: Попытка ExcelСом = новый COMОбъект("Excel.Application"); Исключение Сообщить("Excel не создан!"); Возврат; КонецПопытки; КнигаExcel = ExcelСом.WorkBooks.Add(); Excel = КнигаExcel.WorkSheets(1); Excel.Activate(); ……………….. Excel.Cells(номерСтроки , НомерКолонки).Value = Формат(Объект.ТабЧасть.Получить(номерСтроки).ДатаДок, "Л=ru_RU; ДФ=dd.MM.yyyy"); Загрузка: Попытка Excel = Новый COMОбъект("Excel.Application"); Исключение СообщениеОбОшибке; КонецПопытки; Workbook = Excel.Workbooks.Open(ЭлементыФормы.ФайлЗагрузки.Значение); Sheet = Workbook.Worksheets(НомерЛиста); ActiveCell = Sheet.Cells(1,1).SpecialCells(11); КоличествоСтрок = ActiveCell.Row; КоличествоКолонок = ActiveCell.Column; ………………………………….. ТекДата = Sheet.Cells(НомерСтроки, 2).Value; При любом форматировании дату в Excel сохраняет в неопределенном формате, т.е в ячейке записана дата, но формат ячейки «Общий». При загрузке считывает строку, но как не пытаюсь преобразовать ее в дату – ничего не получается. Пыталась сохранить числом, но в дату все равно не форматируется. Только когда по ячейке дважды щелкнешь, формат меняется на дату (выравнивание не помогает) – тогда Sheet.Cells(НомерСтроки, 2).Value считывает дату. Несколько колонок с датами, поэтому пользователям приходится сидеть, как заяц по барабану… Подскажите, как правильно сохранить в ячейку или преобразовать строку в дату. Вот в семерке была старая, добрая функция Дата() – работала безотказно))) (Обмен через xml не предлагать, переделывать некогда) | |||
| 1
    
        izekia 16.07.12✎ 09:57 | 
        сто раз поднималась тема, проблема с локалью в общем случае     | |||
| 2
    
        Zmich 16.07.12✎ 09:57 | 
        (0). Попробуй .Value заменить на .Text     | |||
| 3
    
        DocWin 16.07.12✎ 09:57 | 
        Формат преобразовывает дату в строку. Может в этом дело?     | |||
| 4
    
        kotletka 16.07.12✎ 10:01 | 
        (2)так наоборот текст выйдет, поменяй локальные настройки,как вариант разложить строку с датой на массив чисел (по запятым или точкам)  и собирать затем дату вида Дата(Год,месяц,число)     | |||
| 5
    
        Пыльный 16.07.12✎ 10:01 | 
        А при чем здесь 1с? Тебе надо установить тип столбца в Excel. Если я правильно помню, что-то типа
  Excel.Cells(номерСтроки , НомерКолонки).Type = 7; | |||
| 6
    
        kotletka 16.07.12✎ 10:03 | 
        ну или
  Год = Прав(Текдата,4); Месяц = Сред(Текдата,4,2); День = Лев(Текдата,2); ОбщаяДата = Дата(Год,Месяц,День); | |||
| 7
    
        kotletka 16.07.12✎ 10:03 | 
        (5)"При любом форматировании дату в Excel сохраняет в неопределенном формате, "     | |||
| 8
    
        wade25 16.07.12✎ 10:04 | 
        Та не) Посмари есть метод которым тип ячейки устанавливается и перед записью даты, ставь соответсвующий формат ячейки)     | |||
| 9
    
        zender 16.07.12✎ 10:18 | 
        (0) .NumberFormat = "m/d/yyyy"     | |||
| 10
    
        Hellen_p 16.07.12✎ 11:43 | 
        (7) на .Type ругнулся((
  (9) Спасибо, получилось! Добавила формат ячейки, остальное оставила, как было. Excel.Cells(номерСтроки , НомерКолонки).NumberFormat="ДД.ММ.ГГГГ"; | |||
| 11
    
        SherifSP 16.07.12✎ 11:44 | 
        (0)Фотка где?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |