Имя: Пароль:
1C
1С v8
Проблема 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)Фотка где?