Tool_1CD. Программа просмотра файлов баз *.1CD (1Сv8.x)
И нужно что-то с этим делать. Ошибка возникла при некорректном завершении обновления базы. Дополнительно можно сохранить в файл основную конфигурацию или конфигурацию базы данных, а также отдельно конфигурации поставщика.
Оно оказалось на смещении 0C782000 Проанализировав целую базу, я увидел, что в ней таблица Config ожидаемо находится на 9000, а вот ConfigSave - на 07С83000. Чтобы мои хирургические вмешательства не уничтожили то немногое, что осталось. Далее в корневом объекте мы видим записи 00 00 C7 7E и 00 00 С7 7F - это как раз начало блока ConfigSave. Наверное, ничего страшного не произойдет, если она будет не совсем целая.
Tool_1CD. Программа просмотра файлов баз *.1CD (1Сv8.x) - Утилита сделана такой, чтобы ее можно было дать в руки обычному пользователю, не боясь, что он что-нибудь накосячит, но в тоже время набор действий рассчитан и на профессионала. Спасибо, я борясь за чистоту системы от объёма установленных в систему программ, зачастую устанавливаю их не на системный диск а на дополнительный, или в другой раздел.
Для работы не требует установленной 1С. Соответственно, не нужны никакие пароли для открытия файла. Файл базы открывается монопольно, поэтому нельзя просматривать базу при запущенной 1С, в которой открыта эта база. При этом двоичные данные могут быть распакованы в режиме автоопределения. Эта версия лежит вторым файлом! Альфа-версия означает, что ошибок в функционале редактирования еще очень много! Ни в коем случае не используйте на рабочих базах, только на копии! Выражаю огромную признательность за конструктивное обсуждение структуры хранилища конфигураций, а также и за тестирование и обсуждение программы. Хочу сказать немного слов про хранилище конфигураций. Но в версии 8. Поэтому, при переносе хранилища и бэкапах не забывайте о внешних данных. Во всех версиях рядом с хранилищем может также лежать папка cache, в которой сохраняются снэпшоты версий конфигурации. Они используются для ускорения доступа к нужной версии конфигурации, но их можно удалять, целостность хранилища при этом не нарушается. В используемой ранее реализации иногда возникали ошибки deflate, что, в свою очередь, приводило к невозможности выгрузки отдельных версий конфигураций из хранилища конфигураций. За сообщения об ошибках и помощь в тестировании большое спасибо Евгению Мартыненкову и Леониду Паутову! Теперь правильно обрабатываются динамические обновления и большие файлы, хранящиеся в нескольких записях таблиц CONFIG и CONFIGSAVE. Так как в 8. Ниже приведена табличка максимальных размеров внутренних файлов для баз формата 8. В файле записей таблицы DATA может быть максимум 4294967295 записей, поэтому максимальный размер файла записей таблицы не может превышать произведения длины одной записи на 4294967296. А при большом размере страницы это может оказаться меньше, чем максимальный размер внутренних файлов. В силу строения файла больших двоичных данных таблицы BLOB общий размер файла BLOB не может превышать ровно одного терабайта 1024 ГБ. При размерах страниц 32K и 64K это меньше макисмального размера внутренних файлов. При этом длина одной записи BLOB в таблице не может превышать 4 гигабайт. Поэтому для каждого файла в базе вычисляется свой индивидуальный максимальный размер.
Поэтому я совершенно не переживая взял и удалил целый блок с 0C780000, ровно 0x1000 байт - до следующего блока. Попробовал: удалил все байты с 0x9000 по 0x0C782000 и потом вставил из целой базы. Дальше идёт ещё одна одинаковая запись 00 00 00 05. CD и находим в нем строку users. Перехожу к этому смещению C782000 и там буквально экраном ниже начинается таблица ConfigSave. А Наташу нужно отправить прыгать по весенним лужам. Затем я на всякий случай проверил базу через chdbfl, она ругнулась на таблицу ConfigSave, но сообщила, что всё починено. Соответственно, смещение таблицы Config не меняется и поэтому она открывается утилитой верно, а все остальное съезжает. Пока набор функций невелик, но со временем будет расти. Вот как хранится размер: А вот так мы можем посмотреть, сколько на самом деле занимает файл: Видим, что никакого обмана: размер файла 1FA31000, судя по тому, что в конце числа у нас три нуля, оно действительно кратно 0x1000.