![]() |
![]() |
|
Загрузка данных из файла *.csv | ☑ | ||
---|---|---|---|---|
0
surfboy
23.07.08
✎
14:55
|
Файл выгружают мне из Аксапты, есть колонка со временем, формат там "ч:мм", но когда я загружаю его в 1С с помощью обработки, то он переводит дату в числовой формат. Вроде бы когда - то боролся с этим, но не помню как
|
|||
1
ТелепатБот
гуру
23.07.08
✎
14:55
|
||||
2
Fragster
гуру
23.07.08
✎
14:56
|
потому что обработка ексель использует? пишите свою обработку - ибо csv - это comma separated values!
а вообще - баян |
|||
3
Grek224
23.07.08
✎
14:57
|
а поный формат не пробовал т.е. включая секунды
|
|||
4
Grek224
23.07.08
✎
14:59
|
а что такого то csv не нравиться? вроде такой же формат что и xls. но с экселем xls было как то задница преобразовывалось дата в число... приходилось извращаться програмно. но там на самом деле была своя обработка загрузки.
|
|||
5
Grek224
23.07.08
✎
15:02
|
для екселя в выгрузке из любой программы оптимально использовать параметризированную строку вида:
ДатаДок##НомерДок##КодКонтрагента##.... ДатаДок1##НомерДок1##КодКонтрагента1##.... а при загрузке в 1С делаешь структуру по твоим данным-параметрам зазделенным в данном случае ##. в результате никаких идиотских преобразований экселя не будет и вполне четко и уникально выбираются данные. |
|||
6
Grek224
23.07.08
✎
15:04
|
если хочешь все таки рассовать все в разные колонки тогда пользуй dbf
|
|||
7
Fragster
гуру
23.07.08
✎
15:05
|
(4) нравится... просто загружать csv используя excel - изврат еще тот - ибо это текстовый вайл, разделенный запятыми. и намного быстрее его обработать средствами 1с целиком. и проблем с форматами не будет никогда
|
|||
8
Grek224
23.07.08
✎
15:10
|
тогда да но с другой стороны запятыми разделять в корне не верно. будут 100% ошибки у пользователя. а обрабатывать согласен лучше сначала прочитав его потом обработав. да и вообще если предполагается гонять большие данные то ексель изначально лучше не пользовать.
|
|||
9
Grek224
23.07.08
✎
15:11
|
лучше dbf или xml
|
|||
10
Grek224
23.07.08
✎
15:12
|
а еще в догонку кто то мне расказывал в свое время что у них в конторе аксапту и 77 связывали безшовно т.е. через OLE. вроде как говорил знакомый все рулило
|
|||
11
surfboy
23.07.08
✎
16:53
|
Все колонки нормально отделяет, все читается. Как доходит до колонки, где должна быть дата - то 1С читает значение колонки как число((
|
|||
12
surfboy
23.07.08
✎
17:07
|
В отладчике вижу
Док.Sheets(1).Cells(СчСтроки,10).Value 0,79166666666666 Число А в документе csv значение 18:00:00 |
|||
13
Fragster
гуру
23.07.08
✎
17:10
|
(11) не пробовал читать (2) и (7)? выкинь эксель!
|
|||
14
sergeystav
23.07.08
✎
17:13
|
Не мучайся с экселем сделай так:
Функция обРазложитьСтрокуВСоответствие(Знач Строка, Разделитель) Экспорт Соответствие=Новый Соответствие; ЧислоВхождений=СтрЧислоВхождений(Строка, Разделитель); Для i=1 По ЧислоВхождений Цикл ПервоеВхождение=Найти(Строка,Разделитель)-1; Значение=Лев(Строка,ПервоеВхождение); Строка=Прав(Строка,СтрДлина(Строка)-СтрДлина(Значение)-1); Соответствие.Вставить(i,Значение); КонецЦикла; Соответствие.Вставить(i,Строка); Возврат Соответствие; КонецФункции Процедура Прочитать_csv() Текст=Новый ТекстовыйДокумент; Текст.УстановитьТипФайла(КодировкаТекста.OEM); Текст.Прочитать(тФайл,КодировкаТекста.OEM); КолСтрок=Текст.КоличествоСтрок(); Для i=1 По КолСтрок Цикл ТекстСтроки=Текст.ПолучитьСтроку(i); СоответствиеРеквизитов=обРазложитьСтрокуВСоответствие(ТекстСтроки, ","); КонецЦикла; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |