Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 4156 - Печать линий в 1С   Make a simular bug
Summary: Печать линий в 1С
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Печать ; Диалог печати (show other bugs)
Version: unspecified
Hardware: PC All
: P3 minor
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact: Денис Баранов
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3932 7391
  Show dependency treegraph
 
In work:
Reported: 2009-07-29 21:53 MSD by Денис Баранов
Modified: 2011-06-27 15:24 MSK (History)
3 users (show)

See Also:
Заявки RT: 11037, 11189
Связано с:
Дата напоминания:


Attachments
Пример ошибки (26.77 KB, application/pdf)
2010-11-18 03:58 MSK, Денис Баранов
Details
Реестр документов в Windows (178.14 KB, image/jpeg)
2010-11-18 03:58 MSK, Илья Шпигорь
Details
Реестр документов в Wine (171.29 KB, image/jpeg)
2010-11-18 03:58 MSK, Илья Шпигорь
Details
Реестр документов в Wine с патчем (132.19 KB, image/jpeg)
2010-11-18 03:58 MSK, Илья Шпигорь
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Денис Баранов 2009-07-29 21:53:31 MSD
Created attachment 1270 [details]
Пример ошибки

Конфигурация Торговля и склад.
Реестр документов не выводится на печать -
задание просто пропадает.
При этом в консоль валится
fixme:psdrv:PSDRV_SelectBitmap stub
fixme:bitmap:BITMAP_SetOwnerDC Trying to select bitmap 0x3d18 in different DC
type

Ошибка возникает из-за неправильно работающей функции Biblt() (http://bugs.etersoft.ru/show_bug.cgi?id=664)

Предлагается сделать хак, который будет вместо мусора заполнять 0.
Comment 1 Vitaly Lipatov 2009-07-29 22:22:21 MSD
В этом случае
а) не будет обращений к неинициализированной памяти (мусору), которая ведёт к падению
б) Линии будут нормально чёрными

Если конечно я правильно понимаю проблему.
Comment 2 Илья Шпигорь 2009-08-21 14:18:53 MSD
Created attachment 1295 [details]
Реестр документов в Windows
Comment 3 Илья Шпигорь 2009-08-21 14:19:18 MSD
Created attachment 1296 [details]
Реестр документов в Wine
Comment 4 Илья Шпигорь 2009-08-24 13:42:36 MSD
Выложил патч.

Проблема с функцией StretchBlt. В случае работы с DC принтера она вызывает StretchDIBits. Перед этим происходит заполнение bits. В данном случае этого сделать не удается. Bitmap, который находится в hdcSrc, имеет пустое bmBits равное NULL. Не совсем понятно почему так происходит, ведь в windows пунктирная линия копируется. Из-за этого в bits оказывается мусор, который и выводится на печать.

Решение заключается в проверке результата работы GetDIBits. Если возвращаемое значение равно 0, тогда область памяти bits заполняется нулями.
Comment 5 Илья Шпигорь 2009-08-24 13:45:34 MSD
Created attachment 1300 [details]
Реестр документов в Wine с патчем

После приложения патча линии выглядят так.
Comment 6 Andrey Vusik 2009-09-24 17:18:42 MSD
WINE@Etersoft 1.0 SQL 1.0.11-eter8.3/4

Печатается корректно. Линии нормально чёрные. 
Только смущает их неодинаковая толщина.

Закрываю.