Если используется встроенная oleaut32, то при входе в базу выводится ряд сообщений об ошибках. Дистрибутив 1С: /var/ftp/pvt/Windows/1C/1Cv77/B770027-Network Конфигурация: /var/ftp/pvt/Windows/1C/1Cv77_configs/2008-05/1CACC45/R770498
При входе в базу два раза выводится сообщение "Ошибка открытия документа", а после этого также довольно часто выводится "Неправильный формат файла". Фрагмент лога, предшествующий первому сообщению: trace:ole:OLEPictureImpl_Load (0x1b0c3d8,0x32ce50) trace:ole:OLEPictureImpl_Load stat failed with hres 80004001, proceeding to read all data. trace:ole:OLEPictureImpl_Load Reading all data from stream. trace:ole:OLEPictureImpl_Load loaded 39779 bytes. trace:ole:OLEPictureImpl_Load line 1473 hr 00000000 magic 0xcdd7 trace:ole:OLEPictureImpl_LoadAPM trace:metafile:SetMetaFileBitsEx line 1095 trace:ole:OLEPictureImpl_Load return 80004005 второму сообщению: trace:ole:OLEPictureImpl_Load (0x1a640b8,0x32ae80) trace:ole:OLEPictureImpl_Load stat failed with hres 80004001, proceeding to read all data. trace:ole:OLEPictureImpl_Load Reading all data from stream. trace:ole:OLEPictureImpl_Load loaded 410911 bytes. trace:ole:OLEPictureImpl_Load line 1473 hr 00000000 magic 0x4d42 trace:ole:OLEPictureImpl_SetBitmap bitmap handle 0x6998 trace:ole:ConnectionPointImpl_EnumConnections (0x1a64128)->(0x32acf8) trace:ole:OLEPictureImpl_Load return 00000000 trace:ole:OLEPictureImpl_Release (0x1a640b8)->(ref before=2) trace:ole:OLEPictureImpl_PictureChanged (0x1a640b8)->() trace:ole:ConnectionPointImpl_EnumConnections (0x1a64128)->(0x32ae0c) trace:ole:OLEPictureImpl_Release (0x1a640b8)->(ref before=1) trace:ole:OLEPictureImpl_Destroy (0x1a640b8) trace:ole:ConnectionPointImpl_Release (0x1a64128)->(ref before=1) Выяснил, что соответсвующий первой ошибке вызов OLEPictureImpl_Load читает картинку из стрима CalcVar\CalcVar_Number401\WorkBook\Page.4 в файле 1cv7.md.
Переделал функцию OLEPictureImpl_Load так, чтобы она не использовала метод Stat интерфейса IStream. Эта функция реализует метод Load интерфейса IPersistStream объекта картинки. В MSDN говорится, что этот метод может использовать только Seek и Read: http://msdn.microsoft.com/en-us/library/ms680568(v=VS.85).aspx В результате при входе в базу перестали появляться окна с сообщениями об ошибках. Осталась проблема с появлением вот такого сообщения внизу: ВерсияВнешнейОбработкиИБлока = Парам.Получить("Версия"); {C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\RP08Q1.GRP\REKLAMA.ERT(41)}: Поле агрегатного объекта не обнаружено (Получить)
> ВерсияВнешнейОбработкиИБлока = Парам.Получить("Версия"); > {C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\RP08Q1.GRP\REKLAMA.ERT(41)}: Поле > агрегатного объекта не обнаружено (Получить) Проблема не проявляется, если использовать для 1С стороннюю msvcrt.
Принято.