|
Глюк в платформе 8.2.18 | ☑ | ||
---|---|---|---|---|
0
dkonakov
06.09.13
✎
12:06
|
Коллеги, помогите разобраться. в 8.2.17 нижеописанный код отрабатывал без проблем. Он открывал созданный табличный документ с картинками и сжимал его. в 8.2.18 на выходе получаем пустой файл. В чем причина может крыться?
Попытка ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Исключение Предупреждение(ОписаниеОшибки() + Символы.ПС + "программа OpenOffice не установлена на данном компьютере!"); Возврат; КонецПопытки; Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Свойства = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства.Name = "AsTemplate"; Свойства.Value = Истина; Args = Новый COMSafeArray("VT_VARIANT", 3); Args.SetValue(0, Свойства); Свойства1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства1.Name = "Hidden"; Свойства1.Value = Истина; Args.SetValue(1, Свойства1); Document = Desktop.LoadComponentFromURL(ПривестиФайлКУРЛ(ИмяВременногоФайла), "_blank", 0, Args); Сообщить("Сжимаем документ с помощью OpenOffice"); Document.storeToURL(ПривестиФайлКУРЛ(ИмяВременногоФайла),Args); Свойства2 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства2.Name = "FilterName"; Свойства2.Value = "MS Excel 97"; Args.SetValue(2,Свойства2); ИмяФайла = ИмяВременногоФайла; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогОткрытияФайла.ПолноеИмяФайла = "ПрайсСКартинками"; ДиалогОткрытияФайла.Фильтр = "Файлы Microsoft Excel (*.xls)|*.xls|Все файлы (*.*)|*.*"; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; Если ДиалогОткрытияФайла.Выбрать() тогда ПереместитьФайл(ИмяВременногоФайла, ДиалогОткрытияФайла.ПолноеИмяФайла); Document.storeToURL(ПривестиФайлКУРЛ(ДиалогОткрытияФайла.ПолноеИмяФайла),Args); КонецЕсли; |
|||
1
dkonakov
06.09.13
✎
13:09
|
Главное, что непонятно, код же внешний, опеноффисовский, что они изменили в 1с? работу через COM?
|
|||
2
dkonakov
09.09.13
✎
14:18
|
Так и не могу понять. Никто не сталкивался?
|
|||
3
dkonakov
10.09.13
✎
11:14
|
Интересный момент. Косячит не этот код, а Табдок.Записать(). не может записать в xls, пишет нормально, но открыть файл потом нельзя.
|
|||
4
Любопытная
10.09.13
✎
11:23
|
А тип табличного документа в ТабДок.Записать() указывается?
|
|||
5
Infsams654
10.09.13
✎
11:43
|
(3) а открыть с помощью как ? Там у записываемого файла расширение то какое ?
|
|||
6
dkonakov
10.09.13
✎
11:51
|
(4) ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.xls);
(5) да, указывается принудительно xls. |
|||
7
Любопытная
10.09.13
✎
11:52
|
Так его опенофис потом открыть не может? Или вообще ничего не открывает?
|
|||
8
dkonakov
10.09.13
✎
12:12
|
(7) дальше офис ругается что файл поврежден и можно попробовать его восстановить. Файл не маленький, около 40 мегабайт. Но при этом файл, созданный в 8.2.17 открывается без проблем.
|
|||
9
hhhh
10.09.13
✎
12:17
|
(8) наверно, не до конца записался, а вы его уже открываете
|
|||
10
Галахад
гуру
10.09.13
✎
12:17
|
Может попробовать xlsx или xls97 ?
|
|||
11
Любопытная
10.09.13
✎
12:20
|
(10) xls эквивалентен xls97.
(8) xlsx опенофис сможет открыть? Может в нем попробовать? |
|||
12
Odavid
10.09.13
✎
12:23
|
(0) файл получаемый вскройте - там вообще формат xls или xlsx соблюден?
|
|||
13
Odavid
10.09.13
✎
12:24
|
Возможно, нужно просто обновить OpenOffice
|
|||
14
ptiz
10.09.13
✎
12:24
|
Ставить жестко xls97.
|
|||
15
dkonakov
10.09.13
✎
12:33
|
(10) xlsx да, нормально, но как известно - он не всем подходит, в глухих деревнях по прежнему xls.
Openoffice стоит 4.0, один и тот же файл, один и тот же код, а в частности - Табдок.записать() отрабатывают по разному. (14) Ставил, без толку. Есть мысль еще попробовать тестовую 8.2.19. |
|||
16
Odavid
10.09.13
✎
12:40
|
(15) вы для начала в MS откройте.
ОО все-таки в догоняющих, а не в лидерах. |
|||
17
dkonakov
10.09.13
✎
12:51
|
(16) Открываю в 2007 офисе, получаю - Microsoft Office может попробовать восстановить этот файл - 8.2.18.
Microsoft Office открывает файл без проблем. 8.2.17. |
|||
18
Любопытная
10.09.13
✎
12:55
|
(17) 8.2.18.? Последние цифры какие? Чтобы знать :)
|
|||
19
dkonakov
10.09.13
✎
12:57
|
(18) там вся линейка такая. Но вы не расстраивайтесь, у меня просто файлы огромные, с картинками, я их потом через OpenOffice сжимаю. На более мелких файлах такого глюка нет. Сейчас вот будем 19 платформу смотреть.
|
|||
20
Любопытная
10.09.13
✎
13:01
|
(19) всю линейку протестил?О_о Гигант
|
|||
21
dkonakov
10.09.13
✎
13:07
|
(20) всего то 6 релизов. Кстати, 19 платформа имеет такой же точно глюк...
|
|||
22
Odavid
10.09.13
✎
13:12
|
(21) да не глюк там с офисом, а 1С в 18 релизе сделала "нехорошо" с обработкой данных - вот на больших объемах и происходит "битость" выходного файла.
В 8.2.18 появились и тормознутости с запросами, и зависания в ранее работающих функциях... Сидите на 8.2.17, он - наиболее стабильный, хоть вся миста и не согшласна со мной. |
|||
23
Odavid
10.09.13
✎
13:13
|
*не соглашна ))
|
|||
24
dkonakov
10.09.13
✎
13:16
|
(22) к чему всё затевается. Я на 10.3 переезжаю, а там требуется 8.2.18 :(
|
|||
25
andr_andrey
10.09.13
✎
13:17
|
(24) сочувствую. К сожалению, при обновлении платформы с 8.2.17 на 8.2.18-19 тоже столкнулся с нигде не упоминаемым изменением способа обновления "накрытых" окон в системе 1С. Из-за этого кривой код франчайзи-внедренца убил рабочее место менеджера по продажам.
|
|||
26
Odavid
10.09.13
✎
13:17
|
(24) а вы попробуйте на 8.2.17 запустить. Вообще, 10.3 - не УТ11ГЛЮКрелиз, там фокусы-новые штучки 1С не нужны.
|
|||
27
Odavid
10.09.13
✎
13:18
|
(25)>>тоже столкнулся с нигде не упоминаемым изменением способа обновления "накрытых" окон
что за глюк? |
|||
28
dkonakov
10.09.13
✎
13:25
|
(26) попробуем, про 11 даже слышать не хочу. У меня ощущение, что надо подождать до 12 версии :)
Сейчас вот пришла в голову мысль переделать Табдок.Записать в код опенофиса. |
|||
29
zladenuw
10.09.13
✎
13:28
|
(28) покажи код, где ты табдок используешь.
|
|||
30
andr_andrey
10.09.13
✎
13:30
|
(27) насколько я понял, новые платформы стали лишний раз вызывать ПриПолученииДанных (OnDataGet) для ТабличногоПоля полностью накрываемых окон.
|
|||
31
dkonakov
10.09.13
✎
13:43
|
(29)
Это конец, а до этого формирую Табдок в цикле. Цикл показывать? ГСЧ = Новый ГенераторСлучайныхЧисел(); СлучайноеЧисло = ГСЧ.СлучайноеЧисло(0, 1000); ИмяВременногоФайла=КаталогВременныхФайлов()+СлучайноеЧисло+".xls"; Сообщить("Записываем табличный документ"); ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.xls); |
|||
32
zladenuw
10.09.13
✎
14:01
|
а если опеном сохранить. вроде какая то версия глючила. у меня заметка что нужно использовать 3,2,1
|
|||
33
banco
10.09.13
✎
14:12
|
(31) а чем ПолучитьИмяВременногоФайла("xls") не устраивает?
|
|||
34
dkonakov
10.09.13
✎
14:34
|
(33) разговор собственно не об этом :)
Глючит ТабДок.Записать() на больших файлах. |
|||
35
dkonakov
10.09.13
✎
14:35
|
(32) код сохранения ТабличногоДокумента через OpenOffice не продемонстрируете?
|
|||
36
Infsams654
10.09.13
✎
14:52
|
(31) у меня на этот счет тоже вражеская мысль давно закрадывалась на счет длинных данных.
И не только здесь Похоже, что ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.xls); делается в другом процессе, а код дальше пошел выполнятся. Т.е. на форме мы уже якобы записали, а на самом деле, файл еще пишется |
|||
37
dkonakov
10.09.13
✎
14:56
|
(36) сейчас специально для вас протестирую.
|
|||
38
Infsams654
10.09.13
✎
15:00
|
(36) + по HTTPСоединение передаешь post-ом очень большой кусок. Тут же возвращает, что все передано, ан нет - еще долго-долго грузит, а узнать когда же загрузится нельзя, т.к. увы - HTTPСоединение отработало
|
|||
39
dkonakov
10.09.13
✎
15:06
|
(38) собственно видно невооруженным глазом.
8.2.17 - какое то время программа "висит", пишет файл, файл получился 31 291 кб. 8.2.18 - брррык, секунды 2 "висит" и "ура готово" - 31280 кб файл. Битый. |
|||
40
dkonakov
10.09.13
✎
15:08
|
(38) ждать дальше смысла нет. Я подождал несколько минут, файл не изменился.
|
|||
41
НЕА123
10.09.13
✎
15:09
|
(31)
почему ГСЧ, а не просто ПолучитьИмяВременногоФайла()? |
|||
42
dkonakov
10.09.13
✎
15:12
|
(41) это принципиально? Разговор о некорректности работы Табдок.Записать() же....
|
|||
43
Infsams654
10.09.13
✎
15:15
|
(42) и все-таки проверь на малюсеньком файле
|
|||
44
dkonakov
10.09.13
✎
15:18
|
(43) На маленьких файлах всё успешно записывается. файл 1.3 мегобайта. Всё ок. а вот когда файл 30+ Мб - вот тогда возникают проблемы в 8.2.18.
|
|||
45
Infsams654
10.09.13
✎
15:38
|
(44) дак я и про то в (36). Пиши в 1С, открывай проблему, они там будут пудрить. Короче, самое лучшее (на их ответ): выслать им свою базу
|
|||
46
dkonakov
10.09.13
✎
16:31
|
(45) а куда именно писать?
|
|||
47
Odavid
10.09.13
✎
16:43
|
1c.v8.ru
|
|||
48
Odavid
10.09.13
✎
16:44
|
точнее, [email protected]
|
|||
49
dkonakov
10.09.13
✎
17:05
|
(48) письмо заслал. расскажу о результатах.
|
|||
50
dkonakov
11.09.13
✎
15:01
|
У меня ИТС нету, ответ, мы похоже и не узнаем.
|
|||
51
hhhh
11.09.13
✎
15:13
|
(22) на 8.2.17 конфигуратор глючит. Поэтому лучше сразу на 7.7 перейти и там сидеть.
|
|||
52
hhhh
11.09.13
✎
15:15
|
(50) а ексель открывает эти файлы?
|
|||
53
dkonakov
11.09.13
✎
15:18
|
(52) После табДок.Записать() в 8.2.18 НИЧТО не может открыть файл.
Аналогичное движение в 8.2.17 - всё открывается OpenOffice и Excel. |
|||
54
Odavid
16.09.13
✎
12:26
|
(50) давайте файл Эксель, я отошлю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |