ВНИМАНИЕ: проект предназначен исключительно для образовательных целей. Его нельзя использовать в промышленной эксплуатации. Прямые операции с базой данных могут повредить или уничтожить данные — используйте их только на одноразовых тестовых копиях.
Текущий статус: дорожная карта автономного конвертера выполнена на
100% (56 из 56 задач), но это не означает готовность к промышленной
эксплуатации. Полное сравнение УТ на master (e72d595) совпадает с
сохранённым нативным экспортом побайтово на 92,4249% (45 864 из 49 623
файлов); до полного совпадения остаётся 3 759 файлов. Диагностическое
полное сравнение БСП даёт 86,4650% (10 547 из 12 198 файлов) и
1 651 оставшийся файл. Это промежуточные snapshot-gate результаты от
24 июля 2026 года, а не заявление о выпускной готовности.
Исследовательский инструмент на Rust для создания альтернативного способа загрузки конфигураций 1С из XML-исходников вместо медленного штатного процесса.
Первый этап был ограничен режимом чтения целевой информационной базы:
- поиск инструментов командной строки 1С;
- сканирование деревьев исходников в детерминированные манифесты;
- сравнение манифестов и построение плана загрузки;
- профилирование внешних запусков
ibcmdили1cv8; - создание шаблонов трассировки SQL Server и технологического журнала 1С;
- группировка экспортированного XML из SQL Server Extended Events по нормализованному тексту SQL.
Для исследованных строк хранилища теперь доступны защищённые средства прямой записи в базу данных. Они по-прежнему предназначены только для одноразовых тестовых баз.
Конвертер XML/CF реализован как автономное решение на Rust и при работе не
зависит от ibcmd, 1cv8/Конфигуратора, EDT или JVM. Независимые оси версий,
уровни возможностей, правила обработки непрозрачных данных и политика потерь
с безопасным отказом описаны в
контракте автономной конвертации.
По состоянию на 2026-07-23 завершены все 56 принятых конечных задач в эпике автономного конвертера #178 (100%). Актуальные состояния рабочего процесса отслеживаются в проекте GitHub #5. Это прогресс дорожной карты по количеству задач, а не покрытие кодеков или совместимости; он учитывается отдельно от приведённых ниже показателей соответствия экспорта.
CF-001 завершена, цепочка парсеров CF разблокирована. Добавленный в репозиторий
корпус Format15/Format16 состоит из подготовленных вручную данных, созданных
методом «чистой комнаты»,
хранится в проверяемом виде Base64 и содержит точные координаты, SHA-256
декодированных данных, согласованный граф root/version/versions и не
содержит прикладного кода. В Format16 используется семантический конверт
Format15 с точным смещением 0x1359, а не скопированная непрозрачная байтовая
константа. Дополнительный автономный контур внешнего корпуса без сетевого
доступа фиксирует независимо опубликованные файлы Format15 и Format16 по
коммиту репозитория, пути, размеру, хешу и лицензии, не включая их прикладное
содержимое в репозиторий. Подробнее:
автономный корпус тестовых данных CF.
CF-002 переносит структурное чтение Format15 в переносимый крейт ibcmd-v8.
Читатель сохраняет исходные заголовки файла, блоков и TOC, первоначальный
порядок записей, наблюдаемые слова заголовка 0/1/2/5, необработанные полезные
данные и маркер отсутствующих данных как значение, отличное от пустой полезной
нагрузки. Устаревший API module-blob делегирует работу этому читателю и
сохраняет прежнее поведение парсера и сборщика. CF-003 добавляет транзакционную
сборку цепочек страниц: сохраняется каждый заголовок страницы, заполнение
последней страницы не включается в логические данные, а циклы, повторно
использованные адреса, частичные пересечения, выход за границы, преждевременное
окончание и неожиданное продолжение приводят к точным типизированным ошибкам.
Интеграционные тесты для двух и трёх страниц полностью выполняются в памяти.
Подробнее: проверка читателя Format15 и
проверка цепочек страниц.
CF-004 добавляет единое распознавание Format15/Format16 и нативный 64-битный
читатель. Полные артефакты Format16 распознаются по независимому маркеру в
стандартной позиции 0x1359 после конверта Format15. Читатель проверяет и
сохраняет эту семантическую преамбулу, а также 20-байтовые заголовки файлов,
55-байтовые заголовки блоков, 24-байтовые записи адресов, относительные
64-битные адреса страниц, порядок записей, отсутствующие данные и
многостраничные полезные нагрузки. Усечённые заголовки, некорректные маркеры,
адреса вне диапазона и арифметическое переполнение u64 приводят к безопасному
отказу. Подробнее:
проверка читателя Format16.
CF-006 добавляет ограниченное индексирование Read + Seek и обход вложенности
с помощью посетителя. При открытии потоковый читатель загружает только байты
TOC и имён, а также заголовки страниц; страницы данных проверяются на
допустимость диапазона и индексируются, но читаются только при выборе. На
виртуальном источнике Format15 с разреженной страницей размером 1 ГиБ доказано,
что для открытия и чтения её четырёх логических байтов выполняется менее
512 байт фактического ввода-вывода. Для вложенных хранимых контейнеров и
контейнеров raw-DEFLATE действует общий бюджет глубины, количества записей,
закодированных и декодированных байтов и коэффициента распаковки; рекурсивные
«бомбы» возвращают точное типизированное ограничение без сохранения дерева в
памяти. Подробнее:
проверка потокового обхода.
CF-007 добавляет детерминированный потоковый модуль записи Format15, которому
теперь делегирует работу устаревший сборщик контейнеров модулей. В TOC и
заголовках элементов используются компактные цепочки страниц; существующие
данные записываются на настроенные страницы фиксированного размера с
детерминированным заполнением последней страницы; отсутствующие данные
сохраняются как маркер, отличный от явно пустого блока. Распределение
планируется и проверяется по диапазонам до записи первого выходного байта,
исходные логические заголовки элементов сохраняются, а полезные нагрузки
размерами 0/1/511/512/513/4097 проходят полный цикл записи и чтения.
Повторная запись канонического результата побайтово идентична. Подробнее:
проверка модуля записи Format15.
CF-008 добавляет полный модуль записи архивов Format16. Основной модуль записи
планирует 64-битные относительные смещения и цепочки страниц без материализации
таблицы страниц, передаёт объявленные полезные нагрузки из произвольных
источников Read через буфер 8 КиБ и сохраняет различие между отсутствующими
и пустыми данными вместе с исходными логическими заголовками. Слой CF
представляет фиксированную преамбулу 0x1359 как упорядоченные семантические
записи Format15: он может либо проверить и точно сохранить существующие байты,
либо создать новый конверт, расширив только его последнюю физическую страницу.
Тестовый файл Format16 из корпуса, созданного методом «чистой комнаты»,
в режиме сохранения
перезаписывается побайтово идентично, а при семантической регенерации
разбирается в те же упорядоченные записи и полезные нагрузки. Подробнее:
проверка модуля записи Format16.
CF-009 отображает обе ревизии контейнера в нейтральный упорядоченный
StorageImage. Каждая запись сохраняет точное нативное имя или ключ, включая
суффиксы с точкой, исходный логический заголовок и запись адреса, упакованную и
распакованную полезную нагрузку, явно указанный вид сжатия, профиль источника и
происхождение. Суффиксы с точкой никогда не интерпретируются эвристически как
части составной записи: одна запись TOC в CF соответствует одной физической
части хранилища, а повторяющиеся нативные имена отклоняются до декодирования
полезной нагрузки. Типизированный непрозрачный атрибут CF также хранит состояние
маркера отсутствующих данных отдельно от явно пустой полезной нагрузки.
Обёртка архива сохраняет ревизию, базовое смещение, преамбулу, заголовок файла,
слова страниц и хранилища и предоставляет детерминированный поиск по root,
version, versions и ключам объектов. Подробнее:
проверка отображения архива CF.
CF-010 предоставляет доступ к этому читателю через автономные команды
cf inspect и
cf verify. Обе команды выводят версионированный JSON с распознанной
структурой, явным контрактом профиля хранилища и сжатия, перечнем выбранных
элементов, размерами и хешами SHA-256. verify поддерживает повторяющиеся
точные селекторы --element, флаг --list-only и повторяющиеся проверки
--expect-sha256 NAME=HASH. Декодируются только выбранные полезные нагрузки в
рамках общего бюджета ресурсов; способ сжатия никогда не определяется
эвристически. Сообщения об ошибках соответствуют стабильной диагностической
схеме JSON в
stderr и ненулевой код завершения, в том числе при пустом PATH:
cargo run -- cf inspect configuration.cf
cargo run -- cf verify configuration.cf --element root --expect-sha256 root=<sha256>
cargo run -- cf verify configuration.cf --element versions --list-onlyПодробнее: проверка автономного CLI для CF.
CF-011 добавляет детерминированную переупаковку без потерь для обеих ревизий контейнера. Перед записью проверяется, что каждая запись CF состоит ровно из одной физической части, имеет точное имя из исходного заголовка, типизированное состояние отсутствия или наличия, поддерживаемый способ сжатия и согласованные упакованные и распакованные данные. Переупаковка сохраняет порядок источника, исходные логические заголовки, слова структуры Format15/16, точную преамбулу Format16 и неизменные упакованные байты. Для атомарного создания нового файла используются временный файл в том же каталоге, сброс и синхронизация данных, повторное открытие и проверка каждой записи, а затем устойчивая к гонкам публикация без перезаписи. При ошибке промежуточный результат удаляется, а существующий файл назначения намеренно не заменяется. Подробнее: проверка переупаковки CF без потерь.
CF-012 подключает декодированный StorageImage к существующим декодерам
семейств исходников без зависимостей от SQL, 1С, EDT, Java или дочерних
процессов. Физические записи из нескольких частей группируются в стабильном
порядке источника и передаются через единую границу, не зависящую от
поставщика; устаревший путь получения данных из MSSQL остаётся отдельным и
сохраняет поведение с немедленным отказом. cf export выводит иерархический XML
для известных семейств и версионированный JSON-отчёт по каждой записи со
статусами supported, opaque и failed. Неизвестные записи сохраняются как
явные непрозрачные результаты, а не угадываются и не отбрасываются без
уведомления. Добавленный в репозиторий CF из корпуса, созданного методом
«чистой комнаты», и полная
синтетическая запись Configuration экспортируются даже при пустом PATH:
cargo run -- cf export configuration.cf source --source-version 2.20Подробнее: проверка автономного экспорта CF.
CF-014 добавляет наложение XML/исходников того же профиля на базовый CF.
ibcmd-cf выполняет полную предварительную проверку целевого хранилища,
заменяет скомпилированные записи на месте, разрешает NeedsBase только через
явно переданный вызывающей стороной кодек, отклоняет каждый результат
Unsupported и сохраняет порядок, заголовки, атрибуты и точные упакованные
байты неизвестных или неизменённых записей. Корневой адаптер предоставляет
существующие кодеки метаданных на Rust и исправляет нативную карту versions
для каждого изменённого ключа. При публикации повторно используется путь
из CF-011: временная запись без перезаписи в том же каталоге, повторное
открытие и полная проверка. Модули, необработанные ресурсы и зависящие от базы
XML-файлы CommandInterface проходят сквозной бинарный тест при пустом PATH:
cargo run -- cf overlay base.cf changed.cf `
--module '<storage-key>=CommonModules/Demo/Ext/Module.bsl' `
--raw-asset '<storage-key>=CommonPictures/Logo/Ext/Picture.bin' `
--command-interface '<storage-key>=Subsystems/Main/Ext/CommandInterface.xml' `
--source-version 2.20К повторяемым селекторам исходников также относятся --metadata-xml и
--common-module-xml. Ключи хранилища остаются явными: ни имена файлов, ни
суффиксы UUID не угадываются. Подробнее:
проверка наложения CF.
CF-015 усиливает защиту всей границы контейнера с помощью добавленного в
репозиторий корпуса некорректных данных, созданного методом «чистой комнаты»,
для заголовков,
шестнадцатеричных полей, смещений, цепочек страниц, имён UTF-16, полезных
нагрузок DEFLATE и вложенных архивов. Детерминированные тесты свойств создают
документы Format15 и Format16 на границах страниц, сохраняют различие между
отсутствующей и пустой полезной нагрузкой и обходят вложенные деревья
хранилища. Отдельная цель cargo-fuzz пропускает ограниченные произвольные
байты через единое индексирование, выборочное чтение, декодирование полезной
нагрузки и обход вложенности; это подключаемое рабочее пространство
разработчика, а не промышленная зависимость. Обычный контур CI для
Linux/Windows всегда запускает детерминированный набор тестов повреждений и
свойств. Подробнее:
проверка защиты контейнера CF.
CF-005 завершена независимо от недоступных эталонных контейнеров. Слой полезной
нагрузки CF теперь отличает Stored от одного полного потока raw-DEFLATE,
требует StreamEnd и полного потребления закодированных входных данных и через
типизированные ошибки отклоняет усечённые потоки, лишние завершающие байты,
превышение суммарных ограничений глубины, количества или объёма и чрезмерный
коэффициент распаковки. При декодировании используются буферы кодека
фиксированного размера, а общий бюджет ресурсов учитывается только после полной
проверки; регрессионные тесты синтетических повреждений и «бомб» распаковки
выполняются без 1С, EDT и JVM. Подробнее:
проверка ограниченной полезной нагрузки CF.
BOOT-002 завершена. Ограниченный граф идентификаторов и состава, а также
детерминированные root, version, versions и семисекционное тело
Configuration, ограниченное профилем, компилируются без базового артефакта.
Модуль записи Configuration выводит семь разделённых по доменам идентификаторов
UUIDv8, направляет 47 известных семейств верхнего уровня в 48 точных нативных
позиций, проверяет типизированные межобъектные ссылки и до начала записи
отклоняет неизвестное семейство или будущую структуру. Реализация и тесты не
запускают 1С, EDT, JVM, SQL Server или какие-либо внешние процессы. Подробнее:
проверка тела Configuration.
BOOT-003 завершена. Шесть её вертикальных срезов — Constant, Language,
SessionParameter, DefinedType, FunctionalOption и
FunctionalOptionsParameter — поддерживают цепочку XML 2.20/2.21 ->
типизированное IR -> детерминированная нативная строка без базового артефакта
-> строгое нативное IR/XML для независимо выбранных структур семейств 8.3.27.
Читаемые ссылки Location, Content и Use разрешаются только через
проверенный канонический граф; значения шаблонов типов cfg:* разрешаются
только через канонические сгенерированные TypeId. Ядро теперь также сохраняет
сгенерированный ValueId как типизированный необязательный идентификатор
(устаревший канонический JSON остаётся читаемым; домен семантического дайджеста
— v2). Кодек Constant сохраняет все три сгенерированные пары
TypeId/ValueId, единственный шаблон типа и UseStandardCommands; неизвестные
поля нативной оболочки и не подтверждённые данными сопоставления квалификаторов
приводят к безопасному отказу.
Все подтверждённые текстовые нативные строки BOOT-003/BOOT-004 содержат обязательный UTF-8 BOM, за которым следует детерминированный текст с CRLF; сериализаторы и строгие декодеры используют единый байтовый контракт уровня профиля.
BOOT-004 завершена. Все семь срезов семейств сервисов — ScheduledJob,
EventSubscription, HTTPService, WebService, IntegrationService,
WSReference и XDTOPackage — теперь поддерживают цепочку XML 2.20/2.21 ->
типизированное IR -> детерминированная нативная строка без базового артефакта
-> строгое нативное IR/XML. HTTPService включает вложенные шаблоны URL и
методы с явными обратимыми сопоставлениями каждого сохранённого кода повторного
использования сеанса и HTTP-метода. WebService добавляет детерминированные
деревья операций и параметров, квалифицированные типы XDTO, все три направления
передачи и ссылки XDTOPackage, разрешённые через граф.
IntegrationService сохраняет идентификаторы Manager TypeId/ValueId для
сервиса и каждого канала и строго отображает Send/Receive, обработчики и
флаги транзакций через подтверждённую оболочку коллекции каналов.
WSReference сохраняет пару Manager TypeId/ValueId и LocationURL, а его
определение WSDL остаётся отдельным исходным ресурсом. Обработчики CommonModule,
TypeId источников событий и UUID пакетов разрешаются только через проверенный
канонический граф; независимо подтверждённые структуры 8.3.27 отклоняют
неизвестные нативные поля и поля с изменённым порядком. Файлы сервисов
Ext/Module.bsl и XDTOPackage/Ext/Package.bin остаются отдельными исходными
ресурсами, а не полями этих строк метаданных.
BOOT-005 завершена для строгого подтверждённого среза Catalog/Document. Оба семейства теперь поддерживают типизированные корни XCF, сгенерированные типы, прямые реквизиты, табличные части с вложенными реквизитами, команды и ссылки на формы и шаблоны, разрешённые через граф. Независимо выбранные структуры 8.3.27 компилируют детерминированные строки raw-DEFLATE с UTF-8 BOM и CRLF, не читая базовый артефакт. Минимальные и насыщенные дочерними элементами тестовые данные проверяют точные составы встроенных и отдельно направляемых идентификаторов; неизвестные маркеры, неразрешённые ссылки, неподдерживаемые сложные свойства и необъявленные будущие структуры приводят к безопасному отказу. Сохранённые подтверждения структуры и текущая граница описаны в проверке нативной структуры Catalog и Document.
BOOT-006 завершена для Report, DataProcessor, Enum и SettingsStorage.
Их строгие кодеки XCF 2.20/2.21 сохраняют корни, сгенерированные пары
TypeId/ValueId, упорядоченные ссылки на формы и шаблоны, реквизиты, табличные
части, команды и значения перечислений. Независимо выбранные структуры 8.3.27
компилируют детерминированные строки без базового артефакта и проверяют их
ограниченным нативным парсером; форма корня и коллекций, описатели стандартных
реквизитов, уникальность идентификаторов и порядок дочерних элементов
проверяются с безопасным отказом. Все четыре выведенных семантических нативных
дерева также сопоставлены с независимо распакованными лабораторными строками.
Подробнее:
проверка нативной структуры служебных объектов.
BOOT-007 завершена для Subsystem, ExchangePlan, BusinessProcess и Task.
Их строгие кодеки XCF 2.20/2.21 сохраняют содержимое подсистем и вложенные
подсистемы, дочерние элементы планов обмена, таблицы и маршруты рабочих
процессов, сгенерированные пары TypeId/ValueId и измерения адресации задач.
Независимо выбранные структуры 8.3.27 компилируют детерминированные строки без
базового артефакта и проверяют их ограниченным нативным парсером. Владение,
цели ссылок, порядок дочерних элементов, повторяющиеся идентификаторы, составы
стандартных полей и неподдерживаемые нативные хвосты приводят к безопасному
отказу. Подробнее:
проверка нативной структуры иерархий и рабочих процессов.
BOOT-008 завершена для всех четырёх семейств регистров, Recalculation и трёх
семейств планов. Строгие кодеки XCF 2.20/2.21 передают данные независимо
выбранным нативным структурам 8.3.27 с точными размерами владельцев, маркерами
коллекций, стандартными полями и сгенерированными идентификаторами.
Recalculation сохраняет семантическое владение, объявляя при этом свою
отдельно хранимую нативную строку; цели его Dimension проверяются относительно
владеющего CalculationRegister. Для компактных исходных файлов, в которых
опущены обязательные значения по умолчанию, и не подтверждённых вложенных полей
регистров сохраняется безопасный отказ. Подробнее:
проверка нативной структуры регистров и планов.
BOOT-009 завершена для CommonModule, CommonCommand, CommandGroup,
CommonPicture, тел модулей, изображений, справки и необработанных бинарных
ресурсов. Строгие проекции XCF 2.20/2.21 передают данные в выбранные по профилю
структуры метаданных 8.3.27; кодеки модулей и ресурсов сохраняют точные байты
текста и содержимого при ограниченном сжатии и строгом декодировании. Единый
реестр исходных ресурсов теперь содержит семейство, семантическую роль,
нативный суффикс, относительный путь и сопоставление кодека как для автономного
компилятора, так и для устаревшего моста MSSQL. Неизвестные свойства,
неразрешённые ссылки графа, небезопасные имена ресурсов, некорректный Base64 и
будущие структуры приводят к безопасному отказу. Подробнее:
проверка нативной структуры модулей, команд и ресурсов.
BOOT-010 завершена как ограниченный срез кодеков тел с безопасным отказом. Для Role Rights теперь есть выбранный по профилю кодировщик без базовой строки и строгий декодер, общий с мостом экспорта MSSQL. Предопределённые данные Catalog компилируются из типизированных вложенных элементов без базовой строки; до подтверждения схем конкретных семейств структуры трёх планов сохраняются только как точные непрозрачные байты того же профиля. Артефакты родительской конфигурации, автономного содержимого и мобильной подписи классифицируются как непрозрачные вспомогательные данные: для них требуются наблюдаемые байты, происхождение и совпадающий SHA-256; они никогда не переносятся между профилями неявно и могут быть отброшены только по явной политике с созданием отчёта о потерях. Исходные пути и нативные суффиксы для Rights, Predefined и вспомогательных данных централизованы в том же реестре ресурсов. Подробнее: проверка Rights, Predefined и вспомогательных данных.
BOOT-011 завершена для подтверждённых структур управляемой Form и
CommandInterface версии 8.3.27. Form.xml вместе с необязательным Module.bsl
теперь компилируется без базовой строки в детерминированное тело с маркером 50,
UTF-8 BOM, типизированными свойствами корня, вложенными элементами управления,
реквизитами, параметрами, командами и локальными ссылками на команды. Строгий
декодер требует наличия четырёх завершающих нативных разделов;
представительная матрица
элементов экспортируется обратно в XML и проверяется семантически.
CommandInterface владеет всеми пятью упорядоченными нативными разделами и
выводит XML с необработанными ссылками через тот же ограниченный типизированный
кодек. Неподдерживаемые аспекты формы, встроенные ресурсы элементов, неполные
читаемые кортежи команд, устаревшие маркеры и будущие профили остаются явными
блокирующими условиями. Устаревший мост MSSQL использует общие декодеры и
теперь не получает базовую строку для поддерживаемых тел Form. Подробнее:
проверка управляемой Form и CommandInterface.
BOOT-012 завершена для всех восьми распознаваемых видов Template. Типизированный диспетчер, ограниченный профилем, теперь отвечает за обрамление тел MXL, DCS, HTML, бинарных данных и необработанного XML или текста. Подготовка табличных документов формирует строгую структуру MOXCEL с маркером 8 без чтения базовой строки; DCS выдаёт подтверждённый 24-байтовый заголовок и три документа XML с BOM, включая семантическое извлечение и повторную вставку непустого Settings. Вложенные файлы HTML и полезные нагрузки AddIn/BinaryData сохраняют точные байты. Неизвестные виды шаблонов, нативные хвосты, небезопасные вложенные имена, неподдерживаемые шаблоны областей DCS и будущие профили приводят к безопасному отказу. Устаревший мост экспорта делегирует обрамление MXL/DCS тем же ограниченным читателям. Подробнее: проверка тел Template.
BOOT-013 объединяет ограниченный модуль чтения дерева исходников, каноническую
модель, проверенный граф идентификаторов, выбранные по профилю кодеки семейств
и ресурсов и компиляторы специальных записей в новый полный StorageImage.
Публичная команда записывает Format15 или Format16 без --base, 1С, EDT и JVM,
затем сбрасывает данные, повторно открывает результат и проверяет каждую
упакованную и распакованную запись перед устойчивой к гонкам публикацией без
перезаписи. Каждый входной файл должен соответствовать ровно одному маршруту
компилятора; неподдерживаемый, неоднозначный или не связанный ссылками входной
файл препятствует созданию результата. Добавленный в репозиторий корпус
8.3.27.1989/XCF 2.20, созданный методом «чистой комнаты», доказывает
преобразование XML -> CF -> XML без
пропущенных или лишних исходных файлов при выполнении процесса с пустым PATH:
cargo run -- cf bootstrap source configuration.cf `
--source-version 2.20 `
--target-profile platform-8.3.27.1989 `
--revision format16Совместимость начальной сборки явно ограничена маршрутами, принятыми выбранным профилем; это не заявление о поддержке произвольной сторонней конфигурации. Подробнее: проверка автономной начальной сборки CF.
MIG-003 завершена для проверенного направления обновления XCF с xml-2.20 до
xml-2.21. Ядро миграции принимает только точное происхождение 2.20 и
подтверждённую группу Constant/Catalog, создаёт полный отчёт с нулевыми
потерями и блокирует неизвестные семейства или цепочки владельцев.
Специфичная для версии сериализация остаётся в целевом XML-адаптере: Catalog
получает подтверждённое пространство имён палитры 2.21, а неизменённые объекты
сохраняют тот же семантический дайджест. Зафиксированные по SHA-256 неизменённые,
изменённые и впервые поддержанные тестовые данные декодируются целевым кодеком
без 1С, EDT, Java и JVM. Подробнее:
проверка миграции XCF с 2.20 на 2.21.
MIG-004 завершает этап миграции проверенным обратным направлением. Переносимые
входные данные Constant/Catalog понижаются до XML 2.20 без семантических
потерь; целевой адаптер удаляет пространство имён палитры 2.21 и читает
собственный результат. Подтверждённое различие управляемой формы
UseInInterfaceCompatibilityMode=Any никогда не обрабатывается без уведомления:
режим по умолчанию error блокирует операцию, warn сохраняет значение в
каноническом IR, и только явно указанный drop удаляет его, записывая точный
путь и код потери в отчёт о миграции. Другие значения и неизвестное содержимое
форм приводят к безопасному отказу. Подробнее:
проверка защищённого понижения XCF с 2.21 до 2.20.
APP-001 добавляет сервис и CLI верхнего уровня convert. Формат артефакта и
точный профиль версии являются отдельными обязательными координатами; сборка
платформы не выводится из версии XML. Каждый поддерживаемый маршрут сообщает об
одинаковых этапах: decode -> validate -> migration_plan -> migrate -> encode_preflight -> atomic_encode. Флаг --dry-run завершает предварительную
проверку без публикации результата, --loss error|warn|drop передаётся в
защищённое ядро миграции, а --report записывает тот же стабильный JSON, который
выводит команда. Новые результаты публикуются атомарно без перезаписи:
cargo run -- convert source configuration.cf `
--source-format xml --target-format cf `
--source-profile xml-2.20 --target-profile platform-8.3.27.1989
cargo run -- convert configuration.cf restored `
--source-format cf --target-format xml `
--source-profile platform-8.3.27.1989 --target-profile xml-2.20
cargo run -- convert source migrated `
--source-format xml --target-format xml `
--source-profile xml-2.20 --target-profile xml-2.21 `
--dry-run --report conversion-report.jsonСервис также предоставляет переупаковку CF без потерь в пределах одного
профиля. Межпрофильные маршруты XML остаются ограничены проверенными
направлениями миграции; экспорт CF разрешает только точно регенерированные
структурные записи root, version и versions, а любая другая непрозрачная
запись блокирует публикацию. Подробнее:
проверка сервиса автономной конвертации.
APP-002 назначает compatibility/matrix.json единым источником истины для
автономных маршрутов, основанным на подтверждениях. Каждая запись хранит операцию,
исходный и целевой артефакты, точные исходный и целевой профили, семейство,
заявление о сохранности и подтверждение в репозитории как отдельные
координаты. Статус verified отклоняется, если поддерживаемый маршрут не
ссылается на успешно проходящий тест Cargo; неизвестные профили и отсутствующие
в матрице маршруты возвращают unsupported без вывода версии. CLI встраивает,
проверяет и печатает тот же версионированный документ, публичным структурным
контрактом которого служит compatibility/matrix.schema.json. Подробнее:
проверка матрицы совместимости.
APP-003 на этапе компиляции изолирует средство проверки установленной
платформы. Сборки по умолчанию и сборки выпуска не содержат команд probe,
profile-run, dump-sources или infobase и не компилируют реализующие их
модули. Устаревшие исследовательские процессы доступны только при явно
включённой необязательной возможности platform-oracle. CI для Windows/Linux
проверяет границу по умолчанию, а устаревший контур Windows компилирует вариант
с включённой возможностью. Подробнее:
проверка изоляции platform-oracle.
APP-004 завершает контроль выпуска автономного приложения. Windows и Linux
выполняют полную автономную матрицу интеграционных тестов после получения
зафиксированных зависимостей: полные циклы XML/CF, обе ревизии CF, защищённые
межпрофильные миграции, некорректные входные данные, проверку подтверждений и
аудит бинарного файла в чистом окружении. Сборки по тегам используют
зафиксированную версию Rust, отключённые возможности по умолчанию,
детерминированную упаковку ZIP, перечни компонентов CycloneDX SBOM и
проверенные сопутствующие файлы SHA-256. Для архива задан точный разрешающий
список; он не может включать 1С, EDT/JVM или полезные нагрузки
platform-oracle. Подробнее:
критерии автономного выпуска.
| Этап | Завершено | Готовность |
|---|---|---|
| Этап 0: исходная база и границы | 4/4 | 100% |
| Этап 1: профили версий и основные модели | 10/10 | 100% |
| Этап 2: XCF | 6/6 | 100% |
| Этап 3: CF | 15/15 | 100% |
| Этап 4: начальная сборка | 13/13 | 100% |
| Этап 5a: миграции | 4/4 | 100% |
| Этап 5b: приложение и выпуск | 4/4 | 100% |
| Итого | 56/56 | 100% |
Подробная историческая статистика соответствия ведётся в
docs/export-parity-status.md. Самый свежий
полный snapshot-gate УТ выполнен 24 июля 2026 года: кандидат полностью
пересобран из e72d5952f7bc974e9dea2f88033cc2c27ecf543d и сравнен с
сохранённым нативным деревом. Агрегаты, переходные матрицы УТ и БСП,
контрольные суммы и два исправленных файла зафиксированы в
доказательстве default-формата MXL.
Предыдущее исправление таблицы стилей описано в
отдельном доказательстве.
Исходный свежий нативный аудит и отпечатки базы сохранены в
evidence полного прогона УТ.
Рекомендуемое распределение объектов между параллельными агентами описано в
docs/metadata-agent-slicing.md, а процесс
сопоставления Form.xml — в
docs/form-diff-matrix.md.
Важно различать две независимые метрики: выполнение принятой дорожной карты
автономного конвертера составляет 100% (56 / 56), но фактическая
совместимость последнего полного сравнения УТ на master (e72d595)
составляет 92,4249% (45864 / 49623). Сравнение содержит 3684
изменённых файлов,
75 файлов, присутствующих только в нативной выгрузке, и 0 файлов,
присутствующих только в выгрузке ibcmd-rs. До побайтового соответствия
остаётся 3759 файлов. По сравнению с исходным полным baseline число
изменённых файлов уменьшилось с 3795 до 3684, в том числе с 3707 до
3691 после исправления Table.AutoAddIncomplete и до 3685 после
строгого разбора таблицы стилей MXL. Удаление ложного document-wide
default-формата снизило число до 3684. Последний переход дал один
different -> unchanged и ни одного unchanged -> different.
| Класс оставшихся расхождений | Файлов |
|---|---|
| Отсутствующие корневые XML метаданных | 75 |
| Изменённые файлы форм | 2454 |
Изменённые Ext/Template.xml |
1156 |
| Прочие изменённые файлы | 3 |
| Изменённые существующие корневые XML метаданных | 70 |
Изменённый Configuration.xml |
1 |
| Итого | 3759 |
Диагностическое полное сравнение БСП на том же коммите с сохранённым
нативным snapshot содержит 1651 изменённый файл, 10547 неизменённых и
0 / 0 файлов только слева / только справа, то есть 86,4650%
(10547 / 12198). Полный candidate-gate на e72d595 дал один переход
different -> unchanged и ни одного unchanged -> different. Native-дерево БСП в этом
замере сохранено от отдельного
диагностического запуска; свежая нативная выгрузка БСП должна быть повторена
перед финальным заявлением о паритете.
План доведения результата до нулевого raw-diff и текущие состояния рабочих пакетов зафиксированы в дизайне совместимости и плане реализации.
Исходный полный воспроизводимый прогон имеет манифест с SHA исходного кода
экспортёра, хешами
инструментов и одинаковыми до/после отпечатками строк Config и
ConfigSave. Последний snapshot-gate повторно использует его сохранённое
native-дерево и полностью пересобирает candidate на e72d595; поэтому он
пригоден для измерения дельты, но не заменяет финальный свежий native-gate.
Ни один из этих замеров не является заявлением о выпускной готовности:
расхождения УТ и БСП остаются. Последний сохранённый отчёт
source-diff от 3 июля 2026 года
(full_diff_20260703_102243_zeroemptyrow1) показывал
56,9% (28253 / 49622, точное значение — 56,94%) и теперь считается
историческим, а не текущим показателем. В нижней сводной таблице
docs/export-parity-status.md также сохранена более ранняя выборочная оценка
75.4% (37396 / 49622); она не заменяет полный снимок.
Результаты исследования XML-плагина экспорта/импорта EDT собраны в docs/edt-xml-layer-analysis.md. Краткий вывод: XML-слой EDT следует использовать как справочный источник по порядку элементов, раскладке файлов и иерархии импорта, но не как производственную зависимость времени выполнения.
| Объект / группа | Состояние | Готовность | Осталось |
|---|---|---|---|
| CommandGroups, CommonCommands, CommonModules, CommonPictures, Constants, DefinedTypes, DocumentNumerators | готово / побайтово идентично | 100.0% | 0 |
| EventSubscriptions | частично | 0.0% | 312 |
| Ext | частично | 0.0% | 15 |
| FunctionalOptions | частично | 0.0% | 567 |
| FunctionalOptionsParameters | частично | 0.0% | 9 |
| IntegrationServices | частично | 0.0% | 2 |
| Languages | частично | 0.0% | 1 |
| ScheduledJobs | частично | 0.0% | 402 |
| SessionParameters | частично | 0.0% | 98 |
| StyleItems | частично | 0.0% | 400 |
| WSReferences | частично | 0.0% | 2 |
| XDTOPackages | частично | 0.0% | 814 |
| Enums | частично | 97.3% | 32 |
| CommonTemplates | частично | 83.6% | 81 |
| Reports | частично | 0.0% | 2362 |
| AccumulationRegisters | частично | 59.9% | 180 |
| Roles | частично | 0.0% | 2220 |
| ExchangePlans | частично | 0.0% | 366 |
| HTTPServices | частично | 0.0% | 10 |
| WebServices | частично | 0.0% | 36 |
| DocumentJournals | частично | 59.5% | 49 |
| DataProcessors | частично | 75.8% | 1709 |
| Tasks | частично | 0.0% | 49 |
| Documents | частично | 52.0% | 2987 |
| Catalogs | частично | 52.0% | 3217 |
| ChartsOfCharacteristicTypes | частично | 48.5% | 86 |
| InformationRegisters | частично | 0.0% | 3978 |
| CommonAttributes | частично | 42.9% | 4 |
| BusinessProcesses | частично | 43.4% | 86 |
| SettingsStorages | частично | 0.0% | 82 |
| CommonForms | частично | 60.7% | 439 |
| Subsystems | частично | 0.0% | 766 |
| FilterCriteria | частично | 0.0% | 7 |
| Configuration.xml | частично | 0.0% | 1 |
| Исторический полный снимок от 3 июля 2026 года | частично | 56.9% | 21369 |
Текущее состояние очереди выборочных циклов экспорта и обратной загрузки для
ut_ibcmd проверяется вместе с полным снимком, но учитывается отдельно от
исторической таблицы полного экспорта выше:
| Выборочный срез | Результат |
|---|---|
Суженная репрезентативная очередь (CommonAttributes, FilterCriteria, Subsystems, CommonForms, Reports, DataProcessors) |
100.0% успешно (6 / 6 префиксов) |
Репрезентативный проход семейств по умолчанию #1 |
100.0% успешно (9 / 9 сгенерированных префиксов) |
Репрезентативный проход семейств по умолчанию #2 |
100.0% успешно (9 / 9 сгенерированных префиксов) |
Примечание: эти проценты описывают очередь выборочных прямых циклов
MSSQL на эталонной базе Srvr="localhost";Ref="ut_ibcmd". Они не заменяют
текущие 92,4108% полного сравнения и не должны использоваться для пересчёта
общей готовности.
Последний сохранённый замер полного запуска от 3 июля 2026 года
(full_diff_20260703_102243_zeroemptyrow1): экспортировано 40,576 строк /
927,826,268 байт (~884.8 MiB) за 124.419 s на критическом пути выгрузки
(process_rows_wall), то есть в среднем 326.12 rows/s и 7.11 MiB/s.
Получение необработанных данных через BCP заняло 198.186 s (4.46 MiB/s).
Последняя полная выборочная проверка DataProcessors от 6 июля 2026 года
(selected_dp_full_20260706_0026_command_interface_release): экспортировано
5,737 строк / 39,889,431 байт (~38.0 MiB) за 12.863 s на критическом
пути выгрузки, то есть 446.01 rows/s и 2.96 MiB/s. Получение необработанных
данных через BCP заняло 1.089 s (34.93 MiB/s). Итоговая сводка
source-diff по-прежнему равна 1572 different / 5486 unchanged, при
0 left-only / 0 right-only (77.7274%, 5486 / 7058). В том же сохранённом
запуске получены fetch_headers_ms=7976, prepare_indexes_ms=40783,
prepare_metadata_fetch_ms=20589, fetch_rows_ms=1089,
process_rows_wall_ms=12863 и source_asset_cpu_ms=58406; наиболее затратные
по CPU группы исходных ресурсов — form_xml=34033, child_items=13928 и
help=10325. Последний анализ сигнатур в этом же запуске показывает
document/rowsItem/row/c/c/f=464 в 1 файле
(РаботаСНоменклатурой/Templates/ПФ_MXL_КарточкаНоменклатуры), а крупнейшие
оставшиеся цветовые хвосты — document/format/borderColor=368 и
document/format/backColor=324; ведущие хвосты форм —
Form/Commands/Command/Picture=234,
Form/ChildItems/Table/CommandSet/ExcludedCommand=211 и
Form/CommandInterface/CommandBar/Item=140. Повторный запуск сохраняет тот же
верхнеуровневый процент соответствия, но уменьшает хвост
Form/CommandInterface/CommandBar/Item с 195 в 25 файлах до 140 в 18
файлах благодаря переходу от фиксированного поиска body.trailing[3] к
первому фактическому контейнеру CommandInterface формы.
Последние подтверждённые срезы:
| Раунд | Область | Подтверждённый прогресс |
|---|---|---|
| 110 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 0026_command_interface_release сохраняет DataProcessors на уровне 1572 различий / 5486 без изменений при 0 только слева / 0 только справа после перехода от фиксированного слота body.trailing[3] к первому фактическому контейнеру CommandInterface формы; дополнительные файлы пока не закрыты, но хвост Form/CommandInterface/CommandBar/Item сокращён с 195 в 25 файлах до 140 в 18, критический путь — 12.863 s (446.01 rows/s, 2.96 MiB/s) |
| 109 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 1947_filter_picture_release сохраняет DataProcessors на уровне 1572 различий / 5486 без изменений при 0 только слева / 0 только справа после обратного сопоставления UUID стандартных картинок команд фильтра с StdPicture.FilterCriterion, StdPicture.FilterByCurrentValue и StdPicture.ClearFilter; дополнительные файлы пока не закрыты, но хвост Form/Commands/Command/Picture сокращён с 248 в 97 файлах до 234 в 95, критический путь — 22.574 s (254.15 rows/s, 1.69 MiB/s) |
| 108 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 1735_root_order_release улучшает DataProcessors до 1572 различий / 5486 без изменений при 0 только слева / 0 только справа после восстановления нативного порядка CommandBarLocation / CommandSet корневой формы и возврата CustomizeForm в стандартный порядок команд диалога; закрыто ещё 6 файлов, ведущий хвост форм смещён к Form/ChildItems/Table/CommandSet/ExcludedCommand=268, критический путь — 16.920 s (339.07 rows/s, 2.25 MiB/s) |
| 107 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 144331_event_uuid_release улучшает DataProcessors до 1578 различий / 5480 без изменений при 0 только слева / 0 только справа после обратного сопоставления подтверждённых UUID-псевдонимов событий форм с нативными именами; доминирующая сигнатура шаблонов document/rowsItem/row/c/c/f остаётся равной 464 в 1 файле, ведущий хвост форм — вложенный UsualGroup/.../Width=307, критический путь — 28.909 s (198.45 rows/s, 1.32 MiB/s) |
| 106 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 141710_readme_refresh_release после полного повторного запуска текущего релиза подтверждает DataProcessors на уровне 1580 различий / 5478 без изменений при 0 только слева / 0 только справа; сигнатура document/rowsItem/row/c/c/f остаётся равной 464 в 1 файле, ведущий хвост форм смещён к вложенному UsualGroup/.../Width=307, критический путь — 28.129 s (203.95 rows/s, 1.35 MiB/s) |
| 105 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 122017_purchase_line_release улучшает DataProcessors до 1580 различий / 5478 без изменений при 0 только слева / 0 только справа после сопоставления ведущих MXL-ссылок стилей со смещением палитры f527 и расширения таблицы линий из {None, Solid} до нативного набора сплошных линий трёх толщин; закрыты ОбменСБанками/Templates/ПоручениеНаПокупкуВалюты/Ext/Template.xml, ОбменСБанками/Templates/ПоручениеНаПереводВалюты/Ext/Template.xml и ОбменСБанками/Templates/РаспоряжениеНаОбязательнуюПродажуВалюты/Ext/Template.xml, document/rowsItem/row/c/c/f остаётся равной 464 в 1 файле, критический путь — 29.071 s (197.34 rows/s, 1.31 MiB/s) |
| 104 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 110226_slotfix_release улучшает DataProcessors до 1583 различий / 5475 без изменений при 0 только слева / 0 только справа после разрешения MXL-слотов стилей {-1} / {-3} как FormBackColor / FormTextColor вместо отката к компактному цвету; устранён широкий хвост ошибочной классификации ToolTipBackColor, document/rowsItem/row/c/c/f остаётся равной 464 в 1 файле, критический путь — 12.943 s (443.25 rows/s, 2.94 MiB/s) |
| 103 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 101148_eisheader_release улучшает DataProcessors до 1584 различий / 5474 без изменений при 0 только слева / 0 только справа: разреженные ссылки заголовка/подвала MXL с одним набором теперь предпочитают явный внешний исходный слот эвристике font=0,width=72; закрыт ЭлектронноеАктированиеЕИС/Templates/ЭД_ПриложениеЕИС_ru, кластер document/rowsItem/row/c/c/f сокращён с 872 в 2 файлах до 464 в 1, критический путь — 11.219 s (511.36 rows/s, 3.39 MiB/s) |
| 102 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 093104_contracttypical_release улучшает DataProcessors до 1585 различий / 5473 без изменений при 0 только слева / 0 только справа после восстановления обработки общего пустого значения по умолчанию MXL с одним набором без повторного открытия случаев UKD / СоответствияПараметровИМеток, добавления базовой регрессии для ФорматДоговорнойДокумент101XML/Templates/ПереченьТиповыхНаименованийЭлементовДоговоров и закрытия ОбменСКонтрагентами/Templates/УКД_ИнформацияПокупателя_2020 вместе с ФорматДоговорнойДокумент101XML/Templates/СоответствияПараметровИМеток; document/rowsItem/row/c/c/f сосредоточена на 872 в 2 файлах, критический путь — 19.508 s (294.08 rows/s, 2.05 MiB/s) |
| 101 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 080819_true_scope_release улучшает DataProcessors до 1587 различий / 5471 без изменений при 0 только слева / 0 только справа после пакетного получения заголовков строк через sqlcmd для обхода SQL Server 8623, разрешения разреженных общих слотов заголовка/значения по умолчанию MXL через явные ссылки только при отсутствии нативного разреженного формата и подавления смещённых хвостов formatIndex=2; закрыты ПечатьОтчетовПоКомиссии/Templates/ПФ_MXL_ОтчетПоКомиссии, ПечатьОтчетовПоКомиссии/Templates/ПФ_MXL_ОтчетПоКомиссииОСписании и ФорматДоговорнойДокумент101XML/Templates/ПереченьТиповыхНаименованийЭлементовДоговоров, кластер document/rowsItem/row/c/c/f сокращён с 1041 (4 файла) до 594 (3 файла), критический путь — 11.498 s (498.96 rows/s, 3.31 MiB/s) |
| 100 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 055344_compactstyle_release улучшает DataProcessors до 1592 различий / 5466 без изменений при 0 только слева / 0 только справа после прямого разрешения компактных индексов ссылок стилей MOXEL в цвета подсказки/формы/поля при отсутствии слотов в таблице; закрыты оставшиеся хвосты шаблонов счетов в ПФ_MXL_СчетФактура451_ru, ПФ_MXL_СчетФактура981_ru, ПФ_MXL_СчетФактура1137_ru и ПФ_MXL_СчетФактура1137_625_ru, критический путь — 12.925 s (443.87 rows/s, 2.94 MiB/s) |
| 99 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 052811_exactslot_release улучшает DataProcessors до 1603 различий / 5455 без изменений при 0 только слева / 0 только справа после чтения объявленной высоты разреженного листа из актуального блока наборов колонок MXL, восстановления определения ведущей ширины по умолчанию {129,0,width} без переклассификации всей таблицы ширин и приоритета точного существующего совпадения формата font=0 + width; закрыто ещё два файла, исправлена регрессия СчетФактура451 defaultFormatIndex=102 при сохранении нативных базовых вариантов 1096 и request_offer, критический путь — 11.417 s (502.50 rows/s, 3.33 MiB/s) |
| 98 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 023103_zero_offset_sparse_release улучшает DataProcessors до 1609 различий / 5449 без изменений при 0 только слева / 0 только справа после обнаружения ссылок исходных форматов MXL с нулевым смещением, разделения таблицы форматов по реальным ссылкам, переназначения ссылок строк/ячеек и пересчёта резервного слота формата по умолчанию; закрыт ОбменСКонтрагентами/Templates/ПользовательскоеПредставлениеОбязательныхПолей/Ext/Template.xml, сигнатура document/rowsItem/row/c/c/f сокращена с 2029 до 1679 (9 -> 7 файлов), критический путь — 16.033 s (357.82 rows/s, 2.37 MiB/s) |
| 97 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 225500_zero_colfmt_release улучшает DataProcessors до 1610 различий / 5448 без изменений при 0 только слева / 0 только справа после повторного использования подходящих форматов MXL по умолчанию и сохранения нулевого formatIndex колонок; закрыто ещё 5 файлов, сигнатура document/rowsItem/row/c/c/f сокращена с 3001 до 2857 (17 -> 9 файлов), число различий в ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата/Templates/ЮридическоеЛицо/Ext/Template.xml уменьшено с 143 до 25, критический путь — 15.075 s (380.56 rows/s, 2.52 MiB/s) |
| 96 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 011557_command_no_action_release подтверждает DataProcessors на уровне 1615 различий / 5443 без изменений при 0 только слева / 0 только справа после сохранения команд формы Command с пустым Action и пропуска пустых тегов <Action>; новые файлы пока не закрыты, но Form/Commands/Command/Picture сокращён с 269 до 252, а различия форм БизнесСеть/ПрофильУчастника — с 24 до 18, БизнесСеть/ОтправкаПриглашенийКонтрагентам — с 116 до 49; критический путь — 12.438 s (461.25 rows/s, 3.06 MiB/s) |
| 95 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 010452_change_row2_release улучшает DataProcessors до 1615 различий / 5443 без изменений при 0 только слева / 0 только справа после уточнения эвристики ChangeRowOrder=false для обычной таблицы в оболочке 55; дополнительно закрыты 2 файла, критический путь — 11.079 s (517.83 rows/s, 3.43 MiB/s) |
| 94 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 004400_radio_release улучшает DataProcessors до 1617 различий / 5441 без изменений при 0 только слева / 0 только справа после добавления извлечения RadioButtonField и поддержки ChoiceList, RadioButtonType, ColumnsCount для управляемых форм; критический путь — 15.515 s (369.76 rows/s, 2.45 MiB/s) |
| 93 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 000112_dp_child_order_release улучшает DataProcessors до 1619 различий / 5439 без изменений при 0 только слева / 0 только справа после восстановления EditFormat вложенных элементов, сохранения логических значений заполнения {"U"} как xsi:nil, отделения TabularSection.FillChecking от стандартного атрибута LineNumber и упорядочивания верхнеуровневых атрибутов DataProcessor перед табличными частями; закрыто ещё 18 файлов, критический путь — 19.862 s (288.84 rows/s, 1.92 MiB/s) |
| 92 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 220341_dp_childobjects_release улучшает DataProcessors до 1637 различий / 5421 без изменений при 0 только слева / 0 только справа после пересборки релиза и вывода явных пустых узлов DataProcessor/ChildObjects и дочерних Attribute/Type; закрыто 29 файлов сверх предыдущих исправлений палитры шаблонов и динамических списков, критический путь — 25.825 s (222.15 rows/s, 1.47 MiB/s) |
| 91 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 214500_listsettings_rework улучшает DataProcessors до 1666 различий / 5392 без изменений при 0 только слева / 0 только справа после переработки нормализации ListSettings динамического списка, восстановления неявных значений по умолчанию только при их отсутствии в нативном теле и чтения настроек из Appearance / GroupSelectedSettingId без возврата неверных идентификаторов; критический путь — 14.799 s (387.66 rows/s, 2.57 MiB/s), прежнее семейство сигнатур Form/.../ListSettings/... полностью вышло из текущего верхнего блока |
| 90 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 2110_regfix улучшает DataProcessors до 1668 различий / 5390 без изменений при 0 только слева / 0 только справа после сужения резервных правил LabelDecoration.AutoMaxWidth и табличного UseAlternationRowColor; исправлен кластер регрессий трёх форм с сохранением РедактированиеБланка, критический путь — 22.234 s (258.03 rows/s, 1.71 MiB/s) |
| 89 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 220025_valuetreefont улучшает DataProcessors до 1670 различий / 5388 без изменений при 0 только слева / 0 только справа после восстановления встроенных типов атрибутов формы v8ui:Font и v8:ValueTree поверх последних исправлений SpreadsheetDocument, чисел без префикса и v8ui:Color; document/rowsItem/row/c/c/f=3001, следующие цветовые хвосты — document/format/backColor=337 и document/format/textColor=327, прежний кластер Form/Attributes/Attribute/Type вышел из верхнего блока сигнатур; критический путь — 16.624 s (345.10 rows/s, 2.29 MiB/s) |
| 88 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 195904_btnchoice улучшает DataProcessors до 1671 различий / 5387 без изменений при 0 только слева / 0 только справа после восстановления AutoMaxWidth / MaxWidth кнопок и ChoiceFoldersAndItems полей ввода; остаются document/rowsItem/row/c/c/f=3001, document/format/textColor=1188, разрыв по табличному ExcludedCommand сокращён до 876 суммарных вхождений (82 файла), критический путь — 13.647 s (420.39 rows/s, 2.79 MiB/s) |
| 87 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 192500_wrapper55 подтверждает DataProcessors на уровне 1673 различий / 5385 без изменений при 0 только слева / 0 только справа, но сокращает кластер Form/ChildItems/Table/CommandSet/ExcludedCommand с 964 до 948 вхождений (94 -> 92 файла) после расширения распознавания обычных таблиц в оболочке 55, восстановления вариантов табличного CommandSet с 8 командами и вывода метаданных картинки строки; критический путь — 13.809 s (415.45 rows/s, 2.75 MiB/s) |
| 86 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 185000_checkall улучшает DataProcessors до 1673 различий / 5385 без изменений при 0 только слева / 0 только справа после восстановления дополнительных шаблонов CommandSet формы/корня, вариантов ExcludedCommand таблиц в оболочке 55 и привязки стандартной команды UncheckAll; критический путь — 12.632 s (454.16 rows/s, 3.01 MiB/s) |
| 85 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 003500_f527prop подтверждает DataProcessors на уровне 1680 различий / 5378 без изменений при 0 только слева / 0 только справа после зависящего от свойства разрешения цветов подсказки/формы/поля f527... и последних проверок цветов MXL; критический путь — 15.548 s (368.99 rows/s, 2.45 MiB/s) |
| 84 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 233500_mxlpictext улучшает DataProcessors до 1680 различий / 5378 без изменений при 0 только слева / 0 только справа после сохранения встроенных изображений MXL, textPosition, widthWeightFactor, отрицательных высот формата и порядка columnsID на уровне строки; критический путь — 15.584 s (368.13 rows/s, 2.44 MiB/s) |
| 83 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 190500_clientbank_settlement улучшает DataProcessors до 1683 различий / 5375 без изменений при 0 только слева / 0 только справа после восстановления автономных хвостов формата MXL по умолчанию, detailsUse=WithoutProcessing, нецелых высот шрифтов, индексированных переопределений стилей / auto и объединения нескольких списков областей слияния; КлиентБанк/Templates/ОтчетОЗагрузке/Ext/Template.xml и ЗаполнениеРегистровВзаиморасчетов/Templates/Макет/Ext/Template.xml стали побайтово идентичными, критический путь — 13.401 s (428.10 rows/s, 2.84 MiB/s) |
| 82 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 140030_hiddenmerge улучшает DataProcessors до 1700 различий / 5358 без изменений при 0 только слева / 0 только справа после сохранения явных пустых format / editFormat, hidden=false, устаревшего выравнивания Bottom, обёрнутых ссылок стилей MXL и сужения эвристики разреженного формата по умолчанию; request_offer стал побайтово идентичным, критический путь — 16.896 s (339.55 rows/s, 2.25 MiB/s) |
| 81 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 113500_emptycols подтверждает DataProcessors на уровне 1703 различий / 5355 без изменений при 0 только слева / 0 только справа после восстановления абсолютных флагов шрифтов MXL из разреженного источника, обработки стиля линий {-11} и удаления лишнего переназначения formatIndex +1 для разреженных строк/ячеек; сигнатура document/rowsItem/row/c/c/f сокращена с 65299 до 3001, критический путь — 13.170 s (435.61 rows/s, 2.89 MiB/s) |
| 80 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 113500_emptycols улучшает DataProcessors до 1703 различий / 5355 без изменений при 0 только слева / 0 только справа после восстановления нативного выбора формата колонок MXL из разреженных исходных слотов, размещения форматов по умолчанию request_offer/load_goods и нормализации цвета ReportHeaderBackColor; критический путь — 11.978 s (478.96 rows/s, 3.18 MiB/s) |
| 79 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 113500_emptycols улучшает DataProcessors до 1706 различий / 5352 без изменений при 0 только слева / 0 только справа после нормализации LockOwnerWindow, BeforeRowChange и дополнительных шаблонов табличного ExcludedCommand; критический путь — 14.977 s (383.05 rows/s, 2.54 MiB/s) |
| 78 | Полный снимок / время | Новый снимок 102243_zeroemptyrow1 фиксирует текущее дерево на уровне 12499 только слева / 8871 различий / 28253 без изменений, при этом DataProcessors улучшены до 1709 различий / 5349 без изменений; критический путь релиза — 124.419 s (326.12 rows/s, 7.11 MiB/s) |
| 77 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 113500_emptycols улучшает DataProcessors до 1709 различий / 5349 без изменений при 0 только слева / 0 только справа после вывода formatIndex=1 для строки с нулевым слотом колонок и сохранения нативной обработки пустых слотов значения по умолчанию/картинки; критический путь — 22.464 s (255.39 rows/s, 1.69 MiB/s) |
| 76 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 092028_mxlrowmap2 улучшает DataProcessors до 1710 различий / 5348 без изменений при 0 только слева / 0 только справа после восстановления переназначения строк/ячеек MXL из разреженного источника, слота 0 BorderColor, WindowsFont и нативного порядка XML таблицы; критический путь — 12.042 s (476.42 rows/s, 3.16 MiB/s) |
| 75 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 085640_mxlslots подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после сохранения порядка слотов стилей MXL из источника и нативных хвостов формата по умолчанию; критический путь — 14.397 s (398.49 rows/s, 2.64 MiB/s) |
| 74 | Полный снимок / время | Новый снимок 081405_sourcefix подтверждает общее соответствие на уровне 12226 различий / 37396 без изменений, Reports — 437 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 83.685 s (484.87 rows/s, 10.57 MiB/s) |
| 73 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 081017_17rc17lo5 подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после переназначения ссылок форматов колонок MXL из источника; критический путь — 13.050 s (439.62 rows/s, 2.92 MiB/s) |
| 72 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 013406_zerosize подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после сохранения наборов колонок MXL по умолчанию нулевого размера; критический путь — 14.493 s (395.85 rows/s, 2.62 MiB/s) |
| 71 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 012824_negcol подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после поддержки отрицательных индексов колонок MXL; критический путь — 14.045 s (408.47 rows/s, 2.71 MiB/s) |
| 70 | Полный снимок / время | Новый снимок 010516_vg подтверждает общее соответствие на уровне 12226 различий / 37396 без изменений, Reports — 437 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 86.186 s (470.80 rows/s, 10.27 MiB/s) |
| 69 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 005936_vg подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после исправления цикла MXL для vg; критический путь — 13.730 s (417.84 rows/s, 2.77 MiB/s) |
| 68 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 003832_editformat подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа после исправления цикла MXL для editFormat; критический путь — 12.405 s (462.47 rows/s, 3.07 MiB/s) |
| 67 | Полный снимок / время | Новый снимок 001609 улучшает общее соответствие до 12226 различий / 37396 без изменений и Reports до 437 оставшихся, подтверждая DataProcessors на уровне 1714 различий / 5344 без изменений; критический путь — 86.359 s (469.85 rows/s, 10.25 MiB/s) |
| 66 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 001157 подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа; критический путь — 13.193 s (434.85 rows/s, 2.88 MiB/s) |
| 65 | Полный снимок / время | Новый снимок 235827 подтверждает общее соответствие на уровне 12227 различий / 37395 без изменений, Reports — 438 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 86.750 s (467.73 rows/s, 10.20 MiB/s) |
| 64 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 235010 подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа; критический путь — 13.324 s (430.58 rows/s, 2.86 MiB/s) |
| 63 | Полный снимок / время | Новый снимок 232306 подтверждает общее соответствие на уровне 12227 различий / 37395 без изменений, Reports — 438 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 86.922 s (466.81 rows/s, 10.18 MiB/s) |
| 62 | Полный снимок / время | Новый снимок 230839 подтверждает общее соответствие на уровне 12227 различий / 37395 без изменений, Reports — 438 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 86.967 s (466.57 rows/s, 10.17 MiB/s) |
| 61 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 230510 подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа; критический путь — 13.293 s (431.58 rows/s, 2.86 MiB/s) |
| 60 | Полный снимок / время | Новый снимок 2252236 подтверждает общее соответствие на уровне 12227 различий / 37395 без изменений, Reports — 438 оставшихся, DataProcessors — 1714 различий / 5344 без изменений; критический путь — 89.698 s (452.36 rows/s, 9.86 MiB/s) |
| 59 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 222918 подтверждает DataProcessors на уровне 1714 различий / 5344 без изменений при 0 только слева / 0 только справа; критический путь — 13.722 s (418.09 rows/s, 2.77 MiB/s) |
| 58 | Полный снимок / время | Новый снимок 214826 обновляет общее соответствие до 12227 различий / 37395 без изменений, подтверждает Reports на уровне 438 оставшихся и фиксирует DataProcessors на уровне 1714 различий / 5344 без изменений; критический путь — 89.419 s (453.77 rows/s, 9.90 MiB/s) |
| 57 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 214301 сокращает DataProcessors до 1714 различий / 5344 без изменений при 0 только слева / 0 только справа; критический путь — 15.957 s (359.53 rows/s, 2.38 MiB/s) |
| 56 | Полный снимок / время | Новый снимок 212531 обновляет общее соответствие до 12238 различий / 37384 без изменений, подтверждает Reports на уровне 438 оставшихся и DataProcessors на уровне 1725 различий / 5333 без изменений; критический путь — 90.265 s (449.52 rows/s, 9.80 MiB/s) |
| 55 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 212150 сокращает DataProcessors до 1725 различий / 5333 без изменений при 0 только слева / 0 только справа; критический путь — 14.474 s (396.37 rows/s, 2.63 MiB/s) |
| 54 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 211339 сокращает DataProcessors до 1745 различий / 5313 без изменений при 0 только слева / 0 только справа; критический путь — 12.541 s (457.46 rows/s, 3.03 MiB/s) |
| 53 | Полный снимок / время | Новый снимок 205558 обновляет общее соответствие до 12264 различий / 37358 без изменений, подтверждает Reports на уровне 438 оставшихся и DataProcessors на уровне 1751 различий / 5307 без изменений; критический путь — 89.677 s (452.47 rows/s, 9.87 MiB/s) |
| 52 | Выборочная проверка DataProcessors / время | Новый выборочный экспорт 2015 обновляет DataProcessors до 1751 различий / 5307 без изменений при 0 только слева / 0 только справа; критический путь — 13.309 s (431.06 rows/s, 2.86 MiB/s) |
| 51 | Полный снимок / время | Новый снимок 185626 подтверждает общее соответствие на уровне 12307 различий / 37315 без изменений, Reports — 438 оставшихся, DataProcessors — 1789 различий / 5269 без изменений; критический путь — 82.381 s (492.54 rows/s, 10.74 MiB/s) |
| 50 | Полный снимок / время | Новый снимок 0022 обновляет общее соответствие до 12307 различий / 37315 без изменений, улучшает Reports до 438 оставшихся и DataProcessors до 1789 различий / 5269 без изменений; критический путь — 91.909 s (441.48 rows/s, 9.63 MiB/s) |
| 49 | Полный снимок / время | Новый снимок 0021 подтверждает общее соответствие на уровне 10276 различий / 39346 без изменений, Reports — 505 оставшихся, DataProcessors — 3042 различий / 4016 без изменений; критический путь — 133.197 s (304.63 rows/s, 6.64 MiB/s) |
| 48 | Полный снимок / время | Новый снимок 0020 подтверждает общее соответствие на уровне 10276 различий / 39346 без изменений, Reports — 505 оставшихся, DataProcessors — 3042 различий / 4016 без изменений; критический путь — 128.107 s (316.74 rows/s, 6.91 MiB/s) |
| 47 | Полный снимок / время | Новый снимок 0018 подтверждает общее соответствие на уровне 10276 различий / 39346 без изменений, Reports — 505 оставшихся, DataProcessors — 3042 различий / 4016 без изменений; критический путь — 122.111 s (332.29 rows/s, 7.25 MiB/s) |
| 46 | Полный снимок / время | Новый снимок 0017 подтверждает общее соответствие на уровне 10276 различий / 39346 без изменений, Reports — 505 оставшихся, DataProcessors — 3042 различий / 4016 без изменений; критический путь — 133.466 s (304.02 rows/s, 6.63 MiB/s) |
| 45 | Полный снимок / время | Новый снимок 0016 обновляет общее соответствие до 10276 различий / 39346 без изменений, Reports до 505 оставшихся и DataProcessors до 3042 различий / 4016 без изменений; критический путь — 246.829 s (164.39 rows/s, 3.58 MiB/s) |
| 44 | Полный снимок / время | Новый снимок 0015 подтверждает общее соответствие на уровне 8956 различий / 40666 без изменений и DataProcessors на уровне 1789 различий / 5269 без изменений; критический путь — 127.389 s (318.52 rows/s, 6.95 MiB/s) |
| 43 | Form.xml | Элементы UsualGroup в наборе свойств теперь выводят нативные Behavior=Usual, Representation и нестандартный Group; корневое значение по умолчанию Form/Group=Vertical подавляется |
| 43 | Команды Form.xml | Representation / CurrentRowUse команды теперь выводятся из нативных флагов команды, наличия картинки и формы действия/имени вместо избыточного вывода значений по умолчанию |
| 42 | Инструменты Form.xml | form-diff-candidates сравнивает контролируемые пары файлов Form.xml и двоичных объектов и предлагает соответствия XML path -> layout path для матричных тестов упаковки/распаковки |
| 42 | Form.xml | Вновь синтезированные дочерние элементы Table теперь сохраняют XML <DataPath> в нативной раскладке |
| 42 | Шаблоны MXL | Код вертикального выравнивания MOXCEL 48 теперь экспортируется и упаковывается как Bottom |
| 42 | XML метаданных Catalog | Хвостовые свойства создания/истории корня теперь берутся из нативных полей, а не из фиксированных значений по умолчанию |
| 42 | Готовность промежуточной загрузки источников | Аудит зависимости XML метаданных от базы сообщает прямое число свойств и разбивку дочерних объектов по видам |
| 42 | Рефакторинг | Вспомогательные функции планирования выборочного экспорта перенесены из src/mssql_dump/mod.rs в src/mssql_dump/selected.rs |
| 41 | Form.xml | Новые элементы CheckBoxField теперь упаковывают явный ShowInHeader через расширенную форму раскладки |
| 41 | Шаблоны MXL | Таблицы строк числовых форматов MOXCEL теперь экспортируют и упаковывают ссылки document/format/format/v8:item |
| 41 | XML метаданных процессов | BusinessProcess и Task теперь выводят UseStandardCommands из нативного поля владельца |
| 41 | Готовность промежуточной загрузки источников | Аудит зависимости Predefined.xml от базы сообщает точные блокеры строк, вложенности, редактируемых полей и нативной формы |
| 41 | Рефакторинг | Вспомогательные функции получения SQL/BCP перенесены из src/mssql_dump/mod.rs в src/mssql_dump/fetch.rs и снабжены целевыми проверками получения/времени |
| 40 | Configuration.xml | Теги дочерних объектов корня теперь повторно используют общий классификатор метаданных для Languages, XDTOPackages, SettingsStorages, ScheduledJobs, CommandGroups, Styles и DocumentNumerators в исходном XML 2.20/2.21 |
| 40 | XML метаданных Catalog | QuickChoice и ChoiceMode извлекаются из нативных полей корня с обратно совместимыми значениями по умолчанию |
| 40 | Form.xml | TextDocumentField теперь экспортирует явный ReadOnly=true через общий путь дочерних элементов |
| 40 | Готовность промежуточной загрузки источников | Тела Form.xml без секций сохраняют требование существующей базы, но теперь сообщают точный блокер каркаса нативного контейнера |
| 40 | Производительность нативной выгрузки | Сводка времени теперь показывает отсортированную разбивку CPU исходных ресурсов и Form; последние сохранённые данные полного запуска указывают на CPU реконструкции Form XML, а не на BCP/прямое получение |
| 39 | Form.xml | Значение по умолчанию SkipOnInput=false дочернего Table подавляется, а явное true продолжает экспортироваться |
| 39 | Шаблоны MXL | Системные ссылки стилей MOXCEL -25, -26, -27, -34, -35, -36, -37 и -38 теперь сопоставляются с нативными ссылками цветов стилей отчёта/таблицы/кнопки |
| 39 | XML метаданных InformationRegister | Расширенное поле кортежа владельца выводит DataLockControlMode для InformationRegister, как и для AccumulationRegister |
| 39 | Role Rights.xml | Порядок объектов прав роли может следовать порядку дерева метаданных при сохранении сериализованного порядка внутри одного владельца |
| 39 | Готовность промежуточной загрузки источников | Аудит зависимости тела Form от базы теперь сообщает точные числа скаляров корня/раскладки, дочерних элементов, хвостовых секций и ресурсов Ext/Form/Items/** |
| 38 | Form.xml | Значение по умолчанию WindowOpeningMode=DontBlock подавляется при экспорте, а явный XML по-прежнему упаковывается в раскладку формы |
| 38 | Шаблоны MXL | Нативные пустые слоты формата {0} сохраняются, поэтому последующие форматы с шириной больше не отбрасываются |
| 38 | Шаблоны MXL | Смешанные списки NamedItemCells / NamedItemDrawing теперь сохраняют допустимые именованные области без упаковки ложных областей рисунков |
| 38 | XML метаданных объектов | Дочерние атрибуты Document и Report повторно используют общее извлечение хвостовых свойств, включая DataHistory после ChoiceForm |
| 38 | Subsystems | Хвост скаляров метаданных теперь выводит IncludeHelpInContents, IncludeInCommandInterface и нативный UseOneCommand |
| 38 | Готовность промежуточной загрузки источников | XDTOPackages/*/Ext/Package.bin покрыт промежуточной загрузкой данных в формате raw-deflated без базы и учётом загрузки источников |
| 37 | Form.xml | Записи динамического списка Settings/Field теперь экспортируют dataPath/field и упаковываются обратно в сериализованный набор настроек |
| 37 | Шаблоны MXL | textPlacement=Cut теперь извлекается из кода MOXCEL 1 и упаковывается обратно в тот же бит формата |
| 37 | Шаблоны MXL | Значения formatIndex колонок не с единичной базой сохраняются отдельно от нормализованных внутренних индексов декодирования строк/ячеек |
| 37 | Configuration.xml | Дочерние объекты CommonPicture корня классифицируются по форме нативного поля и выводятся в Configuration.xml для исходного XML 2.20/2.21 |
| 37 | XML метаданных объектов | Хвосты дочернего атрибута ChoiceForm теперь сохраняют пустые значения и разрешённые непустые ссылки времени разработки |
| 37 | Готовность промежуточной загрузки источников | Корневой Ext/MainSectionPicture.xml покрыт промежуточной загрузкой без базы и учётом загрузки источников |
| 36 | Анализ различий | Добавлена повторно используемая CLI-команда source-diff-signatures; ограниченное сканирование последнего полного сравнения исследовало 2 101 пару XML и показало, что крупнейшими оставшимися кластерами остаются сигнатуры MXL document/format/* и formatIndex |
| 36 | Form.xml | Значение по умолчанию Page/ScrollOnCompress=false подавляется, а явное true продолжает экспортироваться и упаковываться |
| 36 | Flowchart.xml | Font BusinessProcess/GraphicalSchema теперь декодирует сериализованные кортежи шрифтов стилей для линий связи |
| 36 | Шаблоны MXL | Бит 13 формата textOrientation таблицы извлекается в XML и упаковывается обратно в тела MOXCEL |
| 36 | CommonAttributes | Нативный хвост свойства FillChecking теперь выводит ShowError / DontCheck после FillValue в порядке исходного XML |
| 36 | Готовность промежуточной загрузки источников | Необработанные строки интерфейса команд CommonCommand/Ext/CommandInterface.xml покрыты промежуточной загрузкой без базы |
| 35 | Анализ различий | Добавлен отчёт выборочного анализа XML-путей, чтобы распределять работу агентов по повторяющимся сигнатурам, а не по семействам объектов |
| 35 | Form.xml | Значение по умолчанию ShowCommandBar=true подавляется, а явное false и явные значения упаковщика остаются поддержанными |
| 35 | XML метаданных объектов | Дочерние атрибуты Catalog теперь повторно используют общий разбор хвостовых свойств с разрешёнными ссылками ChoiceParameters |
| 35 | Flowchart.xml | ZOrder элемента BusinessProcess/GraphicalSchema экспортируется из сериализованного порядка элементов вместо жёстко заданного нуля |
| 35 | Шаблоны MXL | Неизвестные биты формата MOXCEL больше не отбрасывают всю таблицу форматов; соседние известные свойства и индексы сохраняются |
| 35 | Готовность промежуточной загрузки источников | Корневые модули приложения конфигурации в Ext/*.bsl имеют явную готовность без базы и покрытие формирования строк |
| 35 | Role Rights.xml | Ссылки на формы разрешаются и упаковываются в правах роли, включая принадлежащие владельцу ссылки вида Catalog.<name>.Form.<form> |
| 34 | Готовность промежуточной загрузки источников | Ext/ParentConfigurations.bin теперь загружается без базы путём повторного сжатия распакованных исходных байтов в формате raw-deflated в строку ConfigSave |
| 34 | XML метаданных объектов | Ссылки владельцев Catalog выводятся как упорядоченные элементы xr:MDObjectRef в <Owners> |
| 34 | Шаблоны DCS | Нормализация TypeId вычисляемого поля использует нативный контекст пространства имён текущей конфигурации d4p1 |
| 34 | Form.xml | RowFilter xsi:nil="true" таблицы в оболочке 55 извлекается и упаковывается через ключ набора свойств 10 |
| 34 | ExchangePlan Content.xml | Элементы содержимого упорядочиваются по дереву метаданных конфигурации с резервным порядком двоичного объекта |
| 34 | CommonAttributes | Хвост свойства FillValue выводит строковые, nil, десятичные и логические XML-значения между полями источника заполнения и проверки заполнения |
| 33 | Role Rights.xml | Ссылки методов шаблонов URL HTTPService разрешаются как HTTPService.<service>.URLTemplate.<template>.Method.<method> и упаковываются обратно из исходного XML |
| 33 | Шаблоны DCS | Неквалифицированные значения ядра DCS xsi:type нормализуются в dcscor:*; StandardPeriod / StandardPeriodVariant ядра данных — в v8:* |
| 33 | Form.xml | Period таблицы в оболочке 55 извлекается и упаковывается через ключ набора свойств 7 как v8:StandardPeriodVariant=Custom |
| 33 | XML метаданных объектов | Дочерние метаданные DataProcessor выводят непустой ChoiceParameters, разрешая UUID времени разработки в стабильные ссылки и фиксированные массивы |
| 33 | XML метаданных ExchangePlan | Необязательный xr:ThisNode выводится в InternalInfo, а UseStandardCommands читается относительно обнаруженного слота заголовка |
| 33 | Готовность промежуточной загрузки источников | Исходные ресурсы модулей .bin с распакованными контейнерами V8 могут загружаться без базы для тел общих/объектных/вложенных модулей |
| 32 | Производительность нативной выгрузки / CPU Form.xml | Объединён обход индексов поддержки дочерних элементов формы; полный повторный запуск раскладки источников завершён без ConfigDumpInfo.xml, source_asset_form_child_items_cpu_ms снижен с 68,886 до 40,598, а source_asset_form_xml_cpu_ms — с 118,673 до 102,296 |
| 32 | Form.xml | RestoreCurrentRow таблицы в оболочке 55 извлекается и упаковывается через ключ набора свойств 12 |
| 32 | XML метаданных объектов | <IncludeHelpInContents> владельца Document выводится после свойств форм по умолчанию/вспомогательных форм |
| 32 | XML метаданных ExchangePlan | Дочерние атрибуты кодов 4/27 выводятся с типами значений и хвостами свойств |
| 32 | Configuration.xml | Выводятся локализованные информационные поля корня (BriefInformation, DetailedInformation, адреса авторских прав и информации) |
| 32 | Готовность промежуточной загрузки источников | Неподдерживаемые семейства AdditionalIndexes.xml теперь сообщают точный блокер базового двоичного объекта вместо молчаливого пропуска |
| 31 | Производительность нативной выгрузки / CPU Form.xml | Полный повторный запуск раскладки источников завершён без ConfigDumpInfo.xml; разбор набора параметров InputField кэшируется для каждого элемента формы, снижая source_asset_form_child_items_cpu_ms с 70,750 до 68,886 и source_asset_form_cpu_ms с 124,212 до 123,507 |
| 31 | Role Rights.xml | Дочерние ссылки Task теперь сопоставляются и упаковываются как Task.<name>.AddressingAttribute.<child>, а не как обычные атрибуты |
| 31 | Form.xml | ChoiceFoldersAndItems таблицы в оболочке 55 извлекается и упаковывается через существующий типизированный слот таблицы |
| 31 | XML метаданных объектов | Выводятся хвосты свойств табличных частей, а хвосты дочерних свойств теперь содержат пустой <LinkByType/> между ChoiceForm и ChoiceHistoryOnInput |
| 31 | XML метаданных регистров | Измерения/ресурсы/атрибуты регистров повторно используют общий разбор дочерних объектов и выводят декодированные типы с общими хвостами свойств |
| 31 | Configuration.xml | Ссылки хранилищ настроек корня выводятся из полей метаданных, подкреплённых UUID |
| 31 | Шаблоны DCS | Поиск идентификатора сгенерированного типа для тел шаблонов DataCompositionSchema не зависит от регистра |
| 31 | Готовность промежуточной загрузки источников | Ext/Module.bsl WebService покрыт как тело промежуточной загрузки источников без базы |
| 30 | Производительность нативной выгрузки / ExchangePlan Content.xml | Выбранное содержимое ExchangePlan теперь запрашивает object_refs; выборочный и полный экспорты раскладки источников завершены без ConfigDumpInfo.xml, полный замер сохранён в E:\ibcmd_lab\perf\issue-19-exchange-constant-ref-v2-full-source-report.json |
| 30 | Role Rights.xml | При упаковке импорта объекты прав сопоставляются по разрешённым из источника ссылкам, а не по порядку XML; это включает команды, дочерние измерения/ресурсы/атрибуты, стандартные атрибуты и прямые ссылки метаданных |
| 30 | Form.xml | RowPictureDataPath таблицы в оболочке 55 извлекается и упаковывается через строковый ключ набора свойств 19 |
| 30 | XML метаданных объектов | Хвостовые свойства дочернего Attribute теперь включают скалярные детали выбора/использования/индексирования/полнотекстового поиска/истории данных |
| 30 | XML метаданных объектов | Дочерние команды Report/DataProcessor выводят хвосты свойств команд из двоичного объекта метаданных владельца |
| 30 | XML метаданных регистров | Выводятся стандартные атрибуты InformationRegister и AccumulationRegister; значение типа AccumulationRegister 1 теперь сопоставляется с Turnovers |
| 30 | CommonAttributes | Выводятся нативные хвостовые свойства разделения и подкреплённые UUID ссылки разделения |
| 30 | Шаблоны DCS | Префиксы v8:Type текущей конфигурации нормализуются по контексту DCS (d4p1, d5p1, d6p1) |
| 30 | Готовность промежуточной загрузки источников | Модули менеджера FilterCriterion могут загружаться без базы из FilterCriteria/<Name>/Ext/ManagerModule.bsl |
| 29 | Производительность нативной выгрузки / ExchangePlan Content.xml | Извлечение исходных ресурсов теперь строит ссылки раскладки источников без XML метаданных; ошибки содержимого ExchangePlan сообщают точный неподдерживаемый идентификатор метаданных, следующий блокер изолирован до отсутствующего индекса ссылок Constant |
| 29 | Role Rights.xml | Права объектов сохраняют сериализованный порядок при экспорте и упаковке |
| 29 | Form.xml | DefaultItem=true таблицы в оболочке 55 извлекается и упаковывается через ключ набора свойств 11 |
| 29 | XML метаданных объектов | Хвосты свойств дочернего Attribute выводят детали формата/редактирования/заполнения/истории из нативных двоичных объектов метаданных |
| 29 | XML метаданных регистров | Выводятся свойства владельца AccumulationRegister DataLockControlMode и FullTextSearch |
| 29 | CommonAttributes | Нативные значения по умолчанию деталей свойств выводятся перед Content для исходного XML 2.20/2.21 |
| 29 | Шаблоны MXL | Блоки printSettings, содержащие только значения по умолчанию, подавляются для соответствия нативному исходному выводу |
| 29 | Готовность промежуточной загрузки источников | Строки versions теперь сообщают точные блокеры работы без базы вместо общей заметки о начальной сборке |
| 28 | Производительность нативной выгрузки | Ссылки автономного содержимого разрешаются без --extract-metadata-xml; полный замер теперь доходит до блокера ExchangePlan Content.xml |
| 28 | Role Rights.xml | Поля ограничений на основе строк экспортируются/импортируются через <restrictionByCondition><field> с сохранением базовой раскладки |
| 28 | Form.xml | UserSettingsGroup таблицы в оболочке 55 извлекает и упаковывает существующие числовые слоты набора свойств |
| 28 | XML метаданных объектов | Улучшены ссылки типов дочерних атрибутов Catalog/DataProcessor и поведение заполнителя вспомогательного варианта Report |
| 28 | Метаданные/ресурсы Register/ExchangePlan | Покрыты RegisterType AccumulationRegister и обрамление BOM/конечной новой строки Content.xml ExchangePlan |
| 28 | CommonAttributes | Ссылки xr:ConditionalSeparation элементов содержимого разрешаются из нативных записей настроек |
| 28 | Шаблоны DCS | Выбранные владельцы шаблонов строят type_index, чтобы TypeId DCS нормализовались в выборочных потоках/потоках только источников |
| 28 | Готовность промежуточной загрузки источников | Строки XML метаданных теперь сообщают точные зависящие от базы блокеры незавершённой нативной компиляции метаданных |
| 27 | Role Rights.xml | Ссылки вложенных подсистем и каналов служб интеграции разрешаются в более полные нативные имена дочерних объектов |
| 27 | Form.xml | Элементы таблицы в оболочке 55 извлекают и упаковывают существующие логические слоты AllowGettingCurrentRowURL |
| 27 | XML метаданных объектов | Выводятся дочерние заголовки команд Report и заголовки Attribute/TabularSection Catalog/DataProcessor |
| 27 | XML метаданных процессов/регистров | Выводятся сгенерированные типы BusinessProcess/Task и IncludeHelpInContents=false AccumulationRegister |
| 27 | Configuration.xml | Корневой <DefaultRoles> выводится из разрешённых ссылок ролей в поле метаданных 39 |
| 27 | Шаблоны DCS | Нормализация TypeId может использовать записи xr:GeneratedType из XML-подобного текста метаданных |
| 27 | Готовность промежуточной загрузки источников | Конфигурационный Ext/HomePageWorkArea.xml имеет явную классификацию готовности без базы |
| 27 | Производительность нативной выгрузки | Добавлен mssql-dump-timing-summary; выборочный замер двоичных данных объёмом 664 MB подтвердил 3 пакета BCP и fetch_rows_ms=3532 |
| 26 | Производительность нативной выгрузки | Ограничение пакета строк нативного bcp снижено до 256 MiB, JSON времени сообщает число пакетов и диагностику максимального размера |
| 26 | Role Rights.xml | Ссылки объектов ролей используют UUID и сериализованные хвостовые поля, сохраняя повторяющиеся ссылки владельцев и стандартных атрибутов |
| 26 | Form.xml | Элементы таблицы в оболочке 55 извлекают и упаковывают наблюдавшийся UpdateOnDataChange=Auto через ключ набора свойств 14 |
| 26 | XML метаданных объектов | Метки стандартных атрибутов Catalog и скаляры объекта/представления DataProcessor разбираются из двоичного объекта метаданных |
| 26 | XML метаданных Register/ExchangePlan | Расширено покрытие сгенерированного типа InternalInfo AccumulationRegister и ExchangePlan |
| 26 | Configuration.xml | Корневые ссылки DefaultStyle и DefaultLanguage выводятся из полей метаданных, подкреплённых UUID |
| 26 | Шаблоны DCS | Наблюдавшиеся значения тела DCS AnyIBRef/TypeSet и настроек xsi:type канонизируются |
| 26 | Готовность промежуточной загрузки источников | Читаемые ссылки CommandInterface.xml теперь сообщают точные блокеры работы без базы, а необработанные ссылки остаются независимыми от базы |
| 25 | Role Rights.xml | Явно отключённые права false без ограничений сохраняются при экспорте и упаковке |
| 25 | Form.xml | Элементы таблицы в оболочке 55 извлекают и упаковывают UseAlternationRowColor через существующий набор свойств |
| 25 | XML метаданных объектов | Метаданные Document выводят настройки нумерации, флаг стандартных команд и ссылки форм по умолчанию |
| 25 | XML метаданных InformationRegister | Ссылки DefaultRecordForm и DefaultListForm разрешаются из индексов форм метаданных владельца |
| 25 | Configuration.xml | Скалярные свойства приложения/совместимости корня выводятся в XML метаданных нативной формы |
| 25 | Шаблоны MXL | Текстовые узлы SpreadsheetDocument сохраняют буквальные кавычки, продолжая экранировать структурные символы XML |
| 25 | Готовность промежуточной загрузки источников | Готовность Predefined.xml сообщает точные блокеры базового двоичного объекта по порядку строк, слотам родителя/типа и хвостовым полям |
| 24 | Role Rights.xml | Объекты прав роли экспортируются и упаковываются относительно базовых слотов в порядке UUID объектов |
| 24 | Form.xml | Дочерние элементы таблиц извлекают и упаковывают SkipOnInput, включая раскладки в оболочке 55 |
| 24 | XML метаданных объектов | Метаданные Document выводят StandardAttributes со значением заполнения Number, учитывающим числовой тип |
| 24 | XML метаданных CommonAttributes | Разбираются нативные пары метаданных/использования Content, включая use_flag=2 как DontUse |
| 24 | Шаблоны DCS | Тела шаблонов DataCompositionSchema переписывают известные v8:TypeId в ссылки v8:Type исходного вида через индекс типов метаданных |
| 24 | ExchangePlan Content.xml | Сопоставление AutoRecord исправлено на 0=Deny, 1=Allow, 2=Auto |
| 24 | Готовность промежуточной загрузки источников | Готовность BusinessProcess/Ext/Flowchart.xml сообщает точные блокеры базового двоичного объекта по порядку элементов, слотам типов, событиям и форме вложенной полезной нагрузки |
| 23 | Form.xml | Элементы таблицы в оболочке 55 извлекают и упаковывают AutoRefresh / AutoRefreshPeriod через существующие ключи набора свойств |
| 23 | XML метаданных объектов | Метаданные Document выводят принадлежащие владельцу дочерние ссылки Form и Template из общих индексов |
| 23 | Частичный XML метаданных | InformationRegister читает UseStandardCommands из расширенного нативного кортежа владельца |
| 23 | Шаблоны MXL | Области слияния MOXCEL SpreadsheetDocument сохраняют verticalUnmerge вместо преобразования в обычный merge |
| 23 | Готовность промежуточной загрузки источников | Готовность Role/Ext/Rights.xml сообщает точные блокеры базового двоичного объекта вместо общей причины |
| 23 | Производительность нативной выгрузки | mssql-dump-config направляет чтение метаданных вместе с двоичными контейнерами и прямую подготовку через существующий нативный парсер bcp и сообщает раздельное время sqlcmd/bcp |
| 22 | Form.xml | Command/ModifiesSavedData=true извлекается и упаковывается для команд формы |
| 22 | XML метаданных корня/CommonAttributes | Расширены дочерние семейства корневого Configuration.xml; CommonAttribute выводит элементы Content нативной формы и значения перечисления AutoUse |
| 22 | Готовность промежуточной загрузки источников | Аудит готовности тела формы теперь сообщает точные блокеры базового двоичного объекта по раскладке, хвостовым секциям, модулям и ресурсам элементов |
| 22 | Слой контейнера V8 | Парсер/сборщик контейнера V8 для двоичного объекта модуля перенесён в общий протестированный внутренний модуль |
| 21 | Form.xml | Вложенные элементы AutoCommandBar сохраняют настройки HorizontalAlign и Autofill |
| 21 | XML метаданных объектов | DataProcessor выводит UseStandardCommands из двоичного объекта метаданных |
| 21 | Готовность промежуточной загрузки источников | Строки конфигурационного Ext/MobileClientSignature.bin покрыты как тела в формате raw-deflated без базы |
| 20 | Form.xml | Новые элементы UsualGroup сохраняют расширенные Behavior, Representation, ShowTitle=false и вложенные дочерние элементы |
| 20 | Частичный XML метаданных | Метаданные семейств регистров выводят UseStandardCommands из двоичного объекта метаданных |
| 20 | Готовность промежуточной загрузки источников | Строки конфигурационного Ext/StandaloneConfigurationContent.bin покрыты как тела в формате raw-deflated без базы |
| 19 | Form.xml | Новые элементы InputField сохраняют расширенные параметры (Width, HorizontalStretch, AutoMaxWidth, MaxWidth) |
| 19 | Частичный XML метаданных | Subsystem выводит UseStandardCommands из двоичного объекта метаданных |
| 19 | Готовность промежуточной загрузки источников | Строки определения WSReference покрыты как тела в формате raw-deflated без базы |
| 18 | Form.xml | Новые верхнеуровневые элементы Button сохраняют явные значения DefaultButton |
| 18 | Частичный XML метаданных | ExchangePlan выводит UseStandardCommands из двоичного объекта метаданных |
| 18 | Configuration.xml | Выводятся заголовки дочерних объектов Catalog корня |
| 18 | Готовность промежуточной загрузки источников | Строки конфигурации с необработанным идентификатором MainSectionCommandInterface.xml покрыты как независимые от базы |
| 17 | Form.xml | Новые элементы InputField сохраняют явные значения SkipOnInput |
| 17 | Частичный XML метаданных | Выводятся записи сгенерированного типа InternalInfo для Task |
| 17 | Шаблоны MXL | style:FieldSelectionBackColor SpreadsheetDocument поддерживается при упаковке |
| 17 | Готовность промежуточной загрузки источников | Строки конфигурации с необработанным идентификатором CommandInterface.xml покрыты как независимые от базы |
| 16 | Form.xml | Новые элементы LabelField сохраняют явные значения ShowInHeader |
| 16 | Частичный XML метаданных | Выводятся записи сгенерированного типа InternalInfo для AccountingRegister и CalculationRegister |
| 16 | Configuration.xml | Выводятся заголовки дочерних объектов Constant корня |
| 16 | Готовность промежуточной загрузки источников | Строки с необработанным идентификатором CommandInterface.xml могут подготавливаться без активных двоичных объектов Config |
| 15 | Form.xml | DataPath элемента InputField упаковывается для существующих и новых записей раскладки |
| 15 | Частичный XML метаданных | ExchangePlan и связанные частично поддержанные семейства выводят принадлежащие владельцу дочерние ссылки Form/Template |
| 15 | Простой XML метаданных | DocumentJournal выводит принадлежащие владельцу дочерние ссылки Form/Template |
| 15 | Готовность промежуточной загрузки источников | Строки шаблонов HTMLDocument покрыты как двоичные контейнеры справочного типа без базы |
| 14 | Form.xml | Новые элементы InputField сохраняют явные значения ReadOnly |
| 14 | XML метаданных BusinessProcess | Выводятся записи сгенерированного типа InternalInfo |
| 14 | XML метаданных Task | Выводятся заголовки принадлежащих владельцу дочерних объектов Form и Template |
| 14 | Готовность промежуточной загрузки источников | Строки Style/Ext/Style.xml подготавливаются без активных двоичных объектов Config |
| 13 | Form.xml | Новые дочерние элементы PictureDecoration могут компилироваться из XML |
| 13 | XML метаданных Catalog | Выводятся заголовки принадлежащих владельцу дочерних объектов Form и Template |
| 13 | Шаблоны MXL | style:ButtonTextColor SpreadsheetDocument поддерживается при упаковке и извлечении |
| 13 | Готовность промежуточной загрузки источников | Строки SpreadsheetDocument Ext/Template.xml подготавливаются без активных двоичных объектов Config |
Исключение из области: ConfigDumpInfo.xml намеренно не формируется и не
учитывается как долг по совместимости.
Текущая поддержка Configuration.xml охватывает заголовок метаданных корня
(name/synonym/comment/uuid), выбор версии исходного XML, заголовки отдельных
дочерних объектов корня (CommonAttribute, CommonModule, Constant,
Catalog) и отдельные ссылки корня, включая роли/стиль/язык/хранилища настроек
по умолчанию. Также поддерживаются локализованные информационные поля корня;
более глубокие свойства корня по-прежнему отслеживаются в задаче № 22.
cargo run --features platform-oracle -- probe --deep
cargo run -- scan C:\path\to\xml-sources -o current-manifest.json
cargo run -- plan current-manifest.json -b baseline-manifest.json -o load-plan.json
cargo run -- source-diff C:\ibcmd-export C:\ibcmd-rs-dump --path-prefix Catalogs\Валюты -o source-diff.json
cargo run --features platform-oracle -- profile-run --capture-output -- ibcmd infobase config load ...
cargo run --features platform-oracle -- dump-sources --settings C:\repo\autumn-properties.json --extension EmergingTravelGroup -o C:\repo\src\cfe\EmergingTravelGroup --overwrite
cargo run -- mssql-dump-config --database MyInfobase -o C:\repo\db-dump --include-config-save --inflate --extract-module-text
cargo run -- trace-template .\trace
cargo run -- trace-analyze .\trace\events.xml -o trace-analysis.json
cargo run -- storage-map .\trace\events.xml -o storage-map.json
cargo run -- compatibility
cargo run -- mssql-compare --left ref_db --right target_db -o compare.json
cargo run -- mssql-clone --source target_db --target ours_db --overwrite --allow-non-lab
cargo run -- mssql-storage-export --database import_only_db -o storage-bundle --overwrite
cargo run -- mssql-storage-import --database empty_target_db -i storage-bundle --replace --allow-non-lab
cargo run -- mssql-delta-export --database staged_db -o delta-bundle --overwrite
cargo run -- mssql-delta-import --database target_db -i delta-bundle --allow-non-lab
cargo run -- module-blob-pack --text CommonModules\...\Ext\Module.bsl --base-blob module.bin -o module.blob
cargo run -- versions-blob-patch -i versions.bin -o versions-new.bin --change <metadata-id> --change <metadata-id>.0
cargo run -- mssql-stage-common-module --database target_db --module-id <metadata-id> --text CommonModules\...\Ext\Module.bsl --replace-config-save --allow-non-lab
cargo run -- mssql-stage-common-modules --database target_db --module <metadata-id>=CommonModules\...\Ext\Module.bsl --module <metadata-id>=CommonModules\...\Ext\Module.bsl --replace-config-save --allow-non-lab
cargo run -- mssql-stage-common-module-metadata --database target_db --module-id <metadata-id> --xml CommonModules\...\Module.xml --replace-config-save --allow-non-lab
cargo run -- mssql-stage-common-module-object --database target_db --xml CommonModules\Module.xml --replace-config-save --allow-non-lab
cargo run -- mssql-stage-common-module-objects --database target_db --xml CommonModules\Module1.xml --xml CommonModules\Module2.xml --replace-config-save --allow-non-lab
cargo run -- mssql-stage-metadata-objects --database target_db --source-root C:\full\xml-sources --xml Constants\SomeConstant.xml --xml SessionParameters\SomeParameter.xml --replace-config-save --allow-non-lab
cargo run -- mssql-stage-source-metadata-objects --database target_db --source-root C:\full\xml-sources --replace-config-save --allow-non-lab
cargo run -- mssql-stage-source-common-module-objects --database target_db --source-root C:\full\xml-sources --replace-config-save --allow-non-lab
cargo run -- mssql-stage-source-objects --database target_db --source-root C:\full\xml-sources --source-version 2.21 --replace-config-save --allow-non-labКоманды mssql-storage-* и mssql-delta-* запускают bcp как внешний процесс.
Нативная команда mssql-dump-config также использует существующий нативный
парсер bcp для получения содержащих двоичные объекты строк при потоковом
экспорте, тогда как облегчённые запросы заголовков и управляющие запросы
по-прежнему выполняются через sqlcmd. По умолчанию в этих сценариях bcp
запускается в нативном формате, который поддерживается разными версиями bcp,
включая bcp 13 (Microsoft ODBC Driver 13 for SQL Server).
bcp 18+ (ODBC Driver 18) по умолчанию использует зашифрованные соединения,
поэтому может потребоваться доверие к сертификату сервера. В таком случае
передайте --bcp-trust-cert, чтобы добавить bcp -u (доверять сертификату
сервера). Не используйте этот флаг с bcp 13 и более ранними версиями:
такие сборки не распознают -u и завершаются ошибкой синтаксиса вызова
с сообщением "unknown argument".
# bcp 18+ через зашифрованное соединение с сервером с самоподписанным сертификатом:
cargo run -- mssql-storage-export --database import_only_db -o storage-bundle --overwrite --bcp-trust-cert-
Подготовьте временную информационную базу ERP на SQL Server.
-
Экспортируйте или подготовьте XML-исходники ERP.
-
Создайте базовый манифест:
cargo run -- scan C:\erp-src -o baseline-manifest.json
-
Сгенерируйте шаблоны трассировки:
cargo run -- trace-template .\trace
-
Запустите SQL Server Extended Events из
trace\sqlserver-xevents.sql. -
Выполните медленную загрузку через
profile-run:cargo run --features platform-oracle -- profile-run --capture-output -- ibcmd ...
-
Остановите трассировку SQL и сохраните вместе
.xel, технологический журнал 1С, манифест и JSON-файл профиля. -
Экспортируйте XML событий из SQL Server и сгруппируйте его:
cargo run -- trace-analyze C:\temp\events.xml -o trace-analysis.json
-
Сопоставьте сгруппированный SQL с семействами изменений хранилища:
cargo run -- storage-map C:\temp\events.xml -o storage-map.json
- Модель исходников: разбор идентификаторов объектов, UUID и принадлежности модулей, форм и шаблонов.
- Мост пакета хранилища: экспорт и импорт
ConfigSaveиParamsчерез нативный клиент BCP для SQL Server, чтобы подготовленное состояние импорта можно было применить к пустой информационной базе. - Мост пакета дельты: экспорт и импорт подготовленных строк
ConfigSaveдля заранее сформированного частичного изменения существующей информационной базы. - Компилятор тела общего модуля: создание корректного двоичного объекта
.0модуля из исходного кода BSL в видеdeflate(V8File(info,text))с использованием базового двоичного объекта для заголовков элементов. - Модификатор
versions: создание подготовленного двоичного объектаversionsпутём замены поколения, необязательных записейroot/version/versionsпри их наличии и UUID изменённых файлов; подготовка исходников и метаданных может добавлять отсутствующие записи об изменениях для новых подготовленных строк тел. - Подготовщик общих модулей в SQL: чтение активного
Config, создание изменённых двоичных объектов.0иversionsи запись набора из пяти подготовленных строкConfigSave. - Подготовщик нескольких модулей: подготовка нескольких изменений тел общих
модулей в одном наборе
ConfigSaveс единым модифицированным двоичным объектомversions. - Подготовщик метаданных общего модуля: подготовка XML-изменений
Name,Synonym,Comment, флагов контекста выполнения,PrivilegedиReturnValuesReuseс помощью набора из четырёх строкConfigSave. - Подготовщик объекта общего модуля: подготовка целого общего модуля из XML
и соседнего
Ext\Module.bslв одном наборе из пяти строкConfigSave. - Пакетный подготовщик объектов общих модулей: подготовка нескольких целых
общих модулей из XML и соседних файлов
Ext\Module.bslс одним общим двоичным объектомversions. - Универсальный подготовщик простых метаданных: подготовка XML-изменений
только для метаданных
Name,SynonymиCommentс сохранением остальной части каждого двоичного объекта метаданных; проверено наConstantиSessionParameter. ДляConstantтакже подготавливаются поддерживаемые шаблоныType(boolean,string,decimal,dateTime) иUseStandardCommands. ДляDefinedTypeподготавливаются встроенные шаблоныTypeс одной или несколькими записямиboolean,string,decimalиdateTime, а также ссылочные типыcfg:*, определяемые по сгенерированным значениямTypeIdв--source-root. ДляCommonCommandподготавливаютсяRepresentation,ToolTip,IncludeHelpInContents,ParameterUseMode,ModifiesData,Pictureдля пустых ссылок или ссылокCommonPicture.<name>,CommandParameterTypeдля пустого значения или одногоcfg:DefinedType.<name>, а также наблюдаемое в настоящее время значениеAutoсвойстваOnMainServerUnavalableBehavior. Для разрешения ссылок требуется--source-root;StdPicture.Userсопоставляется с принадлежащим платформе UUID изображения пользователя, а остальные значенияStdPicture.*и произвольные многотиповые наборы параметров команд по-прежнему отклоняются до появления соответствующих сопоставлений. - Проверка SQL: сравнение структуры таблиц, количества строк, а в дальнейшем и контрольных сумм строк.
- Анализатор трассировки: расширение поддержки экспорта
.xelи добавление более надёжной нормализации SQL. - Сопоставитель хранилища: сопоставление операций с метаданными 1С с наблюдаемыми изменениями SQL для каждой версии платформы.
- Усиление защиты записи: сохранение разрушающих операций подготовки за явными флагами подтверждения и добавление дополнительных защитных барьеров перед использованием вне лабораторной среды.
- Матрица совместимости: маршруты автономной конвертации теперь определяются
на основе точных результатов тестов профилей и семейств; исследование
работающей СУБД остаётся отдельной задачей
platform-oracle.