Имя: Пароль:
1C
 
Загрузка данных из файла *.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);
       СоответствиеРеквизитов=обРазложитьСтрокуВСоответствие(ТекстСтроки, ",");
       КонецЦикла;
       
КонецПроцедуры
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn