|
Проблема 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)Фотка где?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |