mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-12 00:44:57 +03:00
b7fbede819
- build-config/build-epf: заменить runtime-тип FormDataStructure на корректный *Object.XXX
- platform-cfe/config/epf: form-compile принимает -OutputPath (путь до Form.xml), не -FormPath
- skd-edit/info/validate: перегенерированы snapshots после feat(skd-compile) denyIncompleteValues=true (3729b63)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
109 lines
3.9 KiB
JavaScript
109 lines
3.9 KiB
JavaScript
// build-epf.test.mjs — Integration test: build an external data processor (EPF) from scratch
|
|
// Steps: epf-init → form-add → form-compile → template-add → mxl-compile → epf-validate
|
|
|
|
export const name = 'Сборка внешней обработки с нуля';
|
|
export const setup = 'none';
|
|
|
|
export const steps = [
|
|
// ── 1. Init empty EPF ──
|
|
{
|
|
name: 'epf-init: пустая обработка ТестоваяОбработка',
|
|
script: 'epf-init/scripts/init',
|
|
args: { '-Name': 'ТестоваяОбработка', '-SrcDir': '{workDir}' },
|
|
validate: { script: 'epf-validate/scripts/epf-validate', flag: '-ObjectPath', path: 'ТестоваяОбработка' },
|
|
},
|
|
|
|
// ── 2. Add form ──
|
|
{
|
|
name: 'form-add: Форма к ТестоваяОбработка',
|
|
script: 'form-add/scripts/form-add',
|
|
args: { '-ObjectPath': '{workDir}/ТестоваяОбработка.xml', '-FormName': 'Форма' },
|
|
validate: { script: 'epf-validate/scripts/epf-validate', flag: '-ObjectPath', path: 'ТестоваяОбработка' },
|
|
},
|
|
|
|
// ── 3. Compile form ──
|
|
{
|
|
name: 'form-compile: Форма с заголовком и полями ввода',
|
|
script: 'form-compile/scripts/form-compile',
|
|
input: {
|
|
title: 'Тестовая обработка',
|
|
attributes: [
|
|
{ name: 'Объект', type: 'DataProcessorObject.ТестоваяОбработка', main: true },
|
|
{ name: 'Наименование', type: 'String' },
|
|
{ name: 'Количество', type: 'Number' },
|
|
],
|
|
elements: [
|
|
{ input: 'Наименование', path: 'Наименование', title: 'Наименование' },
|
|
{ input: 'Количество', path: 'Количество', title: 'Количество' },
|
|
],
|
|
},
|
|
args: {
|
|
'-JsonPath': '{inputFile}',
|
|
'-OutputPath': '{workDir}/ТестоваяОбработка/Forms/Форма/Ext/Form.xml',
|
|
},
|
|
validate: {
|
|
script: 'form-validate/scripts/form-validate',
|
|
flag: '-FormPath',
|
|
path: 'ТестоваяОбработка/Forms/Форма/Ext/Form.xml',
|
|
},
|
|
},
|
|
|
|
// ── 4. Add spreadsheet template ──
|
|
{
|
|
name: 'template-add: Макет к ТестоваяОбработка',
|
|
script: 'template-add/scripts/add-template',
|
|
args: {
|
|
'-ObjectName': 'ТестоваяОбработка',
|
|
'-TemplateName': 'Макет',
|
|
'-TemplateType': 'SpreadsheetDocument',
|
|
'-SrcDir': '{workDir}',
|
|
},
|
|
},
|
|
|
|
// ── 5. Compile MXL template ──
|
|
{
|
|
name: 'mxl-compile: простой макет с двумя областями',
|
|
script: 'mxl-compile/scripts/mxl-compile',
|
|
input: {
|
|
columns: 3,
|
|
defaultWidth: 40,
|
|
areas: [
|
|
{
|
|
name: 'Шапка',
|
|
rows: [
|
|
{ cells: [
|
|
{ col: 1, span: 3, text: 'Заголовок документа' },
|
|
]},
|
|
],
|
|
},
|
|
{
|
|
name: 'Строка',
|
|
rows: [
|
|
{ cells: [
|
|
{ col: 1, param: 'НомерСтроки' },
|
|
{ col: 2, param: 'Наименование' },
|
|
{ col: 3, param: 'Сумма' },
|
|
]},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
args: {
|
|
'-JsonPath': '{inputFile}',
|
|
'-OutputPath': '{workDir}/ТестоваяОбработка/Templates/Макет/Ext/Template.xml',
|
|
},
|
|
validate: {
|
|
script: 'mxl-validate/scripts/mxl-validate',
|
|
flag: '-TemplatePath',
|
|
path: 'ТестоваяОбработка/Templates/Макет/Ext/Template.xml',
|
|
},
|
|
},
|
|
|
|
// ── 6. Final validation ──
|
|
{
|
|
name: 'epf-validate: Финальная валидация обработки',
|
|
script: 'epf-validate/scripts/epf-validate',
|
|
args: { '-ObjectPath': '{workDir}/ТестоваяОбработка' },
|
|
},
|
|
];
|