mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-07 18:50:53 +03:00
Декомпилятор собирает DSL источника целиком: читает файл источника, подтягивает файлы таблиц из <Источник>/Tables/ и складывает поля, ключи, ссылки и функции обратно в тот же синтаксис, который принимает meta-compile. Ссылки на поля возвращаются короткими именами, таблица без собственных свойств — коротким массивом полей, функция с типом по умолчанию — одной строкой. Это замыкает дешёвый контур проверки: XML → декомпиляция → компиляция → сравнение с исходником, без 1С и без Docker. На нём и проверено: наша выгрузка, выгрузка платформы и четыре таблицы внешних источников из чужого рабочего проекта возвращаются байт в байт. У выгрузки платформы остаются два известных расхождения: значение незаполненного родителя (платформа сама сбрасывает его при любой загрузке) и формы (декомпилятор их не захватывает — так задумано). Побочно закрыт дефект, к внешним источникам не относящийся: xs:base64Binary разбирался как ХранилищеЗначения, хотя это ДвоичныеДанные. Различать их можно по квалификаторам — у ХранилищеЗначения платформа пишет v8:ValueStorage, а у двоичных данных есть BinaryDataQualifiers. Компилятор научен типу BinaryData (и BinaryData(N)) — до этого он принимал такое имя, но эмитил его как есть, то есть невалидный XML. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
67 lines
2.8 KiB
XML
67 lines
2.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
|
|
<ExternalDataSource uuid="UUID-001">
|
|
<InternalInfo>
|
|
<xr:GeneratedType name="ExternalDataSourceManager.PG" category="Manager">
|
|
<xr:TypeId>UUID-002</xr:TypeId>
|
|
<xr:ValueId>UUID-003</xr:ValueId>
|
|
</xr:GeneratedType>
|
|
<xr:GeneratedType name="ExternalDataSourceTablesManager.PG" category="TablesManager">
|
|
<xr:TypeId>UUID-004</xr:TypeId>
|
|
<xr:ValueId>UUID-005</xr:ValueId>
|
|
</xr:GeneratedType>
|
|
<xr:GeneratedType name="ExternalDataSourceCubesManager.PG" category="CubesManager">
|
|
<xr:TypeId>UUID-006</xr:TypeId>
|
|
<xr:ValueId>UUID-007</xr:ValueId>
|
|
</xr:GeneratedType>
|
|
</InternalInfo>
|
|
<Properties>
|
|
<Name>PG</Name>
|
|
<Synonym>
|
|
<v8:item>
|
|
<v8:lang>ru</v8:lang>
|
|
<v8:content>PG</v8:content>
|
|
</v8:item>
|
|
</Synonym>
|
|
<Comment/>
|
|
<DataLockControlMode>AutomaticAndManaged</DataLockControlMode>
|
|
</Properties>
|
|
<ChildObjects>
|
|
<Table>prices</Table>
|
|
<Table>products</Table>
|
|
<Function uuid="UUID-008">
|
|
<Properties>
|
|
<Name>total</Name>
|
|
<Synonym/>
|
|
<Comment/>
|
|
<ReturnValue>true</ReturnValue>
|
|
<Type>
|
|
<v8:Type>xs:decimal</v8:Type>
|
|
<v8:NumberQualifiers>
|
|
<v8:Digits>15</v8:Digits>
|
|
<v8:FractionDigits>2</v8:FractionDigits>
|
|
<v8:AllowedSign>Any</v8:AllowedSign>
|
|
</v8:NumberQualifiers>
|
|
</Type>
|
|
<ExpressionInDataSource>public.f_total(&1, &2)</ExpressionInDataSource>
|
|
</Properties>
|
|
</Function>
|
|
<Function uuid="UUID-009">
|
|
<Properties>
|
|
<Name>nextKey</Name>
|
|
<Synonym/>
|
|
<Comment/>
|
|
<ReturnValue>true</ReturnValue>
|
|
<Type>
|
|
<v8:Type>xs:string</v8:Type>
|
|
<v8:StringQualifiers>
|
|
<v8:Length>10</v8:Length>
|
|
<v8:AllowedLength>Variable</v8:AllowedLength>
|
|
</v8:StringQualifiers>
|
|
</Type>
|
|
<ExpressionInDataSource>NEXT VALUE FOR public.seq_key</ExpressionInDataSource>
|
|
</Properties>
|
|
</Function>
|
|
</ChildObjects>
|
|
</ExternalDataSource>
|
|
</MetaDataObject> |