From 7381b0503cabbb6367e0a4a6c6d5944eec5d8ee2 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 27 Sep 2026 15:53:52 +0300 Subject: [PATCH] =?UTF-8?q?feat(cfe-borrow):=20=D1=81=D0=B2=D1=8F=D0=B7?= =?UTF-8?q?=D0=B8=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=80=D1=83=D1=8E=D1=82=D1=81=D1=8F=20=D0=BA=D0=B0=D0=BA?= =?UTF-8?q?=20=D1=83=20=D0=9A=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D0=BE=D1=80=D0=B0,=20=D0=B0=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=8B=D1=80=D0=B5=D0=B7=D0=B0=D1=8E=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В заимствованной форме без основного реквизита навык вырезал связи параметров выбора на Items.<Таблица>.CurrentData.<Поле>, а связи на стандартные поля (Объект.Owner, Объект.Date) и Объект.<ТЧ>.<Реквизит> — молча. TypeLink на Items.* вырезался всегда, даже с основным реквизитом. Конфигуратор пишет такие пути кодом. Код — внутренняя ссылка платформы: в выгрузке она пишет имя, а если имя в форме не разрешается — код. Грамматика восстановлена оракулом (код в форму конфигурации → загрузка → выгрузка → имя, 8.3.27) и эталонами Конфигуратора УТ: или :CurrentData, далее 0: метаданных источника, , : или -k стандартного реквизита (коды своих для каждого вида объекта — таблица в навыке и в спецификации §5.5.2). Правило как у Конфигуратора: текст, где он разрешается, иначе код. Путь от реквизита формы кодируется и с основным реквизитом — текст платформа отвергает «Неверный путь к полю». TypeLink — то же правило. Некодируемое вырезается, всегда с предупреждением «Вырезано связей формы». Измерения/ресурсы регистра и реквизиты ТЧ теперь различаются как реквизиты (с основным реквизитом «Запись.Склад» больше не подменяется ссылкой на сам реквизит). Попутно: порядок заимствования ссылочных типов в PS зависел от хеша — теперь порядок первого упоминания, как в Python-порте. Оба порта, v1.41. Проверка: четыре формы УТ (ОприходованиеИзлишковТоваров, ЗначенияСвойствОбъектов, ФормаРасчетыМеждуОрганизациями без и с основным реквизитом) совпадают с выгрузкой Конфигуратора построчно; все 11 кодов новых кейсов оракул переводит обратно в исходные пути. Кейсы form-link-codes, -main, -register; form-choice-link-items ждёт код вместо вырезания. Проблема и первые данные о кодировке — PR #105. Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) --- .../skills/cfe-borrow/scripts/cfe-borrow.ps1 | 292 ++++++++++++---- .../skills/cfe-borrow/scripts/cfe-borrow.py | 311 ++++++++++++----- docs/1c-extension-spec.md | 28 +- .../cfe-borrow/form-choice-link-items.json | 8 +- .../cfe-borrow/form-link-codes-main.json | 115 ++++++ .../cfe-borrow/form-link-codes-register.json | 107 ++++++ .../cases/cfe-borrow/form-link-codes.json | 113 ++++++ .../Forms/ФормаДокумента/Ext/Form.xml | 14 + .../Catalogs/Номенклатура.xml | 91 +++++ .../Номенклатура/Ext/ObjectModule.bsl | 0 .../form-link-codes-main/Catalogs/Склады.xml | 91 +++++ .../Catalogs/Склады/Ext/ObjectModule.bsl | 0 .../form-link-codes-main/Catalogs/Страны.xml | 91 +++++ .../Catalogs/Страны/Ext/ObjectModule.bsl | 0 .../form-link-codes-main/Configuration.xml | 255 ++++++++++++++ .../Documents/Размещение.xml | 256 ++++++++++++++ .../Documents/Размещение/Ext/ObjectModule.bsl | 0 .../Размещение/Forms/ФормаДокумента.xml | 21 ++ .../Forms/ФормаДокумента/Ext/Form.xml | 201 +++++++++++ .../Forms/ФормаДокумента/Ext/Form/Module.bsl | 19 + .../Ext/ClientApplicationInterface.xml | 18 + .../Languages/Русский.xml | 16 + .../cfe/Catalogs/Номенклатура.xml | 34 ++ .../cfe/Catalogs/Склады.xml | 34 ++ .../cfe/Catalogs/Страны.xml | 34 ++ .../cfe/Configuration.xml | 75 ++++ .../cfe/Documents/Размещение.xml | 90 +++++ .../Размещение/Forms/ФормаДокумента.xml | 13 + .../Forms/ФормаДокумента/Ext/Form.xml | 329 ++++++++++++++++++ .../Forms/ФормаДокумента/Ext/Form/Module.bsl | 0 .../cfe/Languages/Русский.xml | 13 + .../cfe/Roles/Тест_ОсновнаяРоль.xml | 10 + .../Catalogs/Склады.xml | 91 +++++ .../Catalogs/Склады/Ext/ObjectModule.bsl | 0 .../Configuration.xml | 253 ++++++++++++++ .../Ext/ClientApplicationInterface.xml | 18 + .../InformationRegisters/Цены.xml | 262 ++++++++++++++ .../Цены/Ext/RecordSetModule.bsl | 0 .../Цены/Forms/ФормаЗаписи.xml | 21 ++ .../Цены/Forms/ФормаЗаписи/Ext/Form.xml | 44 +++ .../Forms/ФормаЗаписи/Ext/Form/Module.bsl | 19 + .../Languages/Русский.xml | 16 + .../cfe/Configuration.xml | 72 ++++ .../cfe/InformationRegisters/Цены.xml | 46 +++ .../Цены/Forms/ФормаЗаписи.xml | 13 + .../Цены/Forms/ФормаЗаписи/Ext/Form.xml | 67 ++++ .../Forms/ФормаЗаписи/Ext/Form/Module.bsl | 0 .../cfe/Languages/Русский.xml | 13 + .../cfe/Roles/Тест_ОсновнаяРоль.xml | 10 + .../form-link-codes/Catalogs/Номенклатура.xml | 91 +++++ .../Номенклатура/Ext/ObjectModule.bsl | 0 .../form-link-codes/Catalogs/Склады.xml | 91 +++++ .../Catalogs/Склады/Ext/ObjectModule.bsl | 0 .../form-link-codes/Catalogs/Страны.xml | 91 +++++ .../Catalogs/Страны/Ext/ObjectModule.bsl | 0 .../form-link-codes/Configuration.xml | 255 ++++++++++++++ .../form-link-codes/Documents/Размещение.xml | 256 ++++++++++++++ .../Documents/Размещение/Ext/ObjectModule.bsl | 0 .../Размещение/Forms/ФормаДокумента.xml | 21 ++ .../Forms/ФормаДокумента/Ext/Form.xml | 201 +++++++++++ .../Forms/ФормаДокумента/Ext/Form/Module.bsl | 19 + .../Ext/ClientApplicationInterface.xml | 18 + .../form-link-codes/Languages/Русский.xml | 16 + .../form-link-codes/cfe/Configuration.xml | 72 ++++ .../cfe/Documents/Размещение.xml | 36 ++ .../Размещение/Forms/ФормаДокумента.xml | 13 + .../Forms/ФормаДокумента/Ext/Form.xml | 287 +++++++++++++++ .../Forms/ФормаДокумента/Ext/Form/Module.bsl | 0 .../form-link-codes/cfe/Languages/Русский.xml | 13 + .../cfe/Roles/Тест_ОсновнаяРоль.xml | 10 + 70 files changed, 4963 insertions(+), 151 deletions(-) create mode 100644 tests/skills/cases/cfe-borrow/form-link-codes-main.json create mode 100644 tests/skills/cases/cfe-borrow/form-link-codes-register.json create mode 100644 tests/skills/cases/cfe-borrow/form-link-codes.json create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Номенклатура.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Склады.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Страны.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Roles/Тест_ОсновнаяРоль.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Ext/RecordSetModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Roles/Тест_ОсновнаяРоль.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Ext/ObjectModule.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Ext/ClientApplicationInterface.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Configuration.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Languages/Русский.xml create mode 100644 tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Roles/Тест_ОсновнаяРоль.xml diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 index 87031e947..374a9991c 100644 --- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 +++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 @@ -1,4 +1,4 @@ -# cfe-borrow v1.40 — Borrow objects from configuration into extension (CFE) +# cfe-borrow v1.41 — Borrow objects from configuration into extension (CFE) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills [CmdletBinding(PositionalBinding=$false)] param( @@ -80,75 +80,173 @@ function Get-BaseFormIndented { return $firstIndent + ($parts -join '') } -# Ссылки параметров выбора (/) — привязка особого рода: путь лежит -# в и обычным стриппингом не снимается. Текстовое имя в расширении разрешается только -# если его корень объявлен в самой заимствованной формы; иначе платформа отвергает -# загрузку — «Неверный путь к полю - X». Реквизиты формы не заимствуются никогда, поэтому ссылка на -# них разрешима только через id: Конфигуратор подставляет id реквизита ИСХОДНОЙ формы (эталоны -# Issue66Example4/5/6, JR2433, JR2976, JR49904 — совпадение на шести расширениях). Именно id -# исходной, а не заимствованной: при заимствовании реквизиты перенумеровываются в 1000000+, а -# ссылка продолжает указывать в нумерацию базовой формы. -# Путь на основной реквизит («Объект.X») при заимствованном основном реквизите разрешается текстом -# и остаётся читаемым; без заимствования переводится в «/0:». -# Реквизит, которого в источнике нет, недоступен и по uuid: такую связь вырезаем целиком. -# Пути вида «Items.<Элемент>.CurrentData.<Поле>» не трогаем — их кодировка отдельная. -function Rewrite-ChoiceParameterLinks { - param([string]$xml, $attrUuids, $formAttrIds, [string]$mainAttrName, [bool]$mainAttrBorrowed) +# Связи формы — параметров выбора (/) и по типу () — +# хранят путь в , обычным стриппингом он не снимается. Путь — внутренняя ссылка +# платформы: в выгрузке она пишет имя, а если имя в контексте формы не разрешается — код. +# Текстовое имя в расширении разрешается, только если его корень объявлен в самой +# заимствованной формы; иначе платформа отвергает загрузку — «Неверный путь к полю - X». +# Конфигуратор поэтому пишет текст там, где он разрешается, и код — где нет. +# Грамматика кода (оракул «код в форму конфигурации → загрузка → выгрузка → имя», 8.3.27; эталоны +# Конфигуратора УТ и Issue66Example4-7, JR2433, JR2976, JR49904): +# первый сегмент — реквизит ИСХОДНОЙ формы (в расширении реквизиты +# перенумерованы в 1000000+, ссылка остаётся в нумерации базы); +# : — элемент-таблица исходной формы, её текущая строка; +# дальше 0: — реквизит/ТЧ/измерение/ресурс метаданных источника; +# — колонка реквизита формы; +# : — колонка AdditionalColumns; +# - — стандартный реквизит, код по виду объекта ($script:stdFieldCodes). +# В расширении платформа код обратно в имя не переводит, а висячий код грузит молча — ошибка +# кодирования не упадёт, а тихо не сработает. Поэтому кодируется только измеренное; прочее +# вырезается с предупреждением: связь — удобство подбора, без неё форма работает, с неверной +# текстовой — не грузится вовсе. +$script:linkCurrentData = '02023637-7868-4a5f-8576-835a76e0c9ba' +$script:linkAddColumn = '5bdad865-f2c5-434b-8041-ba4aad3b6687' +# Коды стандартных реквизитов — свой порядок у каждого вида (оракул 8.3.27; в XML объекта +# полного списка нет). Незамеренное (-1, скрытые поля, колонки ExtDimensionTypes) — не кодируем. +$script:stdFieldCodes = @{ + 'Catalog' = @{ Code=-2; Description=-3; Parent=-4; Owner=-5; IsFolder=-6; DeletionMark=-7; Ref=-8; DataVersion=-9; Predefined=-10; PredefinedDataName=-13 } + 'Document' = @{ Number=-2; Date=-3; DeletionMark=-4; Ref=-5; DataVersion=-6; Posted=-7; RegisterRecords=-8 } + 'ChartOfCharacteristicTypes' = @{ Ref=-2; DataVersion=-3; DeletionMark=-4; Predefined=-5; Parent=-6; IsFolder=-7; Code=-8; Description=-9; ValueType=-11; PredefinedDataName=-14 } + 'ChartOfAccounts' = @{ Ref=-2; DataVersion=-3; DeletionMark=-4; Predefined=-5; Parent=-6; Code=-7; Description=-8; Type=-10; OffBalance=-11; ExtDimensionTypes=-12; Order=-17; PredefinedDataName=-28 } + 'ChartOfCalculationTypes' = @{ Code=-2; Description=-3; ActionPeriodIsBasic=-4; DeletionMark=-5; Ref=-6; DataVersion=-7; Predefined=-8; PredefinedDataName=-11; DisplacingCalculationTypes=-20; LeadingCalculationTypes=-30 } + 'ExchangePlan' = @{ Code=-2; Description=-3; DeletionMark=-4; Ref=-6; DataVersion=-7; SentNo=-9; ReceivedNo=-10; ThisNode=-13; ExchangeDate=-14 } + 'BusinessProcess' = @{ Number=-2; Date=-3; DeletionMark=-4; Ref=-5; DataVersion=-6; Completed=-7; HeadTask=-8; Started=-9 } + 'Task' = @{ Number=-2; Date=-3; DeletionMark=-4; Ref=-5; DataVersion=-6; BusinessProcess=-7; RoutePoint=-8; Description=-9; Executed=-10 } + 'InformationRegisterRecord' = @{ Period=-2; Recorder=-3; LineNumber=-4; Active=-5 } + 'AccumulationRegisterRow' = @{ Period=-2; Recorder=-3; LineNumber=-4; Active=-5; RecordType=-9; SecondPeriod=-10; MinutePeriod=-11; HourPeriod=-12; DayPeriod=-13; WeekPeriod=-14; TenDaysPeriod=-15 } + 'TabularSectionRow' = @{ LineNumber=-2 } +} +# Тип основного реквизита → вид для таблицы стандартных кодов (запись РС — сам реквизит, +# набор записей РН — строка таблицы на нём) +$script:mainAttrKinds = @{ + 'CatalogObject'='Catalog'; 'DocumentObject'='Document'; 'ChartOfCharacteristicTypesObject'='ChartOfCharacteristicTypes' + 'ChartOfAccountsObject'='ChartOfAccounts'; 'ChartOfCalculationTypesObject'='ChartOfCalculationTypes' + 'ExchangePlanObject'='ExchangePlan'; 'BusinessProcessObject'='BusinessProcess'; 'TaskObject'='Task' + 'InformationRegisterRecordManager'='InformationRegisterRecord'; 'AccumulationRegisterRecordSet'='AccumulationRegisterRow' +} - if ($xml -notmatch '') { return $xml } +# Путь связи → текст (разрешается в расширении), код или $null (вырезать). +# $ctx: MainName, MainId, MainBorrowed, MainKind, AttrUuids (имя/«ТЧ.Реквизит» → uuid), +# FormAttrIds, FormAttrCols («Реквизит.Колонка» → id), AddCols («<путь таблицы>.Колонка» → id), +# Tables (имя элемента-таблицы → @{ Id; Path }). +function Resolve-LinkDataPath { + param([string]$path, $ctx) - $mainPat = if ($mainAttrName) { [regex]::Escape($mainAttrName) } else { $null } - $mainId = if ($mainAttrName -and $formAttrIds.ContainsKey($mainAttrName)) { $formAttrIds[$mainAttrName] } else { "1" } + # Уже код (форма-источник сама из расширения, или висячая ссылка в типовой) — как есть + if ($path -match '^-?\d') { return $path } + $main = $ctx.MainName - $xml = [regex]::Replace($xml, '(?s)\s*.*?', { + # Текущая строка элемента-таблицы + $cd = [regex]::Match($path, '^Items\.([^.]+)\.CurrentData\.([^.]+)$') + if ($cd.Success) { + $tbl = $ctx.Tables[$cd.Groups[1].Value] + $field = $cd.Groups[2].Value + if (-not $tbl) { return $null } + $tp = $tbl.Path + $prefix = "$($tbl.Id):$($script:linkCurrentData)" + if ($main -and ($tp -ceq $main -or $tp.StartsWith("$main.", [StringComparison]::Ordinal))) { + # Таблица на основном реквизите: с заимствованным — текст разрешается (эталоны 7_1, УТ) + if ($ctx.MainBorrowed) { return $path } + if ($tp -ceq $main) { + # Строки самого основного реквизита — набор записей регистра накопления + if ($ctx.MainKind -ne 'AccumulationRegisterRow') { return $null } + if ($ctx.AttrUuids.ContainsKey($field)) { return "$prefix/0:$($ctx.AttrUuids[$field])" } + $code = $script:stdFieldCodes['AccumulationRegisterRow'][$field] + if ($code) { return "$prefix/$code" } + return $null + } + $ts = $tp.Substring($main.Length + 1) + if ($ts.Contains('.')) { return $null } + if ($ctx.AttrUuids.ContainsKey("$ts.$field")) { return "$prefix/0:$($ctx.AttrUuids["$ts.$field"])" } + if ($ctx.AddCols.ContainsKey("$tp.$field")) { return "$prefix/$($ctx.AddCols["$tp.$field"]):$($script:linkAddColumn)" } + $code = $script:stdFieldCodes['TabularSectionRow'][$field] + if ($code) { return "$prefix/$code" } + return $null + } + # Таблица на реквизите формы: реквизиты формы не заимствуются никогда — только код + # (текст платформа отвергает и с заимствованным основным реквизитом, оракул 8.3.27) + if ($ctx.FormAttrIds.ContainsKey($tp) -and $ctx.FormAttrCols.ContainsKey("$tp.$field")) { + return "$prefix/$($ctx.FormAttrCols["$tp.$field"])" + } + return $null + } + + # Путь от основного реквизита формы + if ($main -and $path.StartsWith("$main.", [StringComparison]::Ordinal)) { + $rest = $path.Substring($main.Length + 1) + if ($ctx.MainBorrowed) { + # Реквизит объекта разрешается текстом и остаётся читаемым. Стандартное поле + # («Объект.Owner», «Объект.Date») — нет: платформа отвергает «Неверный путь к данным». + # Конфигуратор в этом случае оставляет ссылку на сам реквизит (эталон Issue66Example7_1). + if ($ctx.AttrUuids.ContainsKey($rest)) { return $path } + return $ctx.MainId + } + $segs = $rest.Split('.') + if ($segs.Count -eq 1) { + if ($ctx.AttrUuids.ContainsKey($rest)) { return "$($ctx.MainId)/0:$($ctx.AttrUuids[$rest])" } + $codes = if ($ctx.MainKind) { $script:stdFieldCodes[$ctx.MainKind] } else { $null } + if ($codes -and $codes.ContainsKey($rest)) { return "$($ctx.MainId)/$($codes[$rest])" } + return $null + } + if ($segs.Count -eq 2 -and $ctx.AttrUuids.ContainsKey($segs[0]) -and $ctx.AttrUuids.ContainsKey($rest)) { + return "$($ctx.MainId)/0:$($ctx.AttrUuids[$segs[0]])/0:$($ctx.AttrUuids[$rest])" + } + return $null + } + + # Путь от реквизита формы — только по id исходной формы, в обоих режимах + $segs = $path.Split('.') + if ($ctx.FormAttrIds.ContainsKey($segs[0])) { + $attrId = $ctx.FormAttrIds[$segs[0]] + if ($segs.Count -eq 1) { return $attrId } + if ($segs.Count -eq 2 -and $ctx.FormAttrCols.ContainsKey($path)) { return "$attrId/$($ctx.FormAttrCols[$path])" } + return $null + } + + # Прочее: с заимствованным основным реквизитом текст может разрешиться, без него — нет + if ($ctx.MainBorrowed) { return $path } + return $null +} + +# Путь в блока связи → разрешённый; неразрешимый блок вырезается целиком +function Rewrite-LinkBlocks { + param([string]$xml, [string]$blockPattern, $ctx) + + return [regex]::Replace($xml, $blockPattern, { param($m) $link = $m.Value $dp = [regex]::Match($link, ']*>([^<]+)') if (-not $dp.Success) { return $link } $path = $dp.Groups[1].Value - - # Путь на основной реквизит формы - if ($mainPat -and $path -match "^${mainPat}\.(.+)$") { - $attrName = $Matches[1] - if ($mainAttrBorrowed) { - # Реквизит объекта разрешается текстом и остаётся читаемым. Стандартное поле - # («Объект.Owner», «Объект.Date») — нет: платформа отвергает «Неверный путь к данным». - # Конфигуратор в этом случае оставляет ссылку на сам реквизит (эталон Issue66Example7_1). - if ($attrUuids.ContainsKey($attrName)) { return $link } - return [regex]::Replace($link, '(]*>)[^<]+()', "`${1}${mainId}`${2}") - } - if ($attrUuids.ContainsKey($attrName)) { - return [regex]::Replace($link, '(]*>)[^<]+()', "`${1}${mainId}/0:$($attrUuids[$attrName])`${2}") - } + $resolved = Resolve-LinkDataPath $path $ctx + if ($null -eq $resolved) { + $script:droppedLinks += $path return '' } - - # Односегментный путь на реквизит формы — только по id исходной формы - if ($path -notmatch '\.' -and $formAttrIds.ContainsKey($path)) { - return [regex]::Replace($link, '(]*>)[^<]+()', "`${1}$($formAttrIds[$path])`${2}") - } - - # Уже непрозрачный путь (форма-источник сама из расширения) — не трогаем - if ($path -match '^\d') { return $link } - - # С заимствованным основным реквизитом текстовый путь разрешается: элементы формы на месте, - # а их данные доступны через основной реквизит. Конфигуратор такие пути и оставляет текстом - # (эталон Issue66Example7_1: «Items.Товары.CurrentData.Характеристика» перенесён как есть). - if ($mainAttrBorrowed) { return $link } - - # Прочее текстом не разрешается: платформа отвергает загрузку «Неверный путь к полю». - # Сюда попадают «Items.<Элемент>.CurrentData.<Поле>» — их кодировка непрозрачна и по - # имеющимся эталонам не воспроизводима. Связь параметров выбора — удобство подбора, а не - # данные: без неё форма заимствуется и работает, с ней — не грузится вовсе. - $script:droppedLinks += $path - return '' + if ($resolved -ceq $path) { return $link } + return $link.Substring(0, $dp.Groups[1].Index) + $resolved + $link.Substring($dp.Groups[1].Index + $dp.Groups[1].Length) }) +} +function Rewrite-ChoiceParameterLinks { + param([string]$xml, $ctx) + + if ($xml -notmatch '') { return $xml } + $xml = Rewrite-LinkBlocks $xml '(?s)\s*.*?' $ctx # Опустевший контейнер платформе не нужен $xml = [regex]::Replace($xml, '(?s)\s*\s*', '') return $xml } +# Связь по типу — тот же путь и то же правило (эталоны УТ ВводОстатков.ФормаРасчетыМеждуОрганизациями: +# без основного реквизита — код, с ним — текст) +function Rewrite-TypeLinks { + param([string]$xml, $ctx) + + if ($xml -notmatch '') { return $xml } + return Rewrite-LinkBlocks $xml '(?s)\s*.*?' $ctx +} + # Имена ПРЯМЫХ детей собственного объекта — для дедупа при повторном # заимствовании. Текстом это не снять: regex «первый до первого » # у объекта с табличными частями обрывается на закрытии первой ТЧ, забирает имена её колонок и @@ -689,8 +787,8 @@ function Resolve-ModuleKinds { } # --- 10. Helper: read source object XML --- -# Имена реквизитов исходного объекта → uuid. Нужны для непрозрачной формы пути в ссылках -# параметров выбора (см. Rewrite-ChoiceParameterLinks). +# Имена реквизитов исходного объекта → uuid: реквизиты, ТЧ, измерения и ресурсы регистра, реквизиты +# ТЧ — ключом «ТЧ.Реквизит». Нужны для кода пути в связях формы (см. Resolve-LinkDataPath). function Get-SourceAttributeUuids { param([string]$typeName, [string]$objName) @@ -712,10 +810,18 @@ function Get-SourceAttributeUuids { if (-not $childObjects) { return $result } foreach ($child in $childObjects.ChildNodes) { if ($child.NodeType -ne 'Element') { continue } - if ($child.LocalName -notin @('Attribute','TabularSection')) { continue } + if ($child.LocalName -notin @('Attribute','TabularSection','Dimension','Resource')) { continue } $uuid = $child.GetAttribute("uuid") $nameNode = $child.SelectSingleNode("*[local-name()='Properties']/*[local-name()='Name']") - if ($uuid -and $nameNode) { $result[$nameNode.InnerText.Trim()] = $uuid } + if (-not ($uuid -and $nameNode)) { continue } + $name = $nameNode.InnerText.Trim() + $result[$name] = $uuid + if ($child.LocalName -ne 'TabularSection') { continue } + foreach ($tsAttr in @($child.SelectNodes("*[local-name()='ChildObjects']/*[local-name()='Attribute']"))) { + $tsUuid = $tsAttr.GetAttribute("uuid") + $tsName = $tsAttr.SelectSingleNode("*[local-name()='Properties']/*[local-name()='Name']") + if ($tsUuid -and $tsName) { $result["$name.$($tsName.InnerText.Trim())"] = $tsUuid } + } } return $result } @@ -955,12 +1061,10 @@ function Borrow-Form { Warn " У формы нет основного реквизита — -BorrowMainAttribute проигнорирован" } - # uuid реквизитов объекта нужны ровно там, где основной реквизит НЕ попал в форму: - # только тогда путь «<основной>.X» переводится в непрозрачный вид - # Имена реквизитов объекта нужны в обоих режимах: без заимствования — чтобы построить - # непрозрачный путь, с заимствованием — чтобы отличить реквизит (разрешается текстом) от - # стандартного поля (не разрешается) + # Имена реквизитов объекта нужны в обоих режимах: без заимствования — для кода пути в связях + # формы, с заимствованием — чтобы отличить реквизит (разрешается текстом) от стандартного поля $srcAttrUuids = Get-SourceAttributeUuids $typeName $objName + $linkCtx = Get-LinkContext $srcFormEl $srcMainAttrName ([bool]$mainAttrInfo) $srcAttrUuids $formAttrIds # AutoCommandBar: keep ChildItems (buttons with CommandName→0), Autofill→false $autoCmdXml = "" @@ -975,7 +1079,7 @@ function Borrow-Form { $autoCmdXml = [regex]::Replace($autoCmdXml, '\s*', '') # Strip data-binding tags whose root attribute isn't borrowed $autoCmdXml = Strip-FormBindings $autoCmdXml $mainAttrName - $autoCmdXml = Rewrite-ChoiceParameterLinks $autoCmdXml $srcAttrUuids $formAttrIds $srcMainAttrName ([bool]$mainAttrInfo) + $autoCmdXml = Rewrite-ChoiceParameterLinks $autoCmdXml $linkCtx } # Картинка декорации в заимствованную форму не переносится: Конфигуратор выбрасывает @@ -1002,12 +1106,11 @@ function Borrow-Form { # Strip data-binding tags whose root attribute isn't borrowed # (DataPath/TitleDataPath/FooterDataPath/HeaderDataPath/MultipleValue*/RowPicture*) $childItemsXml = Strip-FormBindings $childItemsXml $mainAttrName - $childItemsXml = Rewrite-ChoiceParameterLinks $childItemsXml $srcAttrUuids $formAttrIds $srcMainAttrName ([bool]$mainAttrInfo) + $childItemsXml = Rewrite-ChoiceParameterLinks $childItemsXml $linkCtx # Вложенные CommandSet (у таблиц, полей табличного документа и т.п.) — целиком, см. выше $childItemsXml = [regex]::Replace($childItemsXml, '(?s)\s*.*?', '') $childItemsXml = [regex]::Replace($childItemsXml, '\s*', '') - # Strip TypeLink blocks with human-readable DataPath (Items.XXX — can't convert to UUID) - $childItemsXml = [regex]::Replace($childItemsXml, '(?s)\s*\s*Items\.[^<]*.*?', '') + $childItemsXml = Rewrite-TypeLinks $childItemsXml $linkCtx # Strip element-level Events (base form handlers not in extension) $childItemsXml = [regex]::Replace($childItemsXml, '(?s)\s*.*?', '') @@ -1277,7 +1380,7 @@ function Borrow-Form { Info " Created: $formXmlFile" if ($script:droppedLinks.Count -gt 0) { $uniq = @($script:droppedLinks | Sort-Object -Unique) - Warn " Вырезано связей параметров выбора: $($uniq.Count) — путь не разрешается в расширении: $($uniq -join ', ')" + Warn " Вырезано связей формы: $($uniq.Count) — путь не разрешается в расширении: $($uniq -join ', ')" $script:droppedLinks = @() } @@ -1572,6 +1675,54 @@ function Get-FormAttributeIds { return $result } +# Контекст разрешения путей в связях формы (см. Resolve-LinkDataPath) — всё по ИСХОДНОЙ форме: +# колонки реквизитов формы, колонки AdditionalColumns, элементы-таблицы и вид основного реквизита. +function Get-LinkContext { + param($formEl, [string]$mainName, [bool]$mainBorrowed, $attrUuids, $formAttrIds) + + $cols = @{}; $addCols = @{}; $tables = @{}; $kind = $null + $attrs = $formEl.SelectSingleNode("*[local-name()='Attributes']") + if ($attrs) { + foreach ($a in $attrs.ChildNodes) { + if ($a.NodeType -ne 'Element' -or $a.LocalName -ne 'Attribute') { continue } + $nm = $a.GetAttribute("name") + $columns = $a.SelectSingleNode("*[local-name()='Columns']") + if ($columns) { + foreach ($c in $columns.ChildNodes) { + if ($c.NodeType -ne 'Element') { continue } + if ($c.LocalName -eq 'Column') { + $cols["$nm.$($c.GetAttribute('name'))"] = $c.GetAttribute('id') + } elseif ($c.LocalName -eq 'AdditionalColumns') { + $tblPath = $c.GetAttribute('table') + foreach ($ac in @($c.SelectNodes("*[local-name()='Column']"))) { + $addCols["$tblPath.$($ac.GetAttribute('name'))"] = $ac.GetAttribute('id') + } + } + } + } + if ($mainName -and $nm -ceq $mainName) { + $typeNode = $a.SelectSingleNode("*[local-name()='Type']/*[local-name()='Type']") + if ($typeNode) { + $tm = [regex]::Match($typeNode.InnerText.Trim(), '^(?:\w+:)?(\w+)\.') + if ($tm.Success -and $script:mainAttrKinds.ContainsKey($tm.Groups[1].Value)) { $kind = $script:mainAttrKinds[$tm.Groups[1].Value] } + } + } + } + } + $items = $formEl.SelectSingleNode("*[local-name()='ChildItems']") + if ($items) { + foreach ($t in @($items.SelectNodes(".//*[local-name()='Table']"))) { + $dp = $t.SelectSingleNode("*[local-name()='DataPath']") + if ($dp) { $tables[$t.GetAttribute('name')] = @{ Id = $t.GetAttribute('id'); Path = $dp.InnerText.Trim() } } + } + } + $mainId = if ($mainName -and $formAttrIds.ContainsKey($mainName)) { $formAttrIds[$mainName] } else { "1" } + return @{ + MainName = $mainName; MainId = $mainId; MainBorrowed = $mainBorrowed; MainKind = $kind + AttrUuids = $attrUuids; FormAttrIds = $formAttrIds; FormAttrCols = $cols; AddCols = $addCols; Tables = $tables + } +} + function Get-MainAttributeInfo { param($formEl, [string]$nsStripPattern) @@ -1861,7 +2012,8 @@ function Build-AdoptedTabularSectionXml { function Collect-ReferenceTypes { param([string[]]$typeXmls) - $result = @{} + # Порядок первого упоминания: от него зависит порядок заимствования в ChildObjects + $result = [ordered]@{} foreach ($typeXml in $typeXmls) { # cfg:CatalogRef.XXX, cfg:EnumRef.XXX, cfg:DocumentRef.XXX, etc. $refMatches = [regex]::Matches($typeXml, 'cfg:(\w+)Ref\.(\w+)') @@ -1869,7 +2021,7 @@ function Collect-ReferenceTypes { $refPrefix = $m.Groups[1].Value # e.g. "Catalog", "Enum", "Document" $objName = $m.Groups[2].Value $key = "${refPrefix}.${objName}" - if (-not $result.ContainsKey($key)) { + if (-not $result.Contains($key)) { $result[$key] = @{ TypeName = $refPrefix; ObjName = $objName } } } @@ -1878,7 +2030,7 @@ function Collect-ReferenceTypes { foreach ($m in $dtMatches) { $dtName = $m.Groups[1].Value $key = "DefinedType.${dtName}" - if (-not $result.ContainsKey($key)) { + if (-not $result.Contains($key)) { $result[$key] = @{ TypeName = "DefinedType"; ObjName = $dtName } } } diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py index 230b74700..4b16c5570 100644 --- a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py +++ b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# cfe-borrow v1.40 — Borrow objects from configuration into extension (CFE) +# cfe-borrow v1.41 — Borrow objects from configuration into extension (CFE) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse @@ -99,78 +99,173 @@ def indent_for_base_form(xml, first_indent): DROPPED_LINKS = [] +# Связи формы — параметров выбора (/) и по типу () — +# хранят путь в , обычным стриппингом он не снимается. Путь — внутренняя ссылка +# платформы: в выгрузке она пишет имя, а если имя в контексте формы не разрешается — код. +# Текстовое имя в расширении разрешается, только если его корень объявлен в самой +# заимствованной формы; иначе платформа отвергает загрузку — «Неверный путь к полю - X». +# Конфигуратор поэтому пишет текст там, где он разрешается, и код — где нет. +# Грамматика кода (оракул «код в форму конфигурации → загрузка → выгрузка → имя», 8.3.27; эталоны +# Конфигуратора УТ и Issue66Example4-7, JR2433, JR2976, JR49904): +# первый сегмент — реквизит ИСХОДНОЙ формы (в расширении реквизиты +# перенумерованы в 1000000+, ссылка остаётся в нумерации базы); +# : — элемент-таблица исходной формы, её текущая строка; +# дальше 0: — реквизит/ТЧ/измерение/ресурс метаданных источника; +# — колонка реквизита формы; +# : — колонка AdditionalColumns; +# - — стандартный реквизит, код по виду объекта (STD_FIELD_CODES). +# В расширении платформа код обратно в имя не переводит, а висячий код грузит молча — ошибка +# кодирования не упадёт, а тихо не сработает. Поэтому кодируется только измеренное; прочее +# вырезается с предупреждением: связь — удобство подбора, без неё форма работает, с неверной +# текстовой — не грузится вовсе. +LINK_CURRENT_DATA = '02023637-7868-4a5f-8576-835a76e0c9ba' +LINK_ADD_COLUMN = '5bdad865-f2c5-434b-8041-ba4aad3b6687' +# Коды стандартных реквизитов — свой порядок у каждого вида (оракул 8.3.27; в XML объекта +# полного списка нет). Незамеренное (-1, скрытые поля, колонки ExtDimensionTypes) — не кодируем. +STD_FIELD_CODES = { + 'Catalog': {'Code': -2, 'Description': -3, 'Parent': -4, 'Owner': -5, 'IsFolder': -6, 'DeletionMark': -7, 'Ref': -8, 'DataVersion': -9, 'Predefined': -10, 'PredefinedDataName': -13}, + 'Document': {'Number': -2, 'Date': -3, 'DeletionMark': -4, 'Ref': -5, 'DataVersion': -6, 'Posted': -7, 'RegisterRecords': -8}, + 'ChartOfCharacteristicTypes': {'Ref': -2, 'DataVersion': -3, 'DeletionMark': -4, 'Predefined': -5, 'Parent': -6, 'IsFolder': -7, 'Code': -8, 'Description': -9, 'ValueType': -11, 'PredefinedDataName': -14}, + 'ChartOfAccounts': {'Ref': -2, 'DataVersion': -3, 'DeletionMark': -4, 'Predefined': -5, 'Parent': -6, 'Code': -7, 'Description': -8, 'Type': -10, 'OffBalance': -11, 'ExtDimensionTypes': -12, 'Order': -17, 'PredefinedDataName': -28}, + 'ChartOfCalculationTypes': {'Code': -2, 'Description': -3, 'ActionPeriodIsBasic': -4, 'DeletionMark': -5, 'Ref': -6, 'DataVersion': -7, 'Predefined': -8, 'PredefinedDataName': -11, 'DisplacingCalculationTypes': -20, 'LeadingCalculationTypes': -30}, + 'ExchangePlan': {'Code': -2, 'Description': -3, 'DeletionMark': -4, 'Ref': -6, 'DataVersion': -7, 'SentNo': -9, 'ReceivedNo': -10, 'ThisNode': -13, 'ExchangeDate': -14}, + 'BusinessProcess': {'Number': -2, 'Date': -3, 'DeletionMark': -4, 'Ref': -5, 'DataVersion': -6, 'Completed': -7, 'HeadTask': -8, 'Started': -9}, + 'Task': {'Number': -2, 'Date': -3, 'DeletionMark': -4, 'Ref': -5, 'DataVersion': -6, 'BusinessProcess': -7, 'RoutePoint': -8, 'Description': -9, 'Executed': -10}, + 'InformationRegisterRecord': {'Period': -2, 'Recorder': -3, 'LineNumber': -4, 'Active': -5}, + 'AccumulationRegisterRow': {'Period': -2, 'Recorder': -3, 'LineNumber': -4, 'Active': -5, 'RecordType': -9, 'SecondPeriod': -10, 'MinutePeriod': -11, 'HourPeriod': -12, 'DayPeriod': -13, 'WeekPeriod': -14, 'TenDaysPeriod': -15}, + 'TabularSectionRow': {'LineNumber': -2}, +} +# Тип основного реквизита → вид для таблицы стандартных кодов (запись РС — сам реквизит, +# набор записей РН — строка таблицы на нём) +MAIN_ATTR_KINDS = { + 'CatalogObject': 'Catalog', 'DocumentObject': 'Document', 'ChartOfCharacteristicTypesObject': 'ChartOfCharacteristicTypes', + 'ChartOfAccountsObject': 'ChartOfAccounts', 'ChartOfCalculationTypesObject': 'ChartOfCalculationTypes', + 'ExchangePlanObject': 'ExchangePlan', 'BusinessProcessObject': 'BusinessProcess', 'TaskObject': 'Task', + 'InformationRegisterRecordManager': 'InformationRegisterRecord', 'AccumulationRegisterRecordSet': 'AccumulationRegisterRow', +} -def rewrite_choice_parameter_links(xml, attr_uuids, form_attr_ids, main_attr_name, main_attr_borrowed): - """Ссылки параметров выбора (/) — привязка особого рода: путь лежит - в и обычным стриппингом не снимается. Текстовое имя в расширении разрешается только - если его корень объявлен в самой заимствованной формы; иначе платформа отвергает - загрузку — «Неверный путь к полю - X». Реквизиты формы не заимствуются никогда, поэтому ссылка на - них разрешима только через id: Конфигуратор подставляет id реквизита ИСХОДНОЙ формы (эталоны - Issue66Example4/5/6, JR2433, JR2976, JR49904 — совпадение на шести расширениях). Именно id - исходной, а не заимствованной: при заимствовании реквизиты перенумеровываются в 1000000+, а - ссылка продолжает указывать в нумерацию базовой формы. - Путь на основной реквизит («Объект.X») при заимствованном основном реквизите разрешается текстом - и остаётся читаемым; без заимствования переводится в «/0:». - Реквизит, которого в источнике нет, недоступен и по uuid: такую связь вырезаем целиком.""" - if '' not in xml: - return xml - main_pat = re.escape(main_attr_name) if main_attr_name else None - main_id = form_attr_ids.get(main_attr_name, "1") if main_attr_name else "1" +def resolve_link_data_path(path, ctx): + """Путь связи → текст (разрешается в расширении), код или None (вырезать). + ctx: MainName, MainId, MainBorrowed, MainKind, AttrUuids (имя/«ТЧ.Реквизит» → uuid), + FormAttrIds, FormAttrCols («Реквизит.Колонка» → id), AddCols («<путь таблицы>.Колонка» → id), + Tables (имя элемента-таблицы → {Id, Path}).""" + # Уже код (форма-источник сама из расширения, или висячая ссылка в типовой) — как есть + if re.match(r'^-?\d', path): + return path + main = ctx['MainName'] + attr_uuids = ctx['AttrUuids'] + # Текущая строка элемента-таблицы + cd = re.match(r'^Items\.([^.]+)\.CurrentData\.([^.]+)$', path) + if cd: + tbl = ctx['Tables'].get(cd.group(1)) + field = cd.group(2) + if not tbl: + return None + tp = tbl['Path'] + prefix = f"{tbl['Id']}:{LINK_CURRENT_DATA}" + if main and (tp == main or tp.startswith(main + '.')): + # Таблица на основном реквизите: с заимствованным — текст разрешается (эталоны 7_1, УТ) + if ctx['MainBorrowed']: + return path + if tp == main: + # Строки самого основного реквизита — набор записей регистра накопления + if ctx['MainKind'] != 'AccumulationRegisterRow': + return None + if field in attr_uuids: + return f"{prefix}/0:{attr_uuids[field]}" + code = STD_FIELD_CODES['AccumulationRegisterRow'].get(field) + return f"{prefix}/{code}" if code else None + ts = tp[len(main) + 1:] + if '.' in ts: + return None + if f"{ts}.{field}" in attr_uuids: + return f"{prefix}/0:{attr_uuids[ts + '.' + field]}" + if f"{tp}.{field}" in ctx['AddCols']: + return f"{prefix}/{ctx['AddCols'][tp + '.' + field]}:{LINK_ADD_COLUMN}" + code = STD_FIELD_CODES['TabularSectionRow'].get(field) + return f"{prefix}/{code}" if code else None + # Таблица на реквизите формы: реквизиты формы не заимствуются никогда — только код + # (текст платформа отвергает и с заимствованным основным реквизитом, оракул 8.3.27) + if tp in ctx['FormAttrIds'] and f"{tp}.{field}" in ctx['FormAttrCols']: + return f"{prefix}/{ctx['FormAttrCols'][tp + '.' + field]}" + return None + + # Путь от основного реквизита формы + if main and path.startswith(main + '.'): + rest = path[len(main) + 1:] + if ctx['MainBorrowed']: + # Реквизит объекта разрешается текстом и остаётся читаемым. Стандартное поле + # («Объект.Owner», «Объект.Date») — нет: платформа отвергает «Неверный путь к данным». + # Конфигуратор в этом случае оставляет ссылку на сам реквизит (эталон Issue66Example7_1). + if rest in attr_uuids: + return path + return ctx['MainId'] + segs = rest.split('.') + if len(segs) == 1: + if rest in attr_uuids: + return f"{ctx['MainId']}/0:{attr_uuids[rest]}" + codes = STD_FIELD_CODES.get(ctx['MainKind']) if ctx['MainKind'] else None + if codes and rest in codes: + return f"{ctx['MainId']}/{codes[rest]}" + return None + if len(segs) == 2 and segs[0] in attr_uuids and rest in attr_uuids: + return f"{ctx['MainId']}/0:{attr_uuids[segs[0]]}/0:{attr_uuids[rest]}" + return None + + # Путь от реквизита формы — только по id исходной формы, в обоих режимах + segs = path.split('.') + if segs[0] in ctx['FormAttrIds']: + attr_id = ctx['FormAttrIds'][segs[0]] + if len(segs) == 1: + return attr_id + if len(segs) == 2 and path in ctx['FormAttrCols']: + return f"{attr_id}/{ctx['FormAttrCols'][path]}" + return None + + # Прочее: с заимствованным основным реквизитом текст может разрешиться, без него — нет + if ctx['MainBorrowed']: + return path + return None + + +def rewrite_link_blocks(xml, block_pattern, ctx): + """Путь в блока связи → разрешённый; неразрешимый блок вырезается целиком.""" def repl(m): link = m.group(0) dp = re.search(r']*>([^<]+)', link) if not dp: return link path = dp.group(1) - - # Путь на основной реквизит формы - if main_pat: - mm = re.match('^' + main_pat + r'\.(.+)$', path) - if mm: - attr_name = mm.group(1) - if main_attr_borrowed: - # Реквизит объекта разрешается текстом и остаётся читаемым. Стандартное поле - # («Объект.Owner», «Объект.Date») — нет: платформа отвергает «Неверный путь к данным». - # Конфигуратор в этом случае оставляет ссылку на сам реквизит (эталон Issue66Example7_1). - if attr_name in attr_uuids: - return link - return re.sub(r'(]*>)[^<]+()', - lambda x: f"{x.group(1)}{main_id}{x.group(2)}", link) - if attr_name in attr_uuids: - return re.sub(r'(]*>)[^<]+()', - lambda x: f"{x.group(1)}{main_id}/0:{attr_uuids[attr_name]}{x.group(2)}", link) - return '' - - # Односегментный путь на реквизит формы — только по id исходной формы - if '.' not in path and path in form_attr_ids: - return re.sub(r'(]*>)[^<]+()', - lambda x: f"{x.group(1)}{form_attr_ids[path]}{x.group(2)}", link) - - # Уже непрозрачный путь (форма-источник сама из расширения) — не трогаем - if re.match(r'^\d', path): + resolved = resolve_link_data_path(path, ctx) + if resolved is None: + DROPPED_LINKS.append(path) + return '' + if resolved == path: return link + return link[:dp.start(1)] + resolved + link[dp.end(1):] - # С заимствованным основным реквизитом текстовый путь разрешается: элементы формы на месте, - # а их данные доступны через основной реквизит. Конфигуратор такие пути и оставляет текстом - # (эталон Issue66Example7_1: «Items.Товары.CurrentData.Характеристика» перенесён как есть). - if main_attr_borrowed: - return link + return re.sub(block_pattern, repl, xml, flags=re.DOTALL) - # Прочее текстом не разрешается: платформа отвергает загрузку «Неверный путь к полю». - # Сюда попадают «Items.<Элемент>.CurrentData.<Поле>» — их кодировка непрозрачна и по - # имеющимся эталонам не воспроизводима. Связь параметров выбора — удобство подбора, а не - # данные: без неё форма заимствуется и работает, с ней — не грузится вовсе. - DROPPED_LINKS.append(path) - return '' - xml = re.sub(r'\s*.*?', repl, xml, flags=re.DOTALL) +def rewrite_choice_parameter_links(xml, ctx): + if '' not in xml: + return xml + xml = rewrite_link_blocks(xml, r'\s*.*?', ctx) # Опустевший контейнер платформе не нужен xml = re.sub(r'\s*\s*', '', xml, flags=re.DOTALL) return xml +def rewrite_type_links(xml, ctx): + """Связь по типу — тот же путь и то же правило (эталоны УТ ВводОстатков.ФормаРасчетыМеждуОрганизациями: + без основного реквизита — код, с ним — текст).""" + if '' not in xml: + return xml + return rewrite_link_blocks(xml, r'\s*.*?', ctx) + + def get_own_child_object_names(obj_file): """Имена ПРЯМЫХ детей собственного объекта — для дедупа при повторном заимствовании. Текстом это не снять: regex «первый до первого » @@ -931,8 +1026,8 @@ def main(): # --- Helper functions --- def get_source_attribute_uuids(type_name, obj_name): - """Имена реквизитов исходного объекта → uuid. Нужны для непрозрачной формы пути в ссылках - параметров выбора (см. rewrite_choice_parameter_links).""" + """Имена реквизитов исходного объекта → uuid: реквизиты, ТЧ, измерения и ресурсы регистра, + реквизиты ТЧ — ключом «ТЧ.Реквизит». Нужны для кода пути в связях формы (см. resolve_link_data_path).""" result = {} dir_name = CHILD_TYPE_DIR_MAP.get(type_name) if not dir_name: @@ -953,22 +1048,37 @@ def main(): if not isinstance(child.tag, str) or localname(child) != "ChildObjects": continue for sub in child: - if not isinstance(sub.tag, str) or localname(sub) not in ("Attribute", "TabularSection"): + if not isinstance(sub.tag, str) or localname(sub) not in ("Attribute", "TabularSection", "Dimension", "Resource"): continue uuid_val = sub.get("uuid") - name_val = None - for props in sub: - if isinstance(props.tag, str) and localname(props) == "Properties": - for prop in props: - if isinstance(prop.tag, str) and localname(prop) == "Name": - name_val = (prop.text or "").strip() - break - break - if uuid_val and name_val: - result[name_val] = uuid_val + name_val = md_name(sub) + if not (uuid_val and name_val): + continue + result[name_val] = uuid_val + if localname(sub) != "TabularSection": + continue + for ts_children in sub: + if not isinstance(ts_children.tag, str) or localname(ts_children) != "ChildObjects": + continue + for ts_attr in ts_children: + if not isinstance(ts_attr.tag, str) or localname(ts_attr) != "Attribute": + continue + ts_uuid, ts_name = ts_attr.get("uuid"), md_name(ts_attr) + if ts_uuid and ts_name: + result[f"{name_val}.{ts_name}"] = ts_uuid break return result + def md_name(el): + """/ объекта метаданных.""" + for props in el: + if isinstance(props.tag, str) and localname(props) == "Properties": + for prop in props: + if isinstance(prop.tag, str) and localname(prop) == "Name": + return (prop.text or "").strip() + break + return None + def read_source_object(type_name, obj_name): dir_name = CHILD_TYPE_DIR_MAP.get(type_name) if not dir_name: @@ -1260,6 +1370,53 @@ def main(): break return result + def get_link_context(form_el, main_name, main_borrowed, attr_uuids, form_attr_ids): + """Контекст разрешения путей в связях формы (см. resolve_link_data_path) — всё по ИСХОДНОЙ + форме: колонки реквизитов формы, колонки AdditionalColumns, элементы-таблицы и вид основного + реквизита.""" + cols, add_cols, tables, kind = {}, {}, {}, None + for child in form_el: + if not isinstance(child.tag, str): + continue + if localname(child) == "Attributes": + for a in child: + if not isinstance(a.tag, str) or localname(a) != "Attribute": + continue + nm = a.get("name") + for sub in a: + if not isinstance(sub.tag, str): + continue + if localname(sub) == "Columns": + for c in sub: + if not isinstance(c.tag, str): + continue + if localname(c) == "Column": + cols[f"{nm}.{c.get('name')}"] = c.get("id") + elif localname(c) == "AdditionalColumns": + tbl_path = c.get("table") + for ac in c: + if isinstance(ac.tag, str) and localname(ac) == "Column": + add_cols[f"{tbl_path}.{ac.get('name')}"] = ac.get("id") + elif localname(sub) == "Type" and main_name and nm == main_name and kind is None: + for tn in sub: + if isinstance(tn.tag, str) and localname(tn) == "Type": + tm = re.match(r'^(?:\w+:)?(\w+)\.', (tn.text or "").strip()) + if tm and tm.group(1) in MAIN_ATTR_KINDS: + kind = MAIN_ATTR_KINDS[tm.group(1)] + break + elif localname(child) == "ChildItems": + for tbl in child.iter(): + if not isinstance(tbl.tag, str) or localname(tbl) != "Table": + continue + for dp in tbl: + if isinstance(dp.tag, str) and localname(dp) == "DataPath": + tables[tbl.get("name")] = {"Id": tbl.get("id"), "Path": (dp.text or "").strip()} + break + main_id = form_attr_ids.get(main_name, "1") if main_name else "1" + return {"MainName": main_name, "MainId": main_id, "MainBorrowed": main_borrowed, "MainKind": kind, + "AttrUuids": attr_uuids, "FormAttrIds": form_attr_ids, "FormAttrCols": cols, + "AddCols": add_cols, "Tables": tables} + def get_main_attribute_info(form_el, ns_strip_pattern): main_attr = None for child in form_el: @@ -1920,10 +2077,11 @@ def main(): # Основной реквизит исходной формы: его имя — корень путей к данным, которые нужно сохранить # («Объект.» у формы объекта, «Список.» у формы списка, «Запись.» у формы записи регистра) main_attr_info = src_main_info if borrow_main_attr else None - # Имена реквизитов объекта нужны в обоих режимах: без заимствования — чтобы построить - # непрозрачный путь, с заимствованием — чтобы отличить реквизит (разрешается текстом) от - # стандартного поля (не разрешается) + # Имена реквизитов объекта нужны в обоих режимах: без заимствования — для кода пути в связях + # формы, с заимствованием — чтобы отличить реквизит (разрешается текстом) от стандартного поля src_attr_uuids = get_source_attribute_uuids(type_name, obj_name) + link_ctx = get_link_context(src_form_el, src_main_attr_name, main_attr_info is not None, + src_attr_uuids, form_attr_ids) main_attr_name = main_attr_info["Name"] if main_attr_info else "" if borrow_main_attr and main_attr_info is None: warn(" У формы нет основного реквизита — -BorrowMainAttribute проигнорирован") @@ -1941,8 +2099,7 @@ def main(): auto_cmd_xml = re.sub(r'\s*', '', auto_cmd_xml) # Strip data-binding tags whose root attribute isn't borrowed auto_cmd_xml = strip_form_bindings(auto_cmd_xml, main_attr_name) - auto_cmd_xml = rewrite_choice_parameter_links( - auto_cmd_xml, src_attr_uuids, form_attr_ids, src_main_attr_name, main_attr_info is not None) + auto_cmd_xml = rewrite_choice_parameter_links(auto_cmd_xml, link_ctx) # ChildItems: copy full tree, clean up base-config references child_items_xml = "" @@ -1975,13 +2132,11 @@ def main(): child_items_xml = re.sub(r'[^<]*', '0', child_items_xml) # Strip data-binding tags whose root attribute isn't borrowed child_items_xml = strip_form_bindings(child_items_xml, main_attr_name) - child_items_xml = rewrite_choice_parameter_links( - child_items_xml, src_attr_uuids, form_attr_ids, src_main_attr_name, main_attr_info is not None) + child_items_xml = rewrite_choice_parameter_links(child_items_xml, link_ctx) # Вложенные CommandSet (у таблиц, полей табличного документа и т.п.) — целиком, см. выше child_items_xml = re.sub(r'(?s)\s*.*?', '', child_items_xml) child_items_xml = re.sub(r'\s*', '', child_items_xml) - # Strip TypeLink blocks with human-readable DataPath (Items.XXX) - child_items_xml = re.sub(r'\s*\s*Items\.[^<]*.*?', '', child_items_xml, flags=re.DOTALL) + child_items_xml = rewrite_type_links(child_items_xml, link_ctx) # Strip element-level Events child_items_xml = re.sub(r'\s*.*?', '', child_items_xml, flags=re.DOTALL) @@ -2199,7 +2354,7 @@ def main(): info(f" Created: {form_xml_file}") if DROPPED_LINKS: uniq = sorted(set(DROPPED_LINKS)) - warn(f" Вырезано связей параметров выбора: {len(uniq)} — путь не разрешается в расширении: {', '.join(uniq)}") + warn(f" Вырезано связей формы: {len(uniq)} — путь не разрешается в расширении: {', '.join(uniq)}") DROPPED_LINKS.clear() # 6. Create empty Module.bsl — but NEVER overwrite an existing one (re-borrow must diff --git a/docs/1c-extension-spec.md b/docs/1c-extension-spec.md index e76756663..d1b4cd097 100644 --- a/docs/1c-extension-spec.md +++ b/docs/1c-extension-spec.md @@ -477,7 +477,33 @@ Form.xml заимствованной формы — **двухчастный ф 6. **TitleDataPath** — аналогично DataPath: удаляются без основного реквизита, `Объект.*` сохраняются с ним. -7. **TypeLink: удаление** (вариант B) — блоки `` с `Items.*` удаляются (человекочитаемые пути, которые нельзя преобразовать в UUID-формат Конфигуратора). +7. **Связи формы: текст или код** — путь в `` связи параметров выбора (`/`) и связи по типу (``) — внутренняя ссылка платформы. В выгрузке она пишет имя, а если имя в контексте формы не разрешается, пишет код. Текст в расширении разрешается, только если его корень объявлен в `` заимствованной формы; иначе загрузка отвергается: «Неверный путь к полю». Конфигуратор поэтому пишет текст, где он разрешается, и код, где нет (эталоны УТ 8.3.27): + + | Путь | Основной реквизит заимствован | Не заимствован | + |---|---|---| + | `<РеквизитФормы>`, `<РеквизитФормы>.<Колонка>` | код `N`, `N/<колонка>` | то же | + | `Объект.<реквизит/ТЧ/измерение/ресурс>`, `Объект.<ТЧ>.<реквизит>` | текст | `N/0:`, `N/0:/0:` | + | `Объект.<стандартный>` | `N` (ссылка на сам реквизит) | `N/-k` | + | `Items.<Т>.CurrentData.<Поле>`, `Т` на `Объект.<ТЧ>` | текст | `:CD/0:` · `:CD/:AC` · `:CD/-2` | + | `Items.<Т>.CurrentData.<Колонка>`, `Т` на реквизите формы | `:CD/` | то же | + + Здесь `N` и `` — id реквизита и элемента **исходной** формы (в расширении реквизиты перенумерованы в 1000000+, ссылка остаётся в нумерации базы); `` — uuid метаданных источника; `CD` = `02023637-7868-4a5f-8576-835a76e0c9ba` (текущая строка таблицы), `AC` = `5bdad865-f2c5-434b-8041-ba4aad3b6687` (колонка `AdditionalColumns`, `` — её id). Коды `-k` стандартных реквизитов у каждого вида свои (оракул 8.3.27): + + | Вид | Коды | + |---|---| + | Справочник | −2 Code, −3 Description, −4 Parent, −5 Owner, −6 IsFolder, −7 DeletionMark, −8 Ref, −9 DataVersion, −10 Predefined, −13 PredefinedDataName | + | Документ | −2 Number, −3 Date, −4 DeletionMark, −5 Ref, −6 DataVersion, −7 Posted, −8 RegisterRecords | + | ПВХ | −2 Ref, −3 DataVersion, −4 DeletionMark, −5 Predefined, −6 Parent, −7 IsFolder, −8 Code, −9 Description, −11 ValueType, −14 PredefinedDataName | + | План счетов | −2 Ref, −3 DataVersion, −4 DeletionMark, −5 Predefined, −6 Parent, −7 Code, −8 Description, −10 Type, −11 OffBalance, −12 ExtDimensionTypes, −17 Order, −28 PredefinedDataName | + | ПВР | −2 Code, −3 Description, −4 ActionPeriodIsBasic, −5 DeletionMark, −6 Ref, −7 DataVersion, −8 Predefined, −11 PredefinedDataName, −20 DisplacingCalculationTypes, −30 LeadingCalculationTypes | + | План обмена | −2 Code, −3 Description, −4 DeletionMark, −6 Ref, −7 DataVersion, −9 SentNo, −10 ReceivedNo, −13 ThisNode, −14 ExchangeDate | + | Бизнес-процесс | −2 Number, −3 Date, −4 DeletionMark, −5 Ref, −6 DataVersion, −7 Completed, −8 HeadTask, −9 Started | + | Задача | −2 Number, −3 Date, −4 DeletionMark, −5 Ref, −6 DataVersion, −7 BusinessProcess, −8 RoutePoint, −9 Description, −10 Executed | + | Запись регистра сведений | −2 Period, −3 Recorder, −4 LineNumber, −5 Active | + | Строка набора записей регистра накопления (`:CD/-k`) | −2 Period, −3 Recorder, −4 LineNumber, −5 Active, −9 RecordType, −10…−15 SecondPeriod…TenDaysPeriod | + | Строка ТЧ | −2 LineNumber | + + В расширении платформа код обратно в имя не переводит, а висячий код грузит молча. Поэтому кодируется только измеренное; прочее (поля ссылочных реквизитов, динамический список, стандартные колонки строки `ExtDimensionTypes`) вырезается вместе со связью — с предупреждением. Уже закодированный путь переносится как есть. 8. **Events элементов: удаление** (вариант B) — все `` внутри визуальных элементов удаляются в обеих секциях. Обработчики расширения добавляются через `elementEvents` в Part 1 с `callType`. diff --git a/tests/skills/cases/cfe-borrow/form-choice-link-items.json b/tests/skills/cases/cfe-borrow/form-choice-link-items.json index fda1aaa11..cc79e8ea0 100644 --- a/tests/skills/cases/cfe-borrow/form-choice-link-items.json +++ b/tests/skills/cases/cfe-borrow/form-choice-link-items.json @@ -1,5 +1,5 @@ { - "name": "Связь параметров выбора на Items.*.CurrentData вырезается: её кодировка невоспроизводима", + "name": "Связь параметров выбора на Items.*.CurrentData без основного реквизита кодируется: id таблицы, CurrentData, uuid реквизита ТЧ", "preRun": [ { "script": "meta-compile/scripts/meta-compile", @@ -57,9 +57,13 @@ ], "params": { "extensionPath": "cfe", "object": "Document.Размещение.Form.ФормаДокумента" }, "expect": { + "fileContains": { + "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "text": ":02023637-7868-4a5f-8576-835a76e0c9ba/0:" + }, "fileNotContains": { "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", - "text": ["", "Items.Строки.CurrentData.Склад"] + "text": "Items.Строки.CurrentData.Склад" } } } diff --git a/tests/skills/cases/cfe-borrow/form-link-codes-main.json b/tests/skills/cases/cfe-borrow/form-link-codes-main.json new file mode 100644 index 000000000..63154aec2 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/form-link-codes-main.json @@ -0,0 +1,115 @@ +{ + "name": "Связи формы с основным реквизитом: пути от него — текстом, от реквизитов формы — кодом (текст платформа отвергает)", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Склады" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Номенклатура" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Страны" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Document", + "name": "Размещение", + "attributes": [ + "Склад: CatalogRef.Склады" + ], + "tabularSections": { + "Товары": [ + "Номенклатура: CatalogRef.Номенклатура", + "Количество: Number(15,3)" + ] + } + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "form-add/scripts/form-add", + "args": { + "-ObjectPath": "{workDir}/Documents/Размещение.xml", + "-FormName": "ФормаДокумента" + } + }, + { + "writeFile": { + "path": "Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "content": "\n
\n\t\n\t\t<v8:item>\n\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t<v8:content>Размещение</v8:content>\n\t\t</v8:item>\n\t\n\tfalse\n\t\n\t\n\t\t\n\t\t\tОбъект.Склад\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Дата\n\t\t\t\t\tОбъект.Date\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Номенклатура\n\t\t\t\t\tОбъект.Товары.Номенклатура\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Подбор\n\t\t\t\t\tПодбор.Склад\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Режим\n\t\t\t\t\tРежим\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Нет\n\t\t\t\t\tРежим.Code\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tОбъект.Товары\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tSearchStringRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tViewStatusRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tSearchControl\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tОбъект.Товары.Номенклатура\n\t\t\t\t\t\n\t\t\t\t\t\tItems.Товары.CurrentData.Страна\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.НомерСтроки\n\t\t\t\t\t\t\tItems.Товары.CurrentData.LineNumber\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОбъект.Товары.Страна\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Номенклатура\n\t\t\t\t\t\t\tItems.Товары.CurrentData.Номенклатура\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\tПодбор\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tSearchStringRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tViewStatusRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tSearchControl\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор.Склад\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Склад\n\t\t\t\t\t\t\tItems.Подбор.CurrentData.Склад\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Страна\n\t\t\t\t\t\t\tItems.Товары.CurrentData.Страна\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t\tcfg:DocumentObject.Размещение\n\t\t\t\n\t\t\ttrue\n\t\t\ttrue\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcfg:CatalogRef.Страны\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t<v8:item>\n\t\t\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t\t\t<v8:content>Подбор</v8:content>\n\t\t\t\t</v8:item>\n\t\t\t\n\t\t\t\n\t\t\t\tv8:ValueTable\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tcfg:CatalogRef.Склады\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t<v8:item>\n\t\t\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t\t\t<v8:content>Режим</v8:content>\n\t\t\t\t</v8:item>\n\t\t\t\n\t\t\t\n\t\t\t\tcfg:CatalogRef.Склады\n\t\t\t\n\t\t\n\t\n" + } + }, + { + "script": "cfe-init/scripts/cfe-init", + "args": { + "-Name": "Тест", + "-OutputDir": "{workDir}/cfe", + "-ConfigPath": "{workDir}" + } + } + ], + "params": { + "extensionPath": "cfe", + "object": "Document.Размещение.Form.ФормаДокумента" + }, + "expect": { + "fileContains": { + "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "text": [ + "39", + "Объект.Товары.Номенклатура", + "40/41", + "42", + "Items.Товары.CurrentData.LineNumber", + "Items.Товары.CurrentData.Страна", + "Items.Товары.CurrentData.Номенклатура", + "23:02023637-7868-4a5f-8576-835a76e0c9ba/41" + ] + }, + "fileNotContains": { + "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "text": [ + "Объект.Date", + "Items.Подбор", + "Подбор.Склад<", + "Режим.Code" + ] + }, + "stdoutContains": [ + "Вырезано связей формы: 1", + "Режим.Code" + ] + }, + "args_extra": [ + "-BorrowMainAttribute", + "Form" + ] +} diff --git a/tests/skills/cases/cfe-borrow/form-link-codes-register.json b/tests/skills/cases/cfe-borrow/form-link-codes-register.json new file mode 100644 index 000000000..8c361b77e --- /dev/null +++ b/tests/skills/cases/cfe-borrow/form-link-codes-register.json @@ -0,0 +1,107 @@ +{ + "name": "Связи формы записи регистра без основного реквизита: стандартное поле записи (Period) и измерение кодируются", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Склады" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "InformationRegister", + "name": "Цены", + "periodicity": "Day", + "dimensions": [ + "Склад: CatalogRef.Склады" + ], + "resources": [ + "Цена: Number(15,2)" + ] + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "form-add/scripts/form-add", + "args": { + "-ObjectPath": "{workDir}/InformationRegisters/Цены.xml", + "-FormName": "ФормаЗаписи" + } + }, + { + "script": "form-compile/scripts/form-compile", + "input": { + "title": "Цена", + "elements": [ + { + "input": "Склад", + "path": "Запись.Склад" + }, + { + "input": "Цена", + "path": "Запись.Цена", + "choiceParameterLinks": [ + { + "name": "Отбор.Период", + "dataPath": "Запись.Period" + }, + { + "name": "Отбор.Склад", + "dataPath": "Запись.Склад" + } + ] + } + ], + "attributes": [ + { + "name": "Запись", + "type": "InformationRegisterRecordManager.Цены", + "main": true + } + ] + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputPath": "{workDir}/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml" + } + }, + { + "script": "cfe-init/scripts/cfe-init", + "args": { + "-Name": "Тест", + "-OutputDir": "{workDir}/cfe", + "-ConfigPath": "{workDir}" + } + } + ], + "params": { + "extensionPath": "cfe", + "object": "InformationRegister.Цены.Form.ФормаЗаписи" + }, + "expect": { + "fileContains": { + "file": "cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml", + "text": [ + "7/-2", + "7/0:" + ] + }, + "fileNotContains": { + "file": "cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml", + "text": [ + "Запись.Period", + "Запись.Склад<" + ] + }, + "stdoutNotContains": "Вырезано связей" + } +} diff --git a/tests/skills/cases/cfe-borrow/form-link-codes.json b/tests/skills/cases/cfe-borrow/form-link-codes.json new file mode 100644 index 000000000..7da63f593 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/form-link-codes.json @@ -0,0 +1,113 @@ +{ + "name": "Связи формы без основного реквизита кодируются как у Конфигуратора: стандартное поле, ТЧ, AdditionalColumns, реквизит формы, TypeLink; некодируемое — вырезано с предупреждением", + "preRun": [ + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Склады" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Номенклатура" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Catalog", + "name": "Страны" + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "meta-compile/scripts/meta-compile", + "input": { + "type": "Document", + "name": "Размещение", + "attributes": [ + "Склад: CatalogRef.Склады" + ], + "tabularSections": { + "Товары": [ + "Номенклатура: CatalogRef.Номенклатура", + "Количество: Number(15,3)" + ] + } + }, + "args": { + "-JsonPath": "{inputFile}", + "-OutputDir": "{workDir}" + } + }, + { + "script": "form-add/scripts/form-add", + "args": { + "-ObjectPath": "{workDir}/Documents/Размещение.xml", + "-FormName": "ФормаДокумента" + } + }, + { + "writeFile": { + "path": "Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "content": "\n
\n\t\n\t\t<v8:item>\n\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t<v8:content>Размещение</v8:content>\n\t\t</v8:item>\n\t\n\tfalse\n\t\n\t\n\t\t\n\t\t\tОбъект.Склад\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Дата\n\t\t\t\t\tОбъект.Date\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Номенклатура\n\t\t\t\t\tОбъект.Товары.Номенклатура\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Подбор\n\t\t\t\t\tПодбор.Склад\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Режим\n\t\t\t\t\tРежим\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОтбор.Нет\n\t\t\t\t\tРежим.Code\n\t\t\t\t\tClear\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tОбъект.Товары\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tSearchStringRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tViewStatusRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tТовары\n\t\t\t\t\tSearchControl\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tОбъект.Товары.Номенклатура\n\t\t\t\t\t\n\t\t\t\t\t\tItems.Товары.CurrentData.Страна\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.НомерСтроки\n\t\t\t\t\t\t\tItems.Товары.CurrentData.LineNumber\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tОбъект.Товары.Страна\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Номенклатура\n\t\t\t\t\t\t\tItems.Товары.CurrentData.Номенклатура\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\tПодбор\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tSearchStringRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tViewStatusRepresentation\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор\n\t\t\t\t\tSearchControl\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tПодбор.Склад\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Склад\n\t\t\t\t\t\t\tItems.Подбор.CurrentData.Склад\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tОтбор.Страна\n\t\t\t\t\t\t\tItems.Товары.CurrentData.Страна\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t\n\t\t\n\t\t\t\n\t\t\t\tcfg:DocumentObject.Размещение\n\t\t\t\n\t\t\ttrue\n\t\t\ttrue\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcfg:CatalogRef.Страны\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t<v8:item>\n\t\t\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t\t\t<v8:content>Подбор</v8:content>\n\t\t\t\t</v8:item>\n\t\t\t\n\t\t\t\n\t\t\t\tv8:ValueTable\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tcfg:CatalogRef.Склады\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t<v8:item>\n\t\t\t\t\t<v8:lang>ru</v8:lang>\n\t\t\t\t\t<v8:content>Режим</v8:content>\n\t\t\t\t</v8:item>\n\t\t\t\n\t\t\t\n\t\t\t\tcfg:CatalogRef.Склады\n\t\t\t\n\t\t\n\t\n" + } + }, + { + "script": "cfe-init/scripts/cfe-init", + "args": { + "-Name": "Тест", + "-OutputDir": "{workDir}/cfe", + "-ConfigPath": "{workDir}" + } + } + ], + "params": { + "extensionPath": "cfe", + "object": "Document.Размещение.Form.ФормаДокумента" + }, + "expect": { + "fileContains": { + "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "text": [ + "39/-3", + "40/41", + "42", + "4:02023637-7868-4a5f-8576-835a76e0c9ba/-2", + "4:02023637-7868-4a5f-8576-835a76e0c9ba/1:5bdad865-f2c5-434b-8041-ba4aad3b6687", + "4:02023637-7868-4a5f-8576-835a76e0c9ba/1:5bdad865-f2c5-434b-8041-ba4aad3b6687", + "23:02023637-7868-4a5f-8576-835a76e0c9ba/41", + "39/0:", + ">4:02023637-7868-4a5f-8576-835a76e0c9ba/0:" + ] + }, + "fileNotContains": { + "file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml", + "text": [ + "Объект.Date", + "Объект.Товары.Номенклатура", + "Items.", + "Подбор.Склад<", + "Режим.Code" + ] + }, + "stdoutContains": [ + "Вырезано связей формы: 1", + "Режим.Code" + ] + } +} diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-choice-link-items/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-choice-link-items/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml index 6d3de837a..405fb7e0f 100644 --- a/tests/skills/cases/cfe-borrow/snapshots/form-choice-link-items/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml +++ b/tests/skills/cases/cfe-borrow/snapshots/form-choice-link-items/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml @@ -43,6 +43,13 @@ + + + Отбор.Владелец + 1:UUID-001/0:UUID-002 + Clear + + @@ -94,6 +101,13 @@ + + + Отбор.Владелец + 1:UUID-001/0:UUID-002 + Clear + + diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура.xml new file mode 100644 index 000000000..0daed60e9 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Номенклатура + + + ru + Номенклатура + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Номенклатура.StandardAttribute.Description + Catalog.Номенклатура.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Номенклатура/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады.xml new file mode 100644 index 000000000..407ed9812 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Склады + + + ru + Склады + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Склады.StandardAttribute.Description + Catalog.Склады.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Склады/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны.xml new file mode 100644 index 000000000..ab080ad34 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Страны + + + ru + Страны + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Страны.StandardAttribute.Description + Catalog.Страны.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Catalogs/Страны/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Configuration.xml new file mode 100644 index 000000000..2fff3fac6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Configuration.xml @@ -0,0 +1,255 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Склады + Номенклатура + Страны + Размещение + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение.xml new file mode 100644 index 000000000..6b26cc0e6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение.xml @@ -0,0 +1,256 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Размещение + + + ru + Размещение + + + + true + + String + 11 + Variable + Year + true + true + + + + Document.Размещение.StandardAttribute.Number + + Use + Begin + DontUse + Directly + Document.Размещение.Form.ФормаДокумента + + + + + + Allow + Deny + AutoDelete + WriteSelected + AutoFill + + true + true + false + + Managed + Use + + + + + + Auto + DontUse + false + false + + + + + Склад + + + ru + Склад + + + + + cfg:CatalogRef.Склады + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + +
ФормаДокумента
+ + + + UUID-014 + UUID-015 + + + UUID-016 + UUID-017 + + + + Товары + + + ru + Товары + + + + + DontCheck + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + + + + Номенклатура + + + ru + Номенклатура + + + + + cfg:CatalogRef.Номенклатура + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Количество + + + ru + Количество + + + + + xs:decimal + + 15 + 3 + Any + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + +
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента.xml new file mode 100644 index 000000000..21cbf33a8 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаДокумента + + + ru + ФормаДокумента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml new file mode 100644 index 000000000..5d7e540ef --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml @@ -0,0 +1,201 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + Объект.Склад + + + Отбор.Дата + Объект.Date + Clear + + + Отбор.Номенклатура + Объект.Товары.Номенклатура + Clear + + + Отбор.Подбор + Подбор.Склад + Clear + + + Отбор.Режим + Режим + Clear + + + Отбор.Нет + Режим.Code + Clear + + + + + + + Объект.Товары + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + Объект.Товары.Номенклатура + + Items.Товары.CurrentData.Страна + 0 + + + + Отбор.НомерСтроки + Items.Товары.CurrentData.LineNumber + Clear + + + + + + + Объект.Товары.Страна + + + Отбор.Номенклатура + Items.Товары.CurrentData.Номенклатура + Clear + + + + + + +
+ + Подбор + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + Подбор.Склад + + + Отбор.Склад + Items.Подбор.CurrentData.Склад + Clear + + + Отбор.Страна + Items.Товары.CurrentData.Страна + Clear + + + + + + +
+
+ + + + cfg:DocumentObject.Размещение + + true + true + + + + + cfg:CatalogRef.Страны + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подбор</v8:content> + </v8:item> + + + v8:ValueTable + + + + + cfg:CatalogRef.Склады + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Режим</v8:content> + </v8:item> + + + cfg:CatalogRef.Склады + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl new file mode 100644 index 000000000..8ead4cec0 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Ext/ClientApplicationInterface.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Номенклатура.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Номенклатура.xml new file mode 100644 index 000000000..e97f7a7fa --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Номенклатура.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Adopted + Номенклатура + + UUID-012 + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Склады.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Склады.xml new file mode 100644 index 000000000..dd1fbe8d4 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Склады.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Adopted + Склады + + UUID-012 + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Страны.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Страны.xml new file mode 100644 index 000000000..88d55a475 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Catalogs/Страны.xml @@ -0,0 +1,34 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Adopted + Страны + + UUID-012 + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Configuration.xml new file mode 100644 index 000000000..34c1e4999 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Configuration.xml @@ -0,0 +1,75 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Adopted + Тест + + + ru + Тест + + + + Customization + true + Тест_ + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + Role.Тест_ОсновнаяРоль + + + + Language.Русский + + + + + + TaxiEnableVersion8_2 + + + Русский + Тест_ОсновнаяРоль + Склады + Номенклатура + Страны + Размещение + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение.xml new file mode 100644 index 000000000..8df8dc909 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение.xml @@ -0,0 +1,90 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Adopted + Размещение + + UUID-012 + String + 11 + Variable + + +
ФормаДокумента
+ + + + + Adopted + Склад + + UUID-014 + cfg:CatalogRef.Склады + + + + + + UUID-016 + UUID-017 + + + UUID-018 + UUID-019 + + + + Adopted + Товары + + UUID-020 + + + + + + Adopted + Номенклатура + + UUID-022 + cfg:CatalogRef.Номенклатура + + + + + + Adopted + Количество + + UUID-024 + xs:decimal153Any + + + + +
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента.xml new file mode 100644 index 000000000..1c49cbb8c --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента.xml @@ -0,0 +1,13 @@ + + +
+ + + Adopted + ФормаДокумента + + UUID-002 + Managed + + +
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml new file mode 100644 index 000000000..ceada8609 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml @@ -0,0 +1,329 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + Объект.Склад + + + Отбор.Дата + 39 + Clear + + + Отбор.Номенклатура + Объект.Товары.Номенклатура + Clear + + + Отбор.Подбор + 40/41 + Clear + + + Отбор.Режим + 42 + Clear + + + + + + + Объект.Товары + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + Объект.Товары.Номенклатура + + Items.Товары.CurrentData.Страна + 0 + + + + Отбор.НомерСтроки + Items.Товары.CurrentData.LineNumber + Clear + + + + + + + Объект.Товары.Страна + + + Отбор.Номенклатура + Items.Товары.CurrentData.Номенклатура + Clear + + + + + + +
+ + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + + + Отбор.Склад + 23:UUID-001/41 + Clear + + + Отбор.Страна + Items.Товары.CurrentData.Страна + Clear + + + + + + +
+
+ + + + cfg:DocumentObject.Размещение + + true + true + + + + + cfg:CatalogRef.Страны + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + Объект.Склад + + + Отбор.Дата + 39 + Clear + + + Отбор.Номенклатура + Объект.Товары.Номенклатура + Clear + + + Отбор.Подбор + 40/41 + Clear + + + Отбор.Режим + 42 + Clear + + + + + + + Объект.Товары + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + Объект.Товары.Номенклатура + + Items.Товары.CurrentData.Страна + 0 + + + + Отбор.НомерСтроки + Items.Товары.CurrentData.LineNumber + Clear + + + + + + + Объект.Товары.Страна + + + Отбор.Номенклатура + Items.Товары.CurrentData.Номенклатура + Clear + + + + + + +
+ + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + + + Отбор.Склад + 23:UUID-001/41 + Clear + + + Отбор.Страна + Items.Товары.CurrentData.Страна + Clear + + + + + + +
+
+ + + + cfg:DocumentObject.Размещение + + true + true + + + + + cfg:CatalogRef.Страны + + + + + + +
+ \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Languages/Русский.xml new file mode 100644 index 000000000..c21624f52 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Languages/Русский.xml @@ -0,0 +1,13 @@ + + + + + + Adopted + Русский + + UUID-002 + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Roles/Тест_ОсновнаяРоль.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Roles/Тест_ОсновнаяРоль.xml new file mode 100644 index 000000000..ec9dfbaf6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-main/cfe/Roles/Тест_ОсновнаяРоль.xml @@ -0,0 +1,10 @@ + + + + + Тест_ОсновнаяРоль + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады.xml new file mode 100644 index 000000000..407ed9812 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Склады + + + ru + Склады + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Склады.StandardAttribute.Description + Catalog.Склады.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Catalogs/Склады/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Configuration.xml new file mode 100644 index 000000000..3d6be5eb5 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Configuration.xml @@ -0,0 +1,253 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Склады + Цены + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Ext/ClientApplicationInterface.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены.xml new file mode 100644 index 000000000..054326750 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены.xml @@ -0,0 +1,262 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Цены + + + ru + Цены + + + + true + InDialog + InformationRegister.Цены.Form.ФормаЗаписи + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + Day + Independent + false + false + Managed + Use + false + false + + + + + + DontUse + false + false + + + + + Цена + + + ru + Цена + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Склад + + + ru + Склад + + + + + cfg:CatalogRef.Склады + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + false + false + DontIndex + Use + Use + + +
ФормаЗаписи
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Ext/RecordSetModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Ext/RecordSetModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи.xml new file mode 100644 index 000000000..94bc565e0 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаЗаписи + + + ru + ФормаЗаписи + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml new file mode 100644 index 000000000..66e970d1a --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml @@ -0,0 +1,44 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цена</v8:content> + </v8:item> + + false + + + + Запись.Склад + + + + + Запись.Цена + + + Отбор.Период + Запись.Period + Clear + + + Отбор.Склад + Запись.Склад + Clear + + + + + + + + + + cfg:InformationRegisterRecordManager.Цены + + true + true + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl new file mode 100644 index 000000000..8ead4cec0 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Configuration.xml new file mode 100644 index 000000000..aab609d8e --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Configuration.xml @@ -0,0 +1,72 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Adopted + Тест + + + ru + Тест + + + + Customization + true + Тест_ + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + Role.Тест_ОсновнаяРоль + + + + Language.Русский + + + + + + TaxiEnableVersion8_2 + + + Русский + Тест_ОсновнаяРоль + Цены + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены.xml new file mode 100644 index 000000000..43d6d5a31 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены.xml @@ -0,0 +1,46 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Adopted + Цены + + UUID-016 + Day + Independent + + +
ФормаЗаписи
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи.xml new file mode 100644 index 000000000..052384b65 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи.xml @@ -0,0 +1,13 @@ + + +
+ + + Adopted + ФормаЗаписи + + UUID-002 + Managed + + +
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml new file mode 100644 index 000000000..ff53ff54b --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form.xml @@ -0,0 +1,67 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цена</v8:content> + </v8:item> + + false + + + + + + + + + + Отбор.Период + 7/-2 + Clear + + + Отбор.Склад + 7/0:UUID-001 + Clear + + + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Цена</v8:content> + </v8:item> + + false + + + + + + + + + + Отбор.Период + 7/-2 + Clear + + + Отбор.Склад + 7/0:UUID-001 + Clear + + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/InformationRegisters/Цены/Forms/ФормаЗаписи/Ext/Form/Module.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Languages/Русский.xml new file mode 100644 index 000000000..c21624f52 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Languages/Русский.xml @@ -0,0 +1,13 @@ + + + + + + Adopted + Русский + + UUID-002 + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Roles/Тест_ОсновнаяРоль.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Roles/Тест_ОсновнаяРоль.xml new file mode 100644 index 000000000..ec9dfbaf6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes-register/cfe/Roles/Тест_ОсновнаяРоль.xml @@ -0,0 +1,10 @@ + + + + + Тест_ОсновнаяРоль + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура.xml new file mode 100644 index 000000000..0daed60e9 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Номенклатура + + + ru + Номенклатура + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Номенклатура.StandardAttribute.Description + Catalog.Номенклатура.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Номенклатура/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады.xml new file mode 100644 index 000000000..407ed9812 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Склады + + + ru + Склады + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Склады.StandardAttribute.Description + Catalog.Склады.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Склады/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны.xml new file mode 100644 index 000000000..ab080ad34 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны.xml @@ -0,0 +1,91 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Страны + + + ru + Страны + + + + false + HierarchyFoldersAndItems + false + 2 + true + true + + ToItems + 9 + 25 + String + Variable + WholeCatalog + false + true + AsDescription + + Auto + InDialog + false + BothWays + + Catalog.Страны.StandardAttribute.Description + Catalog.Страны.StandardAttribute.Code + + Begin + DontUse + Directly + + + + + + + + + + + false + + + Managed + Use + + + + + + Use + Auto + DontUse + false + false + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Catalogs/Страны/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Configuration.xml new file mode 100644 index 000000000..2fff3fac6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Configuration.xml @@ -0,0 +1,255 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + TestConfig + + + ru + TestConfig + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + TaxiEnableVersion8_2 + DontUse + Version8_3_24 + + + + Русский + Склады + Номенклатура + Страны + Размещение + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение.xml new file mode 100644 index 000000000..6b26cc0e6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение.xml @@ -0,0 +1,256 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Размещение + + + ru + Размещение + + + + true + + String + 11 + Variable + Year + true + true + + + + Document.Размещение.StandardAttribute.Number + + Use + Begin + DontUse + Directly + Document.Размещение.Form.ФормаДокумента + + + + + + Allow + Deny + AutoDelete + WriteSelected + AutoFill + + true + true + false + + Managed + Use + + + + + + Auto + DontUse + false + false + + + + + Склад + + + ru + Склад + + + + + cfg:CatalogRef.Склады + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + +
ФормаДокумента
+ + + + UUID-014 + UUID-015 + + + UUID-016 + UUID-017 + + + + Товары + + + ru + Товары + + + + + DontCheck + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + + + + Номенклатура + + + ru + Номенклатура + + + + + cfg:CatalogRef.Номенклатура + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Количество + + + ru + Количество + + + + + xs:decimal + + 15 + 3 + Any + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + +
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Ext/ObjectModule.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Ext/ObjectModule.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента.xml new file mode 100644 index 000000000..21cbf33a8 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаДокумента + + + ru + ФормаДокумента + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml new file mode 100644 index 000000000..5d7e540ef --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml @@ -0,0 +1,201 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + Объект.Склад + + + Отбор.Дата + Объект.Date + Clear + + + Отбор.Номенклатура + Объект.Товары.Номенклатура + Clear + + + Отбор.Подбор + Подбор.Склад + Clear + + + Отбор.Режим + Режим + Clear + + + Отбор.Нет + Режим.Code + Clear + + + + + + + Объект.Товары + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + Объект.Товары.Номенклатура + + Items.Товары.CurrentData.Страна + 0 + + + + Отбор.НомерСтроки + Items.Товары.CurrentData.LineNumber + Clear + + + + + + + Объект.Товары.Страна + + + Отбор.Номенклатура + Items.Товары.CurrentData.Номенклатура + Clear + + + + + + +
+ + Подбор + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + Подбор.Склад + + + Отбор.Склад + Items.Подбор.CurrentData.Склад + Clear + + + Отбор.Страна + Items.Товары.CurrentData.Страна + Clear + + + + + + +
+
+ + + + cfg:DocumentObject.Размещение + + true + true + + + + + cfg:CatalogRef.Страны + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Подбор</v8:content> + </v8:item> + + + v8:ValueTable + + + + + cfg:CatalogRef.Склады + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Режим</v8:content> + </v8:item> + + + cfg:CatalogRef.Склады + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl new file mode 100644 index 000000000..8ead4cec0 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытийФормы + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовФормы + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +#КонецОбласти + +#Область ОбработчикиОповещений + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Ext/ClientApplicationInterface.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Ext/ClientApplicationInterface.xml new file mode 100644 index 000000000..3c1161b2d --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Ext/ClientApplicationInterface.xml @@ -0,0 +1,18 @@ + + + + + UUID-002 + + + + + UUID-004 + + + + + + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Languages/Русский.xml new file mode 100644 index 000000000..37c60d786 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Configuration.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Configuration.xml new file mode 100644 index 000000000..07e42fe9c --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Configuration.xml @@ -0,0 +1,72 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Adopted + Тест + + + ru + Тест + + + + Customization + true + Тест_ + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + Role.Тест_ОсновнаяРоль + + + + Language.Русский + + + + + + TaxiEnableVersion8_2 + + + Русский + Тест_ОсновнаяРоль + Размещение + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение.xml new file mode 100644 index 000000000..6e251d59b --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение.xml @@ -0,0 +1,36 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + + Adopted + Размещение + + UUID-012 + + +
ФормаДокумента
+
+
+
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента.xml new file mode 100644 index 000000000..1c49cbb8c --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента.xml @@ -0,0 +1,13 @@ + + +
+ + + Adopted + ФормаДокумента + + UUID-002 + Managed + + +
\ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml new file mode 100644 index 000000000..a05e01ea0 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml @@ -0,0 +1,287 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + + + Отбор.Дата + 39/-3 + Clear + + + Отбор.Номенклатура + 39/0:UUID-001/0:UUID-002 + Clear + + + Отбор.Подбор + 40/41 + Clear + + + Отбор.Режим + 42 + Clear + + + + + + + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + + 4:UUID-003/1:UUID-004 + 0 + + + + Отбор.НомерСтроки + 4:UUID-003/-2 + Clear + + + + + + + + + Отбор.Номенклатура + 4:UUID-003/0:UUID-002 + Clear + + + + + + +
+ + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + + + Отбор.Склад + 23:UUID-003/41 + Clear + + + Отбор.Страна + 4:UUID-003/1:UUID-004 + Clear + + + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Размещение</v8:content> + </v8:item> + + false + + + + + + Отбор.Дата + 39/-3 + Clear + + + Отбор.Номенклатура + 39/0:UUID-001/0:UUID-002 + Clear + + + Отбор.Подбор + 40/41 + Clear + + + Отбор.Режим + 42 + Clear + + + + + + + + + + + + Товары + SearchStringRepresentation + + + + + + + Товары + ViewStatusRepresentation + + + + + + + Товары + SearchControl + + + + + + + + 4:UUID-003/1:UUID-004 + 0 + + + + Отбор.НомерСтроки + 4:UUID-003/-2 + Clear + + + + + + + + + Отбор.Номенклатура + 4:UUID-003/0:UUID-002 + Clear + + + + + + +
+ + + + + + + Подбор + SearchStringRepresentation + + + + + + + Подбор + ViewStatusRepresentation + + + + + + + Подбор + SearchControl + + + + + + + + + Отбор.Склад + 23:UUID-003/41 + Clear + + + Отбор.Страна + 4:UUID-003/1:UUID-004 + Clear + + + + + + +
+
+ +
+ \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form/Module.bsl new file mode 100644 index 000000000..e69de29bb diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Languages/Русский.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Languages/Русский.xml new file mode 100644 index 000000000..c21624f52 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Languages/Русский.xml @@ -0,0 +1,13 @@ + + + + + + Adopted + Русский + + UUID-002 + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Roles/Тест_ОсновнаяРоль.xml b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Roles/Тест_ОсновнаяРоль.xml new file mode 100644 index 000000000..ec9dfbaf6 --- /dev/null +++ b/tests/skills/cases/cfe-borrow/snapshots/form-link-codes/cfe/Roles/Тест_ОсновнаяРоль.xml @@ -0,0 +1,10 @@ + + + + + Тест_ОсновнаяРоль + + + + + \ No newline at end of file