Имя: Пароль:
1C
 
Прочитать ячейку excel с форматом - дата
0 ArturDoo
 
05.07.24
08:58
Здравствуйте, есть обработка по загрузке личных данных сотрудников, если в загружаемом файле excel присутствует ячейка с форматом - дата, обработка читает ее, как не понятное число (45175). Понятно, откуда это число. Если перевести формат ячейки в текст, оно и вылезет. Может ли 1с прочитать ячейку с форматом - Дата, не искажая данные?
1 Garykom
 
05.07.24
09:04
Какая метода чтения файлика эксель?
2 ArturDoo
 
05.07.24
09:08
(1)НачатьСозданиеДвоичныхДанныхИзФайла
3 ArturDoo
 
05.07.24
09:10
Потом двоичные данные читаются в табличный документ
4 Гена
 
05.07.24
09:18
'190001010000'+(ЧислоExcel*86400)
5 ArturDoo
 
05.07.24
09:21
(4) и что должно из этого получиться?
6 Гена
 
05.07.24
09:26
(5) Если не ошибся в своей "навскидке", то получится дата для 1С )
7 ArturDoo
 
05.07.24
09:28
(6) Да, вы правы, получается дата, но почему-то на 2 дня больше)
8 Гена
 
05.07.24
09:29
На пальцах:
В экселе дата как число есть количество дней от 1-го января 1900 года. А дата в 1С в секундах от РХ. Эрго, к 01.01.1900 для 1С надо добавить дни в экселе, переведённые в секунды. Как-то так )
9 ArturDoo
 
05.07.24
09:32
Спасибо вам большое, 2 дня вычту из даты ексель, и будет мне счастье)
10 Гена
 
05.07.24
09:32
(7) Скорее всего эффект вагона и платформы. Длина дня на границах. Тупо вычитайте 2 и все дела.
11 Климов Сергей
 
05.07.24
09:48
(0) Ещё вариант:
Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(ТекстЯчейки);
12 Гена
 
05.07.24
09:54
(11) У автора ж не строка "06.09.2023", а число 45175.
13 Климов Сергей
 
05.07.24
10:00
(12) По моему опыту, если прочитать xls в табличный документ, то в тексте ячеек будет текстовое представление даты. Как-то так:
ТекстыЯчеек.Дата = ТабличныйДокумент.Область(НомерСтроки, НомераСтолбцов.Дата, НомерСтроки, НомераСтолбцов.Дата).Текст;
Дата = ОбщегоНазначенияКлиентСервер.СтрокаВДату(ТекстыЯчеек.Дата);
14 Garykom
 
05.07.24
10:26
ТабличныйДокумент (SpreadsheetDocument)
Прочитать (Read)
Вариант синтаксиса: Из файла
Синтаксис:
Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка. 
Имя файла табличного документа.
<СпособЧтенияЗначений> (необязательный)
Тип: СпособЧтенияЗначенийТабличногоДокумента. 
Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра.
Значение по умолчанию: Текст.
Описание варианта метода:
Чтение табличного документа из файла.
15 Гена
 
05.07.24
10:58
(14) Ну и считается текст "45175" и чего потом с ним делать?
16 Климов Сергей
 
05.07.24
11:41
(15) Если СпособЧтенияЗначений при вызове не указан, то в текст ячейки помещается текстовое представление даты.
17 Гена
 
05.07.24
11:46
(16) Практика - критерий истины. Лень проверять.
18 skafandr
 
05.07.24
13:29
(0) А попробуйте выравнивание чтобы в ячейках с  датами было не вправо а по центру
19 Гена
 
05.07.24
13:36
(18) Тогда уж влево. Мысль интересная, может сработать по логике.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой