Обнаружена ошибка при попытке печати в ППДГР Хоть в #16089 и сказано, что ППДГР полностью работает, вероятно, возможность печати не проверялась. Необходимо протестировать в актуальной версии W@E 7.20 в ОС ALT Linux Workstation 10.
Тестировал в клоне 260 (iviv-16143-ALTWS10) Установил W@E: WINE@Etersoft 7.20.2-alt1.p10.2 установлен. Пример использования (запускать под пользователем): $ wine setup.exe Установленные пакеты WINE@Etersoft: # epm qp wine # rpm -qa | grep -E -i --color -- "(wine)" wine-etersoft-common-7.20.2-alt1.p10.2.noarch wine32-etersoft-7.20.2-alt1.p10.2.i586 wine32-etersoft-grdwine-0.5.7.1-alt0.p10.1.i586 wine-etersoft-winetricks-20220617-alt1.p10.2.noarch wine-etersoft-full-7.20.2-alt1.p10.2.x86_64 wine-etersoft-programs-7.20.2-alt1.p10.2.x86_64 wine-etersoft-mono-7.4.0-eter0.p10.1.noarch wine-etersoft-grdwine-0.5.7.1-alt0.p10.1.x86_64 wine-etersoft-network-7.0.7-alt0.p10.1.x86_64 wine-etersoft-gecko-2.47.3-alt1.p10.2.noarch wine-etersoft-7.20.2-alt1.p10.2.x86_64 Смонтировал ftp и перешёл в /var/ftp/pvt/Windows/PPDGR/SetupPPDGR2.msi и запустил оттуда установку $ wine SetupPPDGR2.msi После установки не запустилось, тогда доустановил $ epmi libunwind.so.8, $ winetricks dotnet48 и $ winetricks tahoma Запустилось. Нажал на "Печать" - отказ по причине неправильного заполнения формы. Заполнил форму произвольными сочетаниями букв и цифр, так чтобы не выдавало ошибок, нажимаю "Печать". Окошко "Печать и выгрузка невозможны. Найдите файл C:\users\guest\Documents\PPDGR_Errors.log и перешлите его разработчикам. Открыл этот файл, вот его содержимое: Список ошибок: The 'СрокЛиквООО' attribute is invalid - The value '' is invalid according to its datatype 'ДатаТип' - The Pattern constraint failed., (строка 1 позиция 320)<?xml version="1.0" encoding="windows-1251"?><Файл ИдФайл="RO_R15016_0000_0000_0000000000000_20221208_a99cbb56-f2df-47a1-9b9f-c46062e00a44" ВерсПрог="ППДГР_2.2.3" ВерсФорм="5.01"><Документ КНД="1111521" КодСФРД="Р15016" ДатаДок="08.12.2022"><СвЮЛ ОГРН="1234567890000" ИННЮЛ="1234567890" /><ПрПредЗаяв ВидПрПредЗаяв="1" СрокЛиквООО="" /><Заявитель ВидЗаявит="2"><СвЗаяв ИННФЛ="321321312321"><ФИО><Фамилия>АВЫАВЫ</Фамилия><Имя>АВЫАВЫ</Имя><Отчество>ПАВЫ</Отчество></ФИО><СвРожд ДатаРожд="01.01.2001" МестоРожд="АВВЫА" /><УдЛичнФЛ КодВидДок="21" СерНомДок="33 32 132132" ДатаДок="11.11.2020" ВыдДок="АВЫАВЫ" КодВыдДок="132-151" /></СвЗаяв><E-mail>BLA</E-mail><Тлф>432</Тлф><ВидВыдач>1</ВидВыдач></Заявитель></Документ></Файл> Изучив его, заполнил графу, о которой сообщалось. После этого снова нажимаю на "Печать", нажимаю что уверен в том, что хочу запустить на печать с предупреждениями. Получил окошко: Сбой печати Просмотр: Проверка каталога шаблонов печати: Открытие каталога для чтения: Object doesn't support this action. "Печать НД с PDF417 3.3.2 (пакет)". На сайте ГНИВЦ посмотрел что такое PDF 417: https://www.gnivc.ru/software/fnspo/pdf417/ Воспользовался ссылкой, скачал по ссылке https://www.gnivc.ru/html/Soft/pdf417/msxml4.zip распаковал и установил, не помогло После вписал $ winetricks msxml4 и установил, не помогло. После попробовал провернуть всё вышеперечисленное заново, но в 32-битном префиксе, тоже не помогло
У меня при нажатии на печать в консоли такое: 0128:err:ole:com_get_class_object class {cfd2f2dd-0151-4c65-8b21-69f18718eb83} not registered 0128:err:ole:create_server class {cfd2f2dd-0151-4c65-8b21-69f18718eb83} not registered 0128:fixme:ole:com_get_class_object CLSCTX_REMOTE_SERVER not supported 0128:err:ole:com_get_class_object no class object {cfd2f2dd-0151-4c65-8b21-69f18718eb83} could be created for context 0x15 И окошко «Сбой печати» с сообщением «Не найден модуль печати. Retrieving the COM class factory for component with CLSID {cfd2f2dd-0151-4c65-8b21-69f18718eb83} failed due the following error: 80040154 Exception from HRESULT: 0x80040154 {REGDB_E_CLASSNOTREG}.
Было что-то подобное https://bugs.etersoft.ru/show_bug.cgi?id=4128 Но судя по https://forum.buhsoft.ru/node/31009 Скачиваете с сайта ГНИ библиотечный модуль печати PDF-417, устанавливаете. В своей программе подлючаете TAXDOCPrt.dll Код: var DocPrint: _TAXDOCPrint; // создаем интерфейс (GUID взят из реестра (во время установки модуля печати СОМ-сервер регистрируется, и в реестре появляется соответ. запись) DocPrint:=CreateComObject(StringToGUID('{CFD2F2DD-0151-4C65-8B21-69F18718EB83}')) as TAXDOCPrint; DocPrint.PrintTiffFolder:=GNITemplatePath; // указываем, где находятся файлы шаблонов *.tif DocPrint.SetPrintTiffParam('Наименование налогового органа-получателя',Name_GNI); DocPrint.PreviewFile(DataFileName,0,nil); //DataFileName - xml файл, который передаете в налоговую Это у меня как раз таки PDF417 не установлен.
Установил PDF417 через msi со страницы https://www.gnivc.ru/software/fnspo/pdf417/ Теперь при печати получаю окошко Сбой печати Просмотр: Проверка каталога шаблонов печати: Открытие каталога для чтения: Object doesn't support this action. "Печать НД с PDF417 3.3.2 (пакет)". илог 0158:fixme:gdiplus:GdipGetLineSpacing ignoring style 0158:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E56C: semi-stub 0158:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E5C0 {VT_BOOL: ffffffff} 0158:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E37C: semi-stub 0158:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E3D0 {VT_BOOL: ffffffff} compilation error: element decimal-format xsltParseStylestyleDecimalFormat: v already exists 0158:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E608: semi-stub 0158:fixme:scrrun:filesys_QueryInterface Unsupported interface {7fd52380-4e07-101b-ae2d-08002b2ec713} 0158:fixme:scrrun:filesys_QueryInterface Unsupported interface {37d84f60-42cb-11ce-8135-00aa004bb851} 0158:fixme:scrrun:folder_get_Size (016289B8)->(0065E690): stub Выполнил $ winetricks wsh57 в консоли 0274:err:resource:load_MUI_module NtOpenFile(L"\\??\\C:\\windows\\syswow64\\en-US\\scrrun.dll.mui") => c0000034 0274:err:resource:LdrFindResource_U module 6CDF0000 has MUI_RC_CONFIG but .mui resource file was not found regsvr32: DLL «scrrun.dll» успешно зарегистрирована После этого при печати окно Сбой печати Просмотр: Модификация [2] преобразования 23XML в prtXML: Method '~' of obect '~' failed. В консоли: 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E56C: semi-stub 0110:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E5C0 {VT_BOOL: ffffffff} 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E37C: semi-stub 0110:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E3D0 {VT_BOOL: ffffffff} compilation error: element decimal-format xsltParseStylestyleDecimalFormat: v already exists 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E608: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E574: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E5F8: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E28C: semi-stub TIFFReadDirectory: Warning, Unknown field with tag 50100 (0xc3b4) encountered. ... TIFFReadDirectory: Warning, Unknown field with tag 50201 (0xc419) encountered. 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E430: semi-stub 0110:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E488 {VT_BOOL: ffffffff} 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E564: semi-stub 0110:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E5B8 {VT_BOOL: ffffffff} 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E20C: semi-stub TIFFReadDirectory: Warning, Unknown field with tag 50100 (0xc3b4) encountered. ... TIFFReadDirectory: Warning, Unknown field with tag 50201 (0xc419) encountered. 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E3B0: semi-stub 0110:fixme:msxml:domdoc_setProperty Ignoring property L"NewParser", value 0065E408 {VT_BOOL: ffffffff} установил $ winetricks msxml4 после чего предпросмотр печати успешно открылся, со штрихкодами. Но при печати сообщение Ошибка печати Печать на принтер (Cups-PDF): GDI+ Не удалось выбрать страницу в TIF-файле: 2 (код: 2). [-10732117532 (0xC0080004)\Неверный дескриптор. \6 (0x6)\TifOperation.cpp (строка:1392)].
Та же ошибка при сохранении в TIFF. В консоли TIFFReadDirectory: Warning, Unknown field with tag 50100 (0xc3b4) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50101 (0xc3b5) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50200 (0xc418) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50201 (0xc419) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50100 (0xc3b4) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50101 (0xc3b5) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50200 (0xc418) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50201 (0xc419) encountered. Поставил winetricks gdiplus Теперь окно Сбой печати Просмотр: Получение преобразования для проверки 23XML: Получение числа страница Tiff-файла: GDI+: Не удалось создать объект из файла 'C:\АО ГНИВЦ\ППДГР-2\XML\Print\1111520_5.02000_02.tif' (код 2). [-10732117532 (0xC0080004)\\0 (0x0)\TifOperation.cpp (строка:361)]. 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E56C: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"MSXML2.DOMDocument.4.0", 0065E37C: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E608: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E574: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E5F8: semi-stub 0110:fixme:ole:CLSIDFromProgIDEx L"Scripting.FileSystemObject", 0065E28C: semi-stub TIFFReadDirectory: Warning, Unknown field with tag 50100 (0xc3b4) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50101 (0xc3b5) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50200 (0xc418) encountered. TIFFReadDirectory: Warning, Unknown field with tag 50201 (0xc419) encountered. 0110:fixme:wincodecs:FormatConverter_Initialize Unsupported conversion {6fddc324-4e03-4bfe-b185-3d77768dc905} -> {6fddc324-4e03-4bfe-b185-3d77768dc901}
> 0110:fixme:wincodecs:FormatConverter_Initialize Unsupported conversion {6fddc324-4e03-4bfe-b185-3d77768dc905} -> {6fddc324-4e03-4bfe-b185-3d77768dc901} Это GUID_WICPixelFormatBlackWhite: TGUID = '{6FDDC324-4E03-4BFE-B185-3D77768DC905}'; в GUID_WICPixelFormat1bppIndexed: TGUID = '{6FDDC324-4E03-4BFE-B185-3D77768DC901}';
Как я понял, окно «Ошибка печати» формируется компонентой PDF417 (иначе почему у нас с ней в 1С были такие же ошибки, что и здесь) https://bugs.etersoft.ru/show_bug.cgi?id=8330 Убрал использование сторонней gdiplus. При сохранении в одностраничные TIFF первая страница успешно записывается, а далее ошибка Ошибка печати Печать на принтер (Cups-PDF): GDI+ Не удалось выбрать страницу в TIF-файле: 2 (код: 2). [-10732117532 (0xC0080004)\Неверный дескриптор. \6 (0x6)\TifOperation.cpp (строка:1392)].
(Ответ Vitaly Lipatov на комментарий #6) > > 0110:fixme:wincodecs:FormatConverter_Initialize Unsupported conversion {6fddc324-4e03-4bfe-b185-3d77768dc905} -> {6fddc324-4e03-4bfe-b185-3d77768dc901} > Это > GUID_WICPixelFormatBlackWhite: TGUID = > '{6FDDC324-4E03-4BFE-B185-3D77768DC905}'; > в > GUID_WICPixelFormat1bppIndexed: TGUID = > '{6FDDC324-4E03-4BFE-B185-3D77768DC901}'; Поставил $ winetricks windowscodecs Но программа перестала запускаться с ошибкой 0124:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040154 for dll L"C:\\windows\\system32\\windowscodecs.dll" 0124:err:ole:com_get_class_object no class object {3692ca39-e082-4350-9e1f-3704cb083cd5} could be created for context 0x1 0124:fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub 0124:fixme:advapi:ReportEventW (CAFE4242,0x0001,0x0000,0x00000402,00000000,0x0001,0x00000000,0065DE10,00000000): stub 0124:err:eventlog:ReportEventW L"Application: PPDGR2.exe\nFramework Version: v4.0.30319\nDescription: The process was terminated due to an unhandled exception.\nException Info: System.ArgumentException\n at System.Drawing.Image.get_RawFormat()\n at System.Windows.Forms.ToolStripItem.set_ImageTransparentColor(System.D"... 0124:fixme:advapi:DeregisterEventSource (CAFE4242) stub Unhandled Exception: System.ArgumentException: Parameter is not valid. at System.Drawing.Image.get_RawFormat() at System.Windows.Forms.ToolStripItem.set_ImageTransparentColor(Color value) at PPDGR2.frmMain.InitializeComponent() at PPDGR2.frmMain..ctor() at PPDGR2.Program.Main()
Посмотрел на временный файл, даже убрал удаление файлов. В этом временном файле сохранена 1 страница в TIFF. Видимо, следующие страницы не могут сгенерироваться из-за ошибки. 0110:trace:file:GetFileAttributesW L"C:\\users\\lav\\Temp\\rad0E0F9.tmp" 0110:trace:file:RtlDosPathNameToNtPathName_U_WithStatus (L"C:\\users\\lav\\Temp\\rad0E0F9.tmp",0065C7E8,00000000,00000000) 0110:trace:file:RtlGetFullPathName_U (L"C:\\users\\lav\\Temp\\rad0E0F9.tmp" 520 0065C54C 00000000) 0110:trace:file:nt_to_unix_file_name_no_root L"users\\lav\\Temp\\rad0E0F9.tmp" not found in /home/lav/.wine/dosdevices/c:/users/lav/Temp 0110:warn:file:NtQueryAttributesFile L"\\??\\C:\\users\\lav\\Temp\\rad0E0F9.tmp" not found (c0000034) 0110:trace:file:CreateFileW L"C:\\АО ГНИВЦ\\ППДГР-2\\XML\\Print\\1111520_5.02000_02.tif" GENERIC_READ FILE_SHARE_READ creation 3 attributes 0x0 0110:trace:file:RtlDosPathNameToNtPathName_U_WithStatus (L"C:\\АО ГНИВЦ\\ППДГР-2\\XML\\Print\\1111520_5.02000_02.tif",0065C72C,00000000,00000000) 0110:trace:file:RtlGetFullPathName_U (L"C:\\АО ГНИВЦ\\ППДГР-2\\XML\\Print\\1111520_5.02000_02.tif" 520 0065C47C 00000000) ... 0110:trace:file:GetFileAttributesW L"C:\\users\\lav\\Temp\\rad0E0F9.tmp" 0110:trace:file:RtlDosPathNameToNtPathName_U_WithStatus (L"C:\\users\\lav\\Temp\\rad0E0F9.tmp",0065C3E8,00000000,00000000) 0110:trace:file:RtlGetFullPathName_U (L"C:\\users\\lav\\Temp\\rad0E0F9.tmp" 520 0065C14C 00000000) 0110:trace:file:nt_to_unix_file_name_no_root L"users\\lav\\Temp\\rad0E0F9.tmp" not found in /home/lav/.wine/dosdevices/c:/users/lav/Temp 0110:warn:file:NtQueryAttributesFile L"\\??\\C:\\users\\lav\\Temp\\rad0E0F9.tmp" not found (c0000034)
Было протестировано в новом релизе W@E 8.12. В нём ошибка не воспроизвелась. https://bugs.etersoft.ru/show_bug.cgi?id=16648#c1 Ставлю задаче "Решена"
Закрываю задачу.