Bug 933

Summary: 1Cv77: Не открывается файл обработки
Product: WINE@Etersoft Reporter: Синицын Иван <ivan>
Component: Файловые операцииAssignee: Виталий Перов <vitperov>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P5 CC: baraka, vitperov
Version: 1.0.8   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 760, 777    
Attachments: Логи нормального файла и файла с ошибкой

Description Синицын Иван 2007-12-11 15:48:45 MSK
В заявке № 2863 прислан файл обработки. При открытии его в 1c77 (wine), файл не открывается, 1С выдает "Неверный формат файла", на машине win2k3 этот файл открылся без проблем.
Comment 1 Виталий Перов 2008-04-01 21:27:42 MSD
Бага воспроизводима
Comment 2 Виталий Перов 2008-04-03 19:06:04 MSD
в 1с8.0 и выше данный формат не используется. Удаётся открыть только в виде текста.
Comment 3 Виталий Перов 2008-04-03 20:03:13 MSD
А вообще не понятно, не открывается только этот файл, или все файлы формата .ert

Если всё-таки другие файлы данного формата нормально открываются, то хотелось бы пример, чтобы понять как это должно работать по-правильному
Comment 4 Виталий Перов 2008-04-04 18:39:25 MSD
Дригие файлы данного формата прекрасно открываются.

Попробовал этот файл пересохранить в винде - результат тот же.
Comment 5 Виталий Перов 2008-04-04 18:42:14 MSD
Created attachment 370 [details]
Логи нормального файла и файла с ошибкой
Comment 6 Виталий Перов 2008-04-04 18:44:28 MSD
Подознение вызывает место:

ФАЙЛ С ОШИБКОЙ:
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\test.ert\\Inplace description" 520 0x33ddd0 (nil))
trace:file:ReadFile 0x820 0x1f94b88 5932 0x33df3c (nil)
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\test.ert\\Page.1" 520 0x33dd8c (nil))
trace:file:ReadFile 0x820 0x80028418 512 0x33db90 (nil)
trace:file:ReadFile 0x820 0x101b0f8 4096 0x33dfe0 (nil)
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\Program Files\\1Cv77\\BIN\\1cv7s.exe",0x33cfcc,0x33cfe0,(nil))

НОРМАЛЬНЫЙ ФАЙЛ:
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\work.ert\\Inplace description" 520 0x33ddd0 (nil))
trace:file:ReadFile 0x820 0x1f94b88 2 0x33dd54 (nil)
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\work.ert" 520 0x33defc (nil))
trace:file:FindFirstFileExW L"C:\\Program Files\\1Cv77\\CDExport.ert" 0 0x33d478 0 (nil) 0
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\Program Files\\1Cv77\\CDExport.ert",0x33d420,0x33d428,(nil))
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\CDExport.ert" 520 0x33d180 0x33d428)
trace:file:wine_nt_to_unix_file_name L"\\??\\C:\\Program Files\\1Cv77\\" -> "/home/wine/.wine-1c77oo/dosdevices/c:/Program Files/1Cv77/"
trace:file:NtQueryDirectoryFile (0x838 (nil) (nil) (nil) 0x33d410 0x1d6abc8 0x00002000 0x00000003 0x00000000 L"CDExport.ert" 0x00000001
trace:file:read_directory_stat trying optimisation for file L"CDExport.ert"
Comment 7 Виталий Перов 2008-04-04 20:10:19 MSD
Пробовал установить dCOM98 -ничего не изменилось
Comment 8 Виталий Перов 2008-04-04 21:46:28 MSD
Бага где-то в этом месте:
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\test.ert\\Inplace description" 520 0x33ddd0 (nil))
trace:file:ReadFile 0x820 0x1f94b88 5932 0x33df3c (nil)
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\test.ert\\Page.1" 520 0x33dd8c (nil))

т.е при чтении первой страницы Всего страниц 3.
Comment 9 Виталий Перов 2008-04-04 22:01:30 MSD
Пробовал вручную в файле отчёта исправить несколько байт после Inplace
description. Поставил также как в отчёте, где страниц нет. В итоге ошибки не выдаёт, но и ничего другого тоже не выдаёт.

Пробовал под Windows отредактировать файл отчёта - убрать из описаниния весь текст - не помогло: открывается с ошибкой.
При просмотре файла оказалось, что теперь в Inplace
description 2 страницы!
Comment 10 Виталий Перов 2008-04-05 12:27:07 MSD
Бага всё-таки не в Inplace description. Inplace description и Page 1, Page 2 существуют независимо друг от друга.

Так что бага должна быть где-то в Page 1.
Comment 11 Виталий Перов 2008-04-05 12:45:53 MSD
Функция ReadFile() проходит нормально. Сколько байт запрошено, столько и прочитано:
trace:file:RtlGetFullPathName_U (L"C:\\Program Files\\1Cv77\\test.ert\\Page.1" 520 0x33dd8c (nil))
trace:file:ReadFile 0x820 0x80028418 512 0x33db90 (nil)
fixme:file:ReadFile toRead=512 Read=512
trace:file:ReadFile 0x820 0x101b0f8 4096 0x33dfe0 (nil)
fixme:file:ReadFile toRead=4096 Read=4096

Значит ошибка получается при разборе полученных данных
Comment 12 Виталий Перов 2008-04-05 12:54:33 MSD
При удалении всего содержимого из таблицы файл открывается, но выдаётся сообщения типа:
ДвухмерныйШтрихКод1_1<<?>>.Загрузить(ИмяФайлаБлокаШтрихКода);
{C:\PROGRAM FILES\1CV77\TEST-CUT2.ERT(4292)}: Переменная не определена (ДвухмерныйШтрихКод1_1)
ДвухмерныйШтрихКод1_2<<?>>.Загрузить(ИмяФайлаБлокаШтрихКода);
{C:\PROGRAM FILES\1CV77\TEST-CUT2.ERT(4295)}: Переменная не определена (ДвухмерныйШтрихКод1_2)
Comment 13 Виталий Перов 2008-04-05 13:30:08 MSD
удалением частей отчёта можно примерно локализовать место баги в файле.

при удалении 2-й страницы бага есть. а если удалить таблицу на первой странице, то баги уже нет, и отчёт открывается нормально
Comment 14 Виталий Перов 2008-04-05 13:56:06 MSD
Бага находится в ячейке R14C3:R16C4 (объединённый диапазон).
А там находится вертикальный текст "№ п/п"
Или бага в вертикальном тексте, или в символе "№"
Comment 15 Виталий Перов 2008-04-05 14:05:00 MSD
Бага в вертикльном тексте. Если задать угол поворота 0, то бага исчезает
Comment 16 Виталий Перов 2008-04-05 14:33:20 MSD
А ошибка заключается в повороте текста на 90 градусов.
В 1C 7.7.020 ещё нет такой возможности, а в версии 7.7.025 уже есть.

В версии 7.7.025 и выше данный файл прекрасно открывается
Comment 17 Синицын Иван 2008-09-16 12:23:54 MSD
Раз ошибка не в wine, а разности версий 1С. Закрываю.