Недавно случилась проблема, на одной машине сохраняем обработку с картинками, на другой она не открывается с ошибкой "Неподдерживаемый формат файла".
Опытным путем выяснил, что проблема в галерее картинок, ну и начал копать. Откопал что галерея - это сериализованный ImageList (о чем говорит заголовок файла "IL") из ComCtl32.dll с дописанной в конце таблицей сопоставлений с картинками и идентификаторами. Все иконки в нем 80х80. С форматом таблицы сопоставлений разобрался. Сам объект читается и пишется при помощи ImageList_Open() и ImageList_Write() соответственно.
Формат таблицы сопоставления:
DWORD - Заголовок - {0x01,0x00,0x00,0xff}
DWORD - Количество иконок
DWORD* - массив числовых идентификаторов иконок, в формате {i,0x00,XX} где XX - WORD - какой-то префикс. Соответствует имени файла
_picture.[i]00[XX].bmpWORD - Префикс XX
?? - Строка с идентификаторами в стандартном формате 1С, с предшествующей длиной. в формате "{{"ИДКартинки в 10х формате","Строка идентификатор из галереи"},{..},{..}..{..}}"
ImageList пишется в формате:
[Заголовок ImageList] = Gallery.head,
[Большой битмап с иконками] = Gallery.bmp,
[Таблица сопоставлений] = Gallery.tail
В соответствии с этим накидал тулзу на C# которая умеет разбирать галерею на картинки, собирать новую галерею из больших изображений, разобранной Gcomp'ом конфигурации в формате совместимом с GComp (head, tail и bmp ) и для прямой вставки в Compound (Gallery) при помощи FAR + DocFileBrowser, и собирать галерею из Gallery.bmp - но без таблицы сопоставлений, т.к. их взять в таком случае не откуда.
Сюда файлы не вставляются, поэтому так -
https://cloud.mail.ru/public/FsEE/1DUbvVLqi