пока пишу для себя, кто откорректирует - тому плюс :)
Идеология
Читаем весь файл ВК, при чтении файла делим его на блоки и определяем CRC, создаем в базе структуру описывающую подчиненность всех таблиц (включая системные Root и Free), сами данные в базу не копируем. Ориентируемся на минимально необходимые данные в базе, в идеале такую базу можно переслать специалисту "на посмотреть" без риска слива данных (в развитие этой темы: можно создать режим для пользователей, сами загружают битый файл, отправляют спецу, тот возвращает результат, пользователь сохраняет результат в битый файл). Для редактирования таблиц данных требуется дозагрузка из файла.
После построения дерева любые изменения пишем в справочник. Анализ структуры файла * Поиск кривых/множественных/NULL ссылок на блоки файла, предоставление ручной и автоматической коррекции * Парсинг потоковых данных * Парсинг соответствия данных их структуре (соответствие длинн полей и т.д.)
После сеанса генерим новый файл 1cd
Используем регистр а не файлы по причинам * Возможно придем к тонкому (и хранением данных на сервере) * Более удобно версинизировать данные * Из минусов - большой размер базы
DLL используем для чтения и записи (поблочно) файла 1cd
Структура
Справочники Фалы, Блоки - для хранения и анализа данных файла 1с Общий макет для DLL
Планы развития
много