Имя: Пароль:
1C
1С v8
Глюк в платформе 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) давайте файл Эксель, я отошлю.