Имя: Пароль:
1C
1C 7.7
v7: Неизвестный формат файла - программное открытие xlsx в Excel2003
,
0 Злопчинский
 
17.02.14
17:02
есть файлики *.xlsx
есть Excel 2003
с сайта MS установлена конвертилка xlsx
.
Если открываю интерактивно - открывается эксель, появляется окошечко (макрос?) "выполняется преобразование файла" и все ок - файл открыт
.
если открываю программно

Excel = СоздатьОбъект("Excel.Application");
Excel.DisplayAlerts = 1;
Excel.Application.Workbooks.Open(ИмяФайла);
.
появлятся окошко эксельное по тиеацу "Неизвстный формат файла тралалаля" http://screencast.com/t/K5hKmDDHWRZM
.
что нужно дописать, чтобы открывалось и программно тоже...?
спсб
46 Злопчинский
 
17.02.14
19:06
(34) - тот же самый вариант - не проходит, ругается на неизвестный формат файла
47 Torquader
 
17.02.14
19:08
Система какая ?
48 Torquader
 
17.02.14
19:11
Насколько я помню Convert.exe ИмяФайла.xlsx ИмяФайла.xls позволяет выполнить преобразование.
49 Злопчинский
 
17.02.14
19:12
win server 2003R2
50 Злопчинский
 
17.02.14
19:12
(48) у нас эта хрень называется moc.exe
???
51 Torquader
 
17.02.14
19:13
(50) Ну вот её и запускай.
52 Злопчинский
 
17.02.14
19:13
(48) я так попробовал, но он блин кидае в какой-то темповый каталог и открывает эксель.. чего мне не надо
53 Torquader
 
17.02.14
19:13
На сервер, стати, программа ставится в специальном режиме установки, чтобы она пользователям прописались.
54 Злопчинский
 
17.02.14
19:14
(35) а как в таком режиме ставить..?
55 Torquader
 
17.02.14
19:15
(54) Через control.exe установка программ.
56 Злопчинский
 
17.02.14
19:16
(55) шутку с конверт.экзк - заценил - утилита преобразования файловой системы.. ;-0
57 Вах 1-й
 
17.02.14
19:17
(52) ты пока трезвый, скажи завтра будет
ЗЫ нуегона непонятно с кем ночевать
58 Злопчинский
 
17.02.14
19:18
(55) а кинуть мну на почту [email protected] собственно уже экзешник конверетера?
59 Torquader
 
17.02.14
19:18
(56) Блин его excelcnv вроде бы зовут.
60 Torquader
 
17.02.14
19:20
61 Злопчинский
 
17.02.14
19:36
(60) посмотрел. заморочено. excelcnv конвертит криво - что и написано по ссылке, дальнейшие разборки с MOICE - как там внизу написано - офигеть блин... MOICE без центра обновлени яне ставится... херня какая-то блин капец для решени япроблемы
62 Злопчинский
 
17.02.14
19:50
.короче - поставил задачу сисадмину...
63 Torquader
 
17.02.14
20:18
(62) В общем - ж.о.п.а.
Я его поставил, настроил - это убожество сконвертило файл xlsx в xls, но внутри всё равно формат xlsx - и, говорят, что это не лечится.
Предлагается посмотреть в сторону OpenOffice.
64 Злопчинский
 
17.02.14
20:28
(63) а то... ;-)
пока - фиг с ним.
надо будет все равно "причесывать" загрузку заявок, приводить к единому формату... жпс.. клиента чтобы в простом экселе 2003 сохранил - этож КЛИЕНАТ НАПРЯЧЬ НАДО... да и там тоже зачастую не сильно продвинутые люди...
.
замучу под это дело или обмен по еди со всеми клиентами (но там же блин платно!0 илди свой сайт-прием заявок.
.
или пусть девки вручную конвертят.
65 Torquader
 
17.02.14
20:29
(64) В общем, из командной строки я пока только узнал, что MOC.EXE -f Файл.xlsx вызывает диалог сохранения файла в старом формате.
66 Злопчинский
 
17.02.14
20:30
В прицнипе, спасла бы эта фигня
http://infostart.ru/public/197777/
.
но не удалось ее подключить в 7-ку... в примере для 8-ки - 3 параметра в ПодключитьВнешнююКомпоненту, а в клюшках - всего один...
.
можно конечно еще извернуться как зип разобрать - у того же абадонны есть пример
67 Злопчинский
 
17.02.14
20:31
(65)по MOC - описание ключей сисадмин порылся - инфы вообще нет
68 Злопчинский
 
17.02.14
20:33
(65) это хорошо! но блин в терминале при входе сразу запускается 1ска и вопросы сторонних программ даже если я запущу командную строку из 1с - не факт что вылезут на передний экран - так бы в принципе спасло
69 Злопчинский
 
17.02.14
20:40
(65) еще бы туда подсунуть ключ итипа YES! (для автожмака "Сохранить")
70 Torquader
 
17.02.14
20:49
В общем, если в теле MOC.EXE покопаться, то оно ест только ключ -f, так как других с минусом просто не нашёл.
71 Torquader
 
17.02.14
20:53
Кстати, если ему передавать только имя файла, то он его преобразует и открывает Excel - сам.
Так что можно попробовать потом эту Excel поймать или переопределить в реестре, кого открывать.
72 Злопчинский
 
17.02.14
21:03
(71) да, можно, сделать типа moc1.exe и прописать для него цепочку вызова итоговой программы для открытия - типа батника - он получает полный путь темпового файла и перекидывает куда надо... - и уже получается кузяво...
73 ildary
 
17.02.14
22:27
(72) а мы кстати обсуждаем конвертилку и говорим о разных вещах - я говорил про FileFormatConverters.exe, а вы про что-то другое? moc какой-то...
74 Злопчинский
 
18.02.14
05:20
(73) FileFormatConverters.exe - сам по себе ничего не конвертит, это всего лишь инсталлятор
75 Voronve
 
18.02.14
06:47
(0) Смотри чо буржуи пищут
Opens a workbook.
Syntax

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

4 параметр с конца ...

Converter
The index of the first file converter to try when opening the file. The specified file converter is tried first; if this converter doesn’t recognize the file, all other converters are tried. The converter index consists of the row numbers of the converters returned by the FileConverters property.

Это правда от 2010 Excel
76 Jonny_Khomich
 
18.02.14
06:52
(0) через ADO грузи
77 Torquader
 
18.02.14
12:38
(74) Это чудо ставит это "умный" moc.exe
У меня, правда, возникла идея, что если в отладчике поймать вызов GetOpenFileName и просто закоментировать его, чтобы система перешла сразу на следующую функцию (но там ещё и проверку на ответ Cancel нужно отключить), то всё получится.
Другое дело, что так задачи не решаются.
78 Torquader
 
18.02.14
14:43
Я его "сделал".
В общем - берётся moc.exe и делается маленькая замена:
Сравнение файлов Moc.exe и MOC1.EXE
000027A0: FF 58
000027A1: 15 33
000027A2: 74 C0
000027A3: 11 40
000027A4: 00 85
000027A5: 30 C0
И вместо открытия диалога она просто сразу переходит к сохранению файла согласно заполненной структуре для OPENFILENAME.
Новый файл получается в той же директории, что и старый.
Передавать желательно с полным путём.
79 Torquader
 
18.02.14
14:47
С Word-ом, он, кстати, делает тоже самое.

P.S. для любителей отладки предлагается бонусная игра - выпиливание MsgBox с именем файла после успешного сохранения.

Удачи.
80 ЧеловекДуши
 
18.02.14
15:00
(79) Молодец! :)
81 Jaap Vduul
 
18.02.14
15:33
Насколько помню (сейчас mso2k3 под рукой нет), если после создания excel.application запустить "moc.exe путькфайлу.xlsx", то после этого нужная книга появляется в коллекции workbooks.
Единственно, нужно дождаться пока конвертер отработает.
82 b159263
 
18.02.14
15:37
(0) На самом деле файлы мс офиса xlsx представляют собой zip архив, так называемые файлы OPC (open packaging conventions). Из них можно вытащить информацию напрямую, минуя MS Office.
83 DrZombi
 
гуру
18.02.14
15:38
(82) Не все так просто :)
84 Torquader
 
18.02.14
15:38
(82) Причём, их можно как каталог xml-файлов рассматривать.
UnZip, насколько я помню, в 1С есть встроенный - можно попробовать.
85 b159263
 
18.02.14
15:39
86 Torquader
 
18.02.14
15:39
(83) Я думаю, проще, чем MOC отлаживать.
87 b159263
 
18.02.14
15:39
(83) Все очень просто, надо спецификацию формата почитать и все...
88 Torquader
 
18.02.14
15:40
(87) В мире программирования вообще ничего сложного нет, нужно только уметь читать документацию (ну и нужно, чтобы в документации про подводные камни что-то писали).
89 b159263
 
18.02.14
15:41
Народ кто схемы (XSD) MS Office найдет, скинте сюда. :)
90 b159263
 
18.02.14
15:42
(88) Не дай Бог!!! Нас всех выгонют... Побольше камней и багов... "Главное знать на реке все мели"...
91 Torquader
 
18.02.14
15:50
(90) Ну, если всех выгонят - то пусть тогда сразу на деревья обратно залазят и жрут кокосы.
92 Torquader
 
20.02.14
21:58
Кстати - что-нить взлетело - или так и бросили недоматросив ?
93 Злопчинский
 
20.02.14
22:12
(92) это вы мну?
94 Torquader
 
20.02.14
22:13
(93) Ну а кому ещё ?
Мне же интересно, что там получилось.
95 Злопчинский
 
20.02.14
22:14
(78) я не понял - по приведенным адресам в moc.exe прописать указанные батйики?
96 Злопчинский
 
20.02.14
22:14
(94) а что там могло получиться...? либо гемор либо ручная работа, либо попытки разобраться с другим гемором. При том объеме заявок что уменя есть - ручная переконвертация - еще терпима.
97 Torquader
 
20.02.14
22:15
(95) Ну да - если там то, что написано, то смело меняем - и диалог не появляется.
Только ещё остаётся окно MessageBox, но его я потом поймаю - если этот "механизм" поможет.
А вообще, мне кажется, что Excel, всё-таки, должен уметь открывать сам.
98 Злопчинский
 
20.02.14
22:15
если подправка moc - решит вопрос конвератции в той же папке с передачей полного пути - то вполне устроит.
99 Злопчинский
 
20.02.14
22:16
(97) нифига не понял
"..если там то, что написано, то смело меняем"
- что искать?
- на что менять?
.
или тупо в результате по приведенным адресам обеспечить приведенные значения?
100 Torquader
 
20.02.14
22:17
(98) Кстати, он из другой папки локально прекрасно запускается. А окошко - на следующей неделе выпилю, если время будет - я тут немного приболел - поэтому, как-то, в отладчике не копается.
101 Злопчинский
 
20.02.14
22:19
чтение их xlsx как из зазиповоного XML http://infostart.ru/public/139556/
102 Torquader
 
20.02.14
22:19
Делаешь копию файла.
Открываешь его в hiew.exe
Если по адресу 27A0 видишь FF 15 74 11 00 30
то меняешь на 58 33 с0 40 85 с0
Реально там вызов функции из dll, который превращается в pop eax и set eax в не ноль.
103 Torquader
 
20.02.14
22:20
(101) На сайте microsoft есть описание формата xlsx.
104 Злопчинский
 
20.02.14
22:22
(103) может кому-то это будет интересно... ;-)
105 Злопчинский
 
20.02.14
22:23
Вообще, блин, обмен СИМВОЛЬНОЙ ИНФОЙ в бинарных файлах меня задрал.
106 Torquader
 
20.02.14
22:23
(105) Все любят xml, но почему-то бояться, когда его положат в zip-архив.
107 Злопчинский
 
20.02.14
22:24
вот нахрена экселями отслыать если то же самое - простой плоский файл с разделителями/табуляторами - но юлин на это тямы не хватает.
108 Torquader
 
20.02.14
22:25
(107) Ну, обычный текстовый - он тоже не всегда читается правильно.
Вы как ни кладите граф в файл, всё равно не лезет, какой бы формат вы не выбрали, хотя в php наиболее удачная интерпретация есть.
109 Злопчинский
 
20.02.14
22:25
(106) иксемель наверное хорошо - но блин все равно его не прочитаешь и не распихаешь пока глазками/ручками не посмотришь - тогда какой с него толк... удобнее, конечно. но уже надо специнструменты для спецразбора (можно конечно и просто читать - но гемора много). в итоге - для тривиальных задач блин мегкакамазы какие-то
110 Злопчинский
 
20.02.14
22:26
9108) ну, все-таки для обмена учетной/оперативной читабельнйо инфой - все-таки текстов вполне хватит...
111 Злопчинский
 
20.02.14
22:27
9102) сисадмину задачу повесил, попробует, расскажет
112 Torquader
 
20.02.14
22:27
(109) У xml есть структура, в которой легко разобраться - если брать просто текстовый файл, то мы уже в кодировку упираемся, так как нет стандартного способа её указания (unicode пробел в начале - не в счёт).
113 Torquader
 
20.02.14
22:28
(110) Например, рарус написал обмен через xml, но потом нужно было пересылать картинки - класть их внутри, как двоичные данные - размер файла возрастает в несколько раз, решили рядом - а файлы-то теряются.
И получается фигура из четырёх букв.
114 Злопчинский
 
20.02.14
22:28
..хорошо когда н адвухконцах провода сидят техники - добазарились друг с другом - все ходит/грузится. если на проводе посадить передастов-манагеров - все суши весла, эксели последних форматов, glas которые блин ничем толком не читаются и прочие красоты
115 Злопчинский
 
20.02.14
22:29
(112) по всякому ясен пень бывает.
116 Злопчинский
 
20.02.14
22:30
в ПНД буду в совещании сидет слушать как будут рожать интеграцию инетмагазинеа неизвестно с чем неизвестно как неизвсетно куда и вообще неизвестно кто в инетмагазине собственно будет интеграцию делать...
117 Torquader
 
20.02.14
22:31
(116) А чего её рожать - web-сервис и всё уже написано до нас.
Причём, можно как из 1С на сайт, так и обратно.
118 Злопчинский
 
20.02.14
22:31
нет проблем - если есть узкоспециализированное решение с документацией отражающей суть решения. тогда понимается и строится приемлемо быстро. а как возьмеш ь универсальное решение - все хорошо, все сходится, но ребьеночек не наш
119 Torquader
 
20.02.14
22:32
(118) Универсальные решения проигрывают по скорости.
Потом, всё от нагрузки зависит - если сайт не очень, то его положат и без обмена.
120 Злопчинский
 
20.02.14
22:32
(117) там длинна яцепочка. ко мне сваливается только предзаказы и в конце консолидированный заказ. а все проблемы - еще до меня будут... ;-) я ж на клюшках сижу - какие там вебсервисы... я таких-то и словов не знаю..
121 Torquader
 
20.02.14
22:34
(120) На клюшках это робот делает в отдельном сеансе, по крайней мере, у меня взлетало.
ServerXMLHttpRequest прекрасно ходит на сайты, причём даже по https и с сертификатами.
122 Злопчинский
 
20.02.14
22:34
(118) вот дописывал клиенту обмен - взял за основу кем-то что-то написанное. - ну блин НОРМАЛЬНО НАПИСАНО - вся логтика видна сразу, ядаже особенно не вштыривал - и все заработало... потому что НОРМАЛЬНО СИСТЕМНО КТО_ТО НАПИСАЛ
123 Torquader
 
20.02.14
22:36
(122) Если специалисты хорошие, то обычно сначала пишутся условия и описание протокола, а только потом реализация.
Но, в 1С обычно - утром сел, а вечером - запустил, а если заработало - то забыл.
124 Злопчинский
 
20.02.14
22:36
(121) слабо втыкаю для чего там реквесты...? я пока розумию только обмен посредством забрать с ФТП файл-запрос с данными (роботом мониторить), засосать себе и выложить обратно файл-ответ... а как там на сайте это обработают - хз...
.
мыслю что возможно как-то более умно можно сделать - но я не в теме более продвинутых решений...
125 Злопчинский
 
20.02.14
22:37
(123) угу...
126 Torquader
 
20.02.14
22:39
(124) к сайту лучше по http ходить - ftp, как-то не очень решение. Да и при обрыве связи сложно узнать, до конца ли прочитан файл или нет.
127 Злопчинский
 
20.02.14
22:40
(126) типа кидаем хттп запрос - в ответ получаем данные...?
128 Злопчинский
 
20.02.14
22:42
(127) подозреваю что это есть кузяво, но навыков таких нет - забирал только пару раз таким образом картинки с сайтов...
129 Torquader
 
20.02.14
22:42
Ну да.
Причём данные можно как в "дереве DOM" смотреть так и в виде текста.
130 Злопчинский
 
20.02.14
22:47
да там всего надо будет получить пару цифр - по предзаказам типа "артикул-количество", по заказу - суммарно по предзаказам "артикул-колиечество". как мне дадут какой запрос им на это засылать - зашлю.
131 Злопчинский
 
20.02.14
22:49
(129) спсб. я если что - если будут принципиальные трудности - стукнусь к тебе за помощью (за денежку в т.ч. возможно), ок?
пошел пить чай с малинйо бо горло чуток прихватило... и настроение не в дугу... буду пить чай и печалиться
132 Jaap Vduul
 
20.02.14
22:49
А я, кстати, проверил у себя на одной машине:
winxp sp3
msow2k3 sp3 (11.0.8237.0)
excelcnv.exe (12.0.6214.1000)
Работает без всяких танцев вокруг moc.exe
(т.е. при открытии xlsx-файла автоматом запускается excelcnv.exe)
133 Torquader
 
20.02.14
22:51
(132) У меня дома тоже, запускается автоматом Excel, только проблема в том, что из самой Excel файл не открыть.
(131) Болеть не надо, а то будешь как я - сижу и жру всякие лекарства. Помог только аспирин, кстати.
134 Jaap Vduul
 
20.02.14
22:53
>> запускается автоматом Excel, только проблема в том, что из самой Excel файл не открыть.
Переведи.
135 Torquader
 
20.02.14
22:53
(134) Просто, если открыт Excel, и хочется открыть файл через меню-файл-открыть, то не получается, почему-то.
136 Torquader
 
20.02.14
22:54
При щелчке на файле, как пользователи привыкли - всё работает.
137 Jaap Vduul
 
20.02.14
22:59
(136)
Ну хз, может, конвертер криво встал.
У меня, помнится, первая версия тоже глюкала, но после установки sp1 работает как часы.
138 фобка
 
20.02.14
23:03
(76) +1
139 Torquader
 
20.02.14
23:06
(138) ADO хорошо, если файл Excel - это таблица с одинаковыми данными в строках. Если где-то написано число, а в другой строке - текст, то ADO, к сожалению, такого не переваривает.
Конечно, там есть свои методы обхода (даже через запись чего-то в реестр), но не всегда они дают результат.
140 Torquader
 
20.02.14
23:51
В общем, MessageBox - это тоже достаточно быстро:

Сравнение файлов Moc.exe и MOC1.EXE
000027A0: FF 58
000027A1: 15 33
000027A2: 74 C0
000027A3: 11 40
000027A4: 00 85
000027A5: 30 C0
00002954: FF 58
00002955: 15 58
00002956: 6C 58
00002957: 11 58
00002958: 00 33
00002959: 30 C0

Только вот нужно проверять, что процесс завершился, так как он вообще теперь ничего не говорит.
141 Злопчинский
 
21.02.14
00:51
(132) ты этот эксель олей запусти и подсунь в открытие xlsx
142 Jaap Vduul
 
21.02.14
13:45
(141)
Разумеется,я именно так и проверял.
143 Злопчинский
 
21.02.14
14:52
(142) у мну не получается... по настройкам видно что при интерактивном открытии xlsx - отрабатывает конвертор, а результат уже в эксель передается .. как-то так... по оле - соответветсвенно никакого конвертора не запускается автоматом
144 Jaap Vduul
 
21.02.14
15:04
(143)
Ну, я версии своего ПО указал - проверьте, может вам обновиться надо.
145 Torquader
 
21.02.14
15:19
(144) Я-то вообще дома ExcelView поставил - теперь что бы не открывал - открывается он.
Основная теорема систематики: Новые системы плодят новые проблемы.