В заявке № 2863 прислан файл обработки. При открытии его в 1c77 (wine), файл не открывается, 1С выдает "Неверный формат файла", на машине win2k3 этот файл открылся без проблем.
Бага воспроизводима
в 1с8.0 и выше данный формат не используется. Удаётся открыть только в виде текста.
А вообще не понятно, не открывается только этот файл, или все файлы формата .ert Если всё-таки другие файлы данного формата нормально открываются, то хотелось бы пример, чтобы понять как это должно работать по-правильному
Дригие файлы данного формата прекрасно открываются. Попробовал этот файл пересохранить в винде - результат тот же.
Created attachment 370 [details] Логи нормального файла и файла с ошибкой
Подознение вызывает место: ФАЙЛ С ОШИБКОЙ: 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"
Пробовал установить dCOM98 -ничего не изменилось
Бага где-то в этом месте: 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.
Пробовал вручную в файле отчёта исправить несколько байт после Inplace description. Поставил также как в отчёте, где страниц нет. В итоге ошибки не выдаёт, но и ничего другого тоже не выдаёт. Пробовал под Windows отредактировать файл отчёта - убрать из описаниния весь текст - не помогло: открывается с ошибкой. При просмотре файла оказалось, что теперь в Inplace description 2 страницы!
Бага всё-таки не в Inplace description. Inplace description и Page 1, Page 2 существуют независимо друг от друга. Так что бага должна быть где-то в Page 1.
Функция 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 Значит ошибка получается при разборе полученных данных
При удалении всего содержимого из таблицы файл открывается, но выдаётся сообщения типа: ДвухмерныйШтрихКод1_1<<?>>.Загрузить(ИмяФайлаБлокаШтрихКода); {C:\PROGRAM FILES\1CV77\TEST-CUT2.ERT(4292)}: Переменная не определена (ДвухмерныйШтрихКод1_1) ДвухмерныйШтрихКод1_2<<?>>.Загрузить(ИмяФайлаБлокаШтрихКода); {C:\PROGRAM FILES\1CV77\TEST-CUT2.ERT(4295)}: Переменная не определена (ДвухмерныйШтрихКод1_2)
удалением частей отчёта можно примерно локализовать место баги в файле. при удалении 2-й страницы бага есть. а если удалить таблицу на первой странице, то баги уже нет, и отчёт открывается нормально
Бага находится в ячейке R14C3:R16C4 (объединённый диапазон). А там находится вертикальный текст "№ п/п" Или бага в вертикальном тексте, или в символе "№"
Бага в вертикльном тексте. Если задать угол поворота 0, то бага исчезает
А ошибка заключается в повороте текста на 90 градусов. В 1C 7.7.020 ещё нет такой возможности, а в версии 7.7.025 уже есть. В версии 7.7.025 и выше данный файл прекрасно открывается
Раз ошибка не в wine, а разности версий 1С. Закрываю.