Имя: Пароль:
1C
1С v8
Чтение Ексель
, ,
0 BubbleGumm
 
08.08.16
10:56
При попытке чтения xls файла созданного в 77 через табличный документ выдает ошибку:

ТабличныйДокумент.Прочитать(ИмяФайла);
по причине:
Ошибка при выполнении файловой операции  'D:\111\77.xls'

Как это г победить?
1 Горогуля
 
08.08.16
10:57
ещё пару раз запуусти, оно нервное, как блондинка
2 BubbleGumm
 
08.08.16
11:01
Хуже
3 BubbleGumm
 
08.08.16
11:01
Запускал, разрешения на файл крутил - нифига
4 Горогуля
 
08.08.16
11:02
(2) ой, всё, не трожь больше
5 BubbleGumm
 
08.08.16
11:02
еще полезные мысли будут?
или забить?
6 Garykom
 
гуру
08.08.16
11:11
77 штатно сохраняет в кривом слегка формате, Экселем открыть и пересохранить с апгрейдом формата согласиться.
7 BubbleGumm
 
08.08.16
11:13
хреново, грузить нужно автоматом, на машине екселя вообще нет
8 Garykom
 
гуру
08.08.16
11:18
(7) Выгрузка тоже автоматом? Пусть тот кто выгружает сначала проверит на кривизну.

Еще заюзать libre или любое другое что умеет кривые xls читать и пересохранять правильно.
9 Garykom
 
гуру
08.08.16
11:18
(8)+ После сохранения из 77 проверит а оно открывается ли.
10 ptiz
 
08.08.16
11:21
(5) Сохранять из 7.7 в mxl
11 Это_mike
 
08.08.16
11:21
А Прочитать() - это чьё? вроде у Йокселя такого нет (у ТабличногоДокумента в частности).
12 BubbleGumm
 
08.08.16
11:22
Формат файла ексель 5.0/95 - не читает 8 его похоже
Отправляют файл поставщики, он екселем открывается нормально, если сохранить в формате 97, то все гут.
С 95 форматом как быть интересно
13 BubbleGumm
 
08.08.16
11:22
(11) есть
14 Кирпич
 
08.08.16
11:23
У меня тут валяется прога одна, которая переделывает xls файлы,из 7.7 выгружаемые, из 1251 в UTF-8. Может поможет?
15 BubbleGumm
 
08.08.16
11:24
(14) Можно попробовать, она из 1с вызывается нормально?
16 Кирпич
 
08.08.16
11:25
(15) ну тупо в параметре имя файла и всё
17 Кирпич
 
08.08.16
11:25
могу на мыло кинуть
18 Кирпич
 
08.08.16
11:26
а. она даже формат меняет на xlsx
19 BubbleGumm
 
08.08.16
11:27
Ага, кинь пожайлуста
20 Кирпич
 
08.08.16
11:29
кинул. напиши работает или нет
21 BubbleGumm
 
08.08.16
11:30
Хорошо, спасибо
22 BubbleGumm
 
08.08.16
11:37
(20) Неа, не хочет

08.08.2016 13:35:32
Ошибка разбора XML:  - [1,160]
Фатальная ошибка:
Input is not proper UTF-8, indicate encoding !
Bytes: 0xF0 0xF3 0xE1 0x2E
23 Кирпич
 
08.08.16
11:39
(22) это кто такое пишет? 1С?
24 BubbleGumm
 
08.08.16
11:40
Да
25 Garykom
 
гуру
08.08.16
11:41
(0) Кста я правильно понял что обмен электронными доками через формат XLS ?
26 BubbleGumm
 
08.08.16
11:41
Да, этот поставщик так присылает
27 Кирпич
 
08.08.16
11:42
(24) кидай свой файлик, подшаманю
28 Кирпич
 
08.08.16
11:42
мож там кодировка не 1251 или ещё чо
29 BubbleGumm
 
08.08.16
11:44
(28) Кинул
30 Garykom
 
гуру
08.08.16
11:44
(26) Попроси DBF ))
31 BubbleGumm
 
08.08.16
11:46
Да фиг знает согласятся ли, да и с проблемой разобраться хочется, мало ли кто еще такие файлы зашлет
32 Garykom
 
гуру
08.08.16
12:00
(31) Поставщики соглашаются все, некоторые просто "менеджеры не умеют сами" в отличие от "в формате эксель".
Мы своих уже приучили ))
33 BubbleGumm
 
08.08.16
12:01
Ну все же, если получится читать что есть, будет лучше. Иначе придется просить, да
34 Кирпич
 
08.08.16
12:12
отправил. правда у меня и в старом варианте читалось :(
пробовал в 1С:Предприятие 8.3 (8.3.8.1652)
35 Кирпич
 
08.08.16
12:29
Делаю
ТабДок.Прочитать("C:\temp\000\1.xlsx");
ТабДок.Записать("C:\temp\000\1.mxl");

в mxl файле столбцы снизу куда то съезжают нафиг :(
чей глюк непонятно. в OpenOffice всё красиво
36 BubbleGumm
 
08.08.16
12:35
(35) Спасибо, попозже пропробую, отпишусь
37 BubbleGumm
 
08.08.16
16:46
(34) Сейчас из 1с вообще виснет. Если мышой файл кинуть пишет:
an unhandled exception is occured $0043A26D
Exception: [TsSpreadBIFF5Reader.ReadFromFile] Reading of OLE document failed
$0043A26D
$00435D7B
$004018EF
38 Кирпич
 
08.08.16
16:49
(37) всё ОК. это он уже переделанный. он теперь в тот же файл сохраняет. т.е. он делает из 1.xls опять 1.xls
39 Кирпич
 
08.08.16
16:50
у меня в 1с читается нормально
40 BubbleGumm
 
08.08.16
16:50
А куда он результат кладет? В исходной папке его нет
41 Кирпич
 
08.08.16
16:50
этот 1.xls скармливай 1С
42 Кирпич
 
08.08.16
16:51
он прямо исходный файл переделывает
43 BubbleGumm
 
08.08.16
16:52
аа, сейчас попробую
44 BubbleGumm
 
08.08.16
17:06
(42) Во, спасибо, работает)
Только, если имя файла с пробелами, игнорирует его. Переименовывавать приходится, но это фигня.
45 Кирпич
 
08.08.16
17:12
(44) ну давай исправим и это
46 Garykom
 
гуру
08.08.16
17:13
(45) Что за прога то?
47 Кирпич
 
08.08.16
17:20
(44) имя файла в ковычки помести :)
48 Кирпич
 
08.08.16
17:21
(46) это суперсекретная суперпрога
49 Кирпич
 
08.08.16
17:21
Дарю

uses
  Classes, SysUtils, LazUTF8, fpspreadsheet, fpsTypes, fpsUtils, xlsbiff5, xlsbiff8, LazFileUtils;
var
  MyWorkbook: TsWorkbook;
  MyWorksheet: TsWorksheet;
  InputFilename: string;
  S: string;
  CurCell: PCell;
begin
  InputFileName := ParamStr(1);
  if not FileExists(InputFileName) then begin
  Exit;
  end;
  MyWorkbook := TsWorkbook.Create;
  try
    MyWorkbook.Options := MyWorkbook.Options + [boReadFormulas];
    MyWorkbook.ReadFromFile(InputFilename, sfExcel5);
    MyWorksheet := MyWorkbook.GetFirstWorksheet;
    for CurCell in MyWorksheet.Cells do
    begin
      S := MyWorkSheet.ReadAsUTF8Text(CurCell^.Row, CurCell^.Col);
      CurCell^.UTF8StringValue:=AnsiToUtf8(S);
    end;
    //MyWorkbook.WriteToFile(ChangeFileExt(InputFilename,'.xlsx'),sfOOXML,True);
    MyWorkbook.WriteToFile(ChangeFileExt(InputFilename,'.xls'),sfExcel8,True);
  finally
    MyWorkbook.Free;
  end;
end.
50 Garykom
 
гуру
08.08.16
17:23
(49) оформи уже в нативе вк и на ис копейка капать будет
51 Кирпич
 
08.08.16
17:24
(50) оформи
52 Garykom
 
гуру
08.08.16
17:29
(51) Влом )) но наверно придется сделать нечто вроде для сервиса своего по парсингу накладных
53 Кирпич
 
08.08.16
17:31
(52) да на ИС есть вроде ВК для xls
54 Кирпич
 
08.08.16
17:36
(52) "сервиса своего по парсингу накладных"
это который с искусственным интеллектом? маню хочешь переплюнуть?
55 Garykom
 
гуру
08.08.16
17:39
(54) Угу, но у меня не будет заточки на загрузку в типовые.
Просто из кривых прайсов/документов екселя или "любых таблиц" делает стандартную табличку по требуемому шаблону.

Грузить дальше чем хошь, хоть типовыми загрузками ТЧ ну или образцы обработок в комплекте
56 Кирпич
 
08.08.16
17:49
(55) дело хорошее, но без искусственного интеллекта тут точно не обойтись :)

я одним тут интернетчикам делал из биллингов книгу продаж. мля... они мне каждый раз разные xls файлы присылали и всегда колонки местами меняли. надеюсь, что они уже в аду.
57 Garykom
 
гуру
08.08.16
18:04
(56) >они мне каждый раз разные xls файлы присылали и всегда колонки местами меняли.
Аналогично для решения этой траблы и ваяю "сервис"

>надеюсь, что они уже в аду
Ну зачем же так с будущими покупателям/клиентами?
58 Кирпич
 
08.08.16
18:51
(57) да я так, любя:)
59 WT2008
 
08.08.16
18:52
Прошу не кидаться тапками.
А, часом, слэши не надо ль удваивать удобства чтения компом для?

D:\\111\\...
60 Garykom
 
гуру
08.08.16
18:54
(59) а тоже знаешь фишку что слешем путь не испортишь ))
AdBlock убивает бесплатный контент. 1Сергей