Имя: Пароль:
1C
1С v8
Сохранение табличного документа в EXCEL. Дата сохраняется как текст
0 25-11
 
14.05.18
20:41
Подскажите, если кто-то сталкивался.
Имеется табличный документ, в одной из колонок записаны даты в формате dd.MM.yyyy
При сохранении в EXCEL (xlsx) соответствующие ячейки воспринимаются как текст.
Какой выбрать формат в 1С, чтобы в EXCELе "железно" получалась именно дата?
1 Зуекщмшср
 
15.05.18
04:46
Надо не в 1С, а в файле Excel задать формат колонки. Как - ищи в интернете, не помню.
2 Cool_Profi
 
15.05.18
05:41
Выравниваем поиграйся. То ли вправо, то ли влево - сходу не помню
3 25-11
 
15.05.18
07:43
(1) Файл сохраняется в EXCEL стандартным образом: ТабличныйДокумент.Записать(ИмяФайла, ФорматФайла)
Такая же ерунда, если в просто в пользовательском режиме сохранять по кнопке с дискетой
При таком способе нет возможности что-то задать EXCEL

(2) Пробовал самые разные варианты выравнивания - пока не вышло.

Методом проб и ошибок обнаружено, что если потом в EXCEL вызвать диалог "Найти и заменить" и поменять "." на "." (точку на точку), то дата воспринимается как дата. Но это как-то уж слишком похоже на вырезание гланд через задний проход...
Если кому-то известен более технологичный вариант - расскажите, пожалуйста.
4 Мимохожий Однако
 
15.05.18
08:29
Поставь апостроф впереди даты
5 catena
 
15.05.18
08:54
(3)Э... выделяешь колонку - пкм - формат - дата - в меню Данные - Текст по столбцам - Далее - Далее - Дата - ОК.

Ну или заполнять программно с установкой формата ячеек.
6 25-11
 
15.05.18
09:06
(4)Это зачем? Апостроф "сообщает" EXCELю, что в ячейке текст. Мне же нужно ровно наооборот. Чтобы он не воспринимал дату как текст.
(5) Это всё же постобработка уже готового файла... С заменой даже проще.
Неужели нет какого-то простейшего варианта, не требующего работы в EXCELе?
7 25-11
 
15.05.18
09:18
Предположим, что на том раб. месте, где формируется файл, вообще нет EXCEL. 1С сама создаёт файл в формате xlsx. Штатными средствами, например, через диалог "Файл - Сохранить". Или программно, через запись табличного документа.
  
Задача заключается в том, чтобы при открытии этого файла где-то в другом месте, ячейки, содержащие значения даты, EXCEL сразу "понял" как даты.
В такой постановке задача разрешима?
8 VS-1976
 
15.05.18
09:23
(7) Сохраняешь в формате excel, а потом открываешь в экселе и программно колонке задаёшь формат
9 catena
 
15.05.18
09:25
(6)Это с датой проблема проще. Ексель вообще любит типы корежить.

(7)Программно - я уже сказала, не сохраняй, а заполняй с принудительной установкой формата и все нормально фиксируется.
10 Сияющий в темноте
 
15.05.18
09:37
Разнын разделители даты в 1с и в Excel приводят к тому,что выражение определяется как текст. Можнл попробовать у ячейки в 1с задать формат даты и задать соответствующий шаблон,чтобы этот шаблон сохранился в Excel,последняя же не дура и по шаблону поймет,что там дата
11 VS-1976
 
15.05.18
09:45
(10) Формат это преобразование в текст ( не спасает ). Содержит значение так же не спасает. Отца русской демократии спасёт либо формирование данных в excel либо пост обработка в excel
12 25-11
 
15.05.18
09:46
(9) Уважаемая, нет Excel вообще, нет ничего кроме 1С. Что предлагается сделать программно? Табличный документ? А дальше-то что?
(10) попробую и так...
13 Сияющий в темноте
 
15.05.18
09:47
ADO спасет ADO,но это те еще грабли
14 VS-1976
 
15.05.18
09:50
(12) Не спасёт. Можешь создать в 1С табличный документ, установить параметры ячейки и прописать дату и сохранить как. Ничего не спасает. Можно без excel через ADO но и там засада чтобы выгрузить формат отличный от текст, возможно режим IMEX=2 и спасёт отца, но нужно курить долго.
15 25-11
 
15.05.18
10:05
(14) [ничего не спасает]
Оптимистично!
Блин, простейшая, казалось бы, ситуация. И такая неожиданная засада.
Спасибо всем откликнувшимся.
16 Cool_Profi
 
15.05.18
10:26
Вот сейчас накидал примитивную обработку.
Просто одна строка в макете с полем даты с форматом ДФ=dd.MM.yyyy
Вывел туда текущую дату. Ничем больше не игрался. Сохранил в xlsx, проверил - там дата.
8,2,19
Может, в платформе проблема?
17 25-11
 
15.05.18
10:39
(16) Может и в платформе. А ты как проверял, что там именно дата? EXCEL весьма хитро себя ведёт. Например, сам преобразует, если ты захочешь прибавить 1.
Попробуй фильтр - мне пользователи на это указывали.
18 25-11
 
15.05.18
10:58
(16) А самое простое установи у твоей ячейки числовой формат. Если там на самом деле сегодняшняя дата, то должно появиться число 43235  
А если этого не происходит, значит, всё-таки текст...
19 VS-1976
 
15.05.18
11:02
(18) Через формат всё же делается. В ячейке если задать Data формат, то в эксел формат передаётся. Только не используй Содержит значение иначе будет текст
20 3achem
 
15.05.18
11:08
Через VBA ещё никто не предложил?
21 25-11
 
15.05.18
11:08
(19) У меня не получается. Ты точно говоришь о свойствах ячейки табличного документа 1С?
22 25-11
 
15.05.18
11:13
(20) Через VBA особых проблем нет. Удаётся свести к одной строке (после открытия и активизации листа):

ТекЛист.Rows.Replace(".",".");

Но в самом общем случае, см. (7), EXCELя может и не быть. И тогда уже никак?
23 VS-1976
 
15.05.18
11:20
(21) Да сделай руками это. Через меню файл \ Новый \ Табличный документ. Там в ячейке ( свойствах ) задай формат. Потом сохрани как
24 Birmingem
 
15.05.18
12:05
Да, есть такая засада.
В 7.7 тоже с этой проблемой мучился.
Думал, уж в 8.3 то, должны были решить этот вопрос... Оказывается нет ... Пришлось опять, по старинке, программно файл Ексель заполнять.
25 25-11
 
15.05.18
12:15
(23) Сделал... всё равно текст получается. Может быть, действительно дело в версии платформы? У тебя какая?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший