diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1 b/.claude/skills/cfe-borrow/scripts/cfe-borrow.ps1
index 387581a8..42033f17 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.18 — Borrow objects from configuration into extension (CFE) (+write_xml_file/write_utf8_bom: общий эталон записи)
+# cfe-borrow v1.19 — Borrow objects from configuration into extension (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)][string]$ExtensionPath,
@@ -125,7 +125,7 @@ $childTypeDirMap = @{
"Sequence"="Sequences"; "IntegrationService"="IntegrationServices"
"XDTOPackage"="XDTOPackages"; "WebService"="WebServices"
"HTTPService"="HTTPServices"; "WSReference"="WSReferences"
- "CommonAttribute"="CommonAttributes"; "Style"="Styles"
+ "CommonAttribute"="CommonAttributes"; "Style"="Styles"; "Bot"="Bots"; "Language"="Languages"
}
# --- 4b. Russian synonym → English type ---
@@ -153,7 +153,7 @@ $synonymMap = @{
$script:typeOrder = @(
"Language","Subsystem","StyleItem","Style",
"CommonPicture","SessionParameter","Role","CommonTemplate",
- "FilterCriterion","CommonModule","CommonAttribute","ExchangePlan",
+ "FilterCriterion","CommonModule","Bot","CommonAttribute","ExchangePlan",
"XDTOPackage","WebService","HTTPService","WSReference",
"EventSubscription","ScheduledJob","SettingsStorage","FunctionalOption",
"FunctionalOptionsParameter","DefinedType","CommonCommand","CommandGroup",
diff --git a/.claude/skills/cfe-borrow/scripts/cfe-borrow.py b/.claude/skills/cfe-borrow/scripts/cfe-borrow.py
index 5bfc3312..15928de8 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.18 — Borrow objects from configuration into extension (CFE) (+write_xml_file/write_utf8_bom: общий эталон записи)
+# cfe-borrow v1.19 — Borrow objects from configuration into extension (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -80,6 +80,7 @@ CHILD_TYPE_DIR_MAP = {
"XDTOPackage": "XDTOPackages", "WebService": "WebServices",
"HTTPService": "HTTPServices", "WSReference": "WSReferences",
"CommonAttribute": "CommonAttributes", "Style": "Styles",
+ "Bot": "Bots", "Language": "Languages",
}
SYNONYM_MAP = {
@@ -123,7 +124,7 @@ SYNONYM_MAP = {
TYPE_ORDER = [
"Language", "Subsystem", "StyleItem", "Style",
"CommonPicture", "SessionParameter", "Role", "CommonTemplate",
- "FilterCriterion", "CommonModule", "CommonAttribute", "ExchangePlan",
+ "FilterCriterion", "CommonModule", "Bot", "CommonAttribute", "ExchangePlan",
"XDTOPackage", "WebService", "HTTPService", "WSReference",
"EventSubscription", "ScheduledJob", "SettingsStorage", "FunctionalOption",
"FunctionalOptionsParameter", "DefinedType", "CommonCommand", "CommandGroup",
diff --git a/.claude/skills/cfe-diff/scripts/cfe-diff.ps1 b/.claude/skills/cfe-diff/scripts/cfe-diff.ps1
index 48d19ec1..155c7f42 100644
--- a/.claude/skills/cfe-diff/scripts/cfe-diff.ps1
+++ b/.claude/skills/cfe-diff/scripts/cfe-diff.ps1
@@ -1,4 +1,4 @@
-# cfe-diff v1.0 — Analyze and compare 1C configuration extension (CFE)
+# cfe-diff v1.1 — Analyze and compare 1C configuration extension (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -49,7 +49,9 @@ $childTypeDirMap = @{
"SettingsStorage"="SettingsStorages"; "FilterCriterion"="FilterCriteria"
"CommandGroup"="CommandGroups"; "DocumentNumerator"="DocumentNumerators"
"Sequence"="Sequences"; "IntegrationService"="IntegrationServices"
- "CommonAttribute"="CommonAttributes"
+ "CommonAttribute"="CommonAttributes"; "Style"="Styles"; "XDTOPackage"="XDTOPackages"
+ "WebService"="WebServices"; "HTTPService"="HTTPServices"; "WSReference"="WSReferences"
+ "Bot"="Bots"
}
# --- Parse extension Configuration.xml ---
diff --git a/.claude/skills/cfe-diff/scripts/cfe-diff.py b/.claude/skills/cfe-diff/scripts/cfe-diff.py
index 3398410a..9af62d93 100644
--- a/.claude/skills/cfe-diff/scripts/cfe-diff.py
+++ b/.claude/skills/cfe-diff/scripts/cfe-diff.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# cfe-diff v1.0 — Analyze and compare 1C configuration extension (CFE)
+# cfe-diff v1.1 — Analyze and compare 1C configuration extension (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -60,6 +60,12 @@ CHILD_TYPE_DIR_MAP = {
"Sequence": "Sequences",
"IntegrationService": "IntegrationServices",
"CommonAttribute": "CommonAttributes",
+ "Style": "Styles",
+ "XDTOPackage": "XDTOPackages",
+ "WebService": "WebServices",
+ "HTTPService": "HTTPServices",
+ "WSReference": "WSReferences",
+ "Bot": "Bots",
}
diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1 b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
index 1afbb7dd..9f88a401 100644
--- a/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
+++ b/.claude/skills/cfe-validate/scripts/cfe-validate.ps1
@@ -1,4 +1,4 @@
-# cfe-validate v1.5 — Validate 1C configuration extension structure (CFE)
+# cfe-validate v1.6 — Validate 1C configuration extension structure (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)]
@@ -108,7 +108,7 @@ $validClassIds = @(
$childObjectTypes = @(
"Language","Subsystem","StyleItem","Style",
"CommonPicture","SessionParameter","Role","CommonTemplate",
- "FilterCriterion","CommonModule","CommonAttribute","ExchangePlan",
+ "FilterCriterion","CommonModule","Bot","CommonAttribute","ExchangePlan",
"XDTOPackage","WebService","HTTPService","WSReference",
"EventSubscription","ScheduledJob","SettingsStorage","FunctionalOption",
"FunctionalOptionsParameter","DefinedType","CommonCommand","CommandGroup",
@@ -122,7 +122,7 @@ $childObjectTypes = @(
# Type -> directory mapping
$childTypeDirMap = @{
- "Language"="Languages"; "Subsystem"="Subsystems"; "StyleItem"="StyleItems"; "Style"="Styles"
+ "Language"="Languages"; "Subsystem"="Subsystems"; "StyleItem"="StyleItems"; "Style"="Styles"; "Bot"="Bots"
"CommonPicture"="CommonPictures"; "SessionParameter"="SessionParameters"; "Role"="Roles"
"CommonTemplate"="CommonTemplates"; "FilterCriterion"="FilterCriteria"; "CommonModule"="CommonModules"
"CommonAttribute"="CommonAttributes"; "ExchangePlan"="ExchangePlans"; "XDTOPackage"="XDTOPackages"
diff --git a/.claude/skills/cfe-validate/scripts/cfe-validate.py b/.claude/skills/cfe-validate/scripts/cfe-validate.py
index ab66c258..e300ebde 100644
--- a/.claude/skills/cfe-validate/scripts/cfe-validate.py
+++ b/.claude/skills/cfe-validate/scripts/cfe-validate.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# cfe-validate v1.5 — Validate 1C configuration extension XML structure (CFE)
+# cfe-validate v1.6 — Validate 1C configuration extension XML structure (CFE) (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
"""Validates extension Configuration.xml: root, InternalInfo, extension properties, ChildObjects, borrowed objects."""
import sys, os, argparse, re
@@ -37,7 +37,7 @@ VALID_CLASS_IDS = [
CHILD_OBJECT_TYPES = [
'Language', 'Subsystem', 'StyleItem', 'Style',
'CommonPicture', 'SessionParameter', 'Role', 'CommonTemplate',
- 'FilterCriterion', 'CommonModule', 'CommonAttribute', 'ExchangePlan',
+ 'FilterCriterion', 'CommonModule', 'Bot', 'CommonAttribute', 'ExchangePlan',
'XDTOPackage', 'WebService', 'HTTPService', 'WSReference',
'EventSubscription', 'ScheduledJob', 'SettingsStorage', 'FunctionalOption',
'FunctionalOptionsParameter', 'DefinedType', 'CommonCommand', 'CommandGroup',
@@ -54,6 +54,7 @@ CHILD_TYPE_DIR_MAP = {
'Language': 'Languages', 'Subsystem': 'Subsystems', 'StyleItem': 'StyleItems', 'Style': 'Styles',
'CommonPicture': 'CommonPictures', 'SessionParameter': 'SessionParameters', 'Role': 'Roles',
'CommonTemplate': 'CommonTemplates', 'FilterCriterion': 'FilterCriteria', 'CommonModule': 'CommonModules',
+ 'Bot': 'Bots',
'CommonAttribute': 'CommonAttributes', 'ExchangePlan': 'ExchangePlans', 'XDTOPackage': 'XDTOPackages',
'WebService': 'WebServices', 'HTTPService': 'HTTPServices', 'WSReference': 'WSReferences',
'EventSubscription': 'EventSubscriptions', 'ScheduledJob': 'ScheduledJobs',
diff --git a/.claude/skills/subsystem-compile/scripts/subsystem-compile.ps1 b/.claude/skills/subsystem-compile/scripts/subsystem-compile.ps1
index 053210c1..4b514610 100644
--- a/.claude/skills/subsystem-compile/scripts/subsystem-compile.ps1
+++ b/.claude/skills/subsystem-compile/scripts/subsystem-compile.ps1
@@ -1,4 +1,4 @@
-# subsystem-compile v1.22 — Create 1C subsystem from JSON definition (+write_xml_file/write_utf8_bom: общий эталон записи)
+# subsystem-compile v1.23 — Create 1C subsystem from JSON definition (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[string]$DefinitionFile,
@@ -294,6 +294,8 @@ $script:contentTypeMap = @{
"Subsystems" = "Subsystem"
"StyleItems" = "StyleItem"
"IntegrationServices" = "IntegrationService"
+ "Bots" = "Bot"
+ "Bot" = "Bot"
# Russian singular → English
"Справочник" = "Catalog"
"Каталог" = "Catalog"
diff --git a/.claude/skills/subsystem-compile/scripts/subsystem-compile.py b/.claude/skills/subsystem-compile/scripts/subsystem-compile.py
index 36c3e0e1..8902e679 100644
--- a/.claude/skills/subsystem-compile/scripts/subsystem-compile.py
+++ b/.claude/skills/subsystem-compile/scripts/subsystem-compile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# subsystem-compile v1.22 — Create 1C subsystem from JSON definition (+write_xml_file/write_utf8_bom: общий эталон записи)
+# subsystem-compile v1.23 — Create 1C subsystem from JSON definition (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
import json
@@ -399,6 +399,7 @@ def main():
'DefinedTypes': 'DefinedType', 'DocumentNumerators': 'DocumentNumerator',
'Sequences': 'Sequence', 'Subsystems': 'Subsystem',
'StyleItems': 'StyleItem', 'IntegrationServices': 'IntegrationService',
+ 'Bots': 'Bot', 'Bot': 'Bot',
# Russian singular → English
'Справочник': 'Catalog', 'Каталог': 'Catalog', 'Документ': 'Document',
'Перечисление': 'Enum', 'Константа': 'Constant',
diff --git a/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1 b/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
index 345dac9e..015bda01 100644
--- a/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
+++ b/.claude/skills/subsystem-edit/scripts/subsystem-edit.ps1
@@ -1,4 +1,4 @@
-# subsystem-edit v1.17 — Edit existing 1C subsystem XML (+write_xml_file/write_utf8_bom: общий эталон записи)
+# subsystem-edit v1.18 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param(
[Parameter(Mandatory)][Alias('Path')][string]$SubsystemPath,
@@ -34,7 +34,7 @@ $script:contentTypeMap = @{
"FunctionalOptionsParameters"="FunctionalOptionsParameter"
"DefinedTypes"="DefinedType"; "DocumentNumerators"="DocumentNumerator"
"Sequences"="Sequence"; "Subsystems"="Subsystem"
- "StyleItems"="StyleItem"; "IntegrationServices"="IntegrationService"
+ "StyleItems"="StyleItem"; "IntegrationServices"="IntegrationService"; "Bots"="Bot"; "Bot"="Bot"
# Russian singular
"Справочник"="Catalog"; "Каталог"="Catalog"; "Документ"="Document"
"Перечисление"="Enum"; "Константа"="Constant"
diff --git a/.claude/skills/subsystem-edit/scripts/subsystem-edit.py b/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
index bcfc42f6..b6fbd1ef 100644
--- a/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
+++ b/.claude/skills/subsystem-edit/scripts/subsystem-edit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# subsystem-edit v1.17 — Edit existing 1C subsystem XML (+write_xml_file/write_utf8_bom: общий эталон записи)
+# subsystem-edit v1.18 — Edit existing 1C subsystem XML (+тип Bot; cfe-diff/cfe-borrow: недостающие типы)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse
@@ -310,6 +310,7 @@ CONTENT_TYPE_MAP = {
'DefinedTypes': 'DefinedType', 'DocumentNumerators': 'DocumentNumerator',
'Sequences': 'Sequence', 'Subsystems': 'Subsystem',
'StyleItems': 'StyleItem', 'IntegrationServices': 'IntegrationService',
+ 'Bots': 'Bot', 'Bot': 'Bot',
# Russian singular
'Справочник': 'Catalog', 'Каталог': 'Catalog', 'Документ': 'Document',
'Перечисление': 'Enum', 'Константа': 'Constant',
diff --git a/tests/skills/cases/cfe-diff/own-service-objects.json b/tests/skills/cases/cfe-diff/own-service-objects.json
new file mode 100644
index 00000000..881c6d65
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/own-service-objects.json
@@ -0,0 +1,41 @@
+{
+ "name": "Собственные XDTO-пакет и HTTP-сервис расширения попадают в обзор",
+ "preRun": [
+ {
+ "script": "cfe-init/scripts/cfe-init",
+ "args": {
+ "-Name": "Сервисы",
+ "-OutputDir": "{workDir}/ext",
+ "-ConfigPath": "{workDir}"
+ }
+ },
+ {
+ "script": "meta-compile/scripts/meta-compile",
+ "input": {
+ "type": "HTTPService",
+ "name": "Сервисы_API",
+ "rootURL": "api",
+ "urlTemplates": { "Health": "/health" }
+ },
+ "args": {
+ "-JsonPath": "{inputFile}",
+ "-OutputDir": "{workDir}/ext"
+ }
+ },
+ {
+ "script": "xdto-compile/scripts/xdto-compile",
+ "args": {
+ "-Xsd": "",
+ "-Name": "Сервисы_Пакет",
+ "-OutputDir": "{workDir}/ext"
+ }
+ }
+ ],
+ "params": {
+ "extensionPath": "ext"
+ },
+ "expect": {
+ "stdoutContains": ["HTTPService.Сервисы_API", "XDTOPackage.Сервисы_Пакет"],
+ "stdoutNotContains": ["unknown type"]
+ }
+}
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Configuration.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Configuration.xml
new file mode 100644
index 00000000..2ed58586
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Configuration.xml
@@ -0,0 +1,251 @@
+
+
+
+
+
+ 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-diff/snapshots/own-service-objects/Ext/ClientApplicationInterface.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/ClientApplicationInterface.xml
new file mode 100644
index 00000000..3c1161b2
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/ClientApplicationInterface.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ UUID-002
+
+
+
+
+ UUID-004
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Configuration.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Configuration.xml
new file mode 100644
index 00000000..1a6c9629
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Configuration.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+ 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
+
+
+ Русский
+ Сервисы_ОсновнаяРоль
+ Сервисы_API
+ Сервисы_Пакет
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/HTTPServices/Сервисы_API.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/HTTPServices/Сервисы_API.xml
new file mode 100644
index 00000000..00d0a56d
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/HTTPServices/Сервисы_API.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ Сервисы_API
+
+
+ ru
+ Сервисы_API
+
+
+
+ api
+ DontUse
+ 20
+
+
+
+
+ Health
+
+
+ ru
+ Health
+
+
+
+ /health
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/HTTPServices/Сервисы_API/Ext/Module.bsl b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/HTTPServices/Сервисы_API/Ext/Module.bsl
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Languages/Русский.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Languages/Русский.xml
new file mode 100644
index 00000000..c21624f5
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Languages/Русский.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Adopted
+ Русский
+
+ UUID-002
+ ru
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Roles/Сервисы_ОсновнаяРоль.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Roles/Сервисы_ОсновнаяРоль.xml
new file mode 100644
index 00000000..56dcbb72
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/Roles/Сервисы_ОсновнаяРоль.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ Сервисы_ОсновнаяРоль
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет.xml
new file mode 100644
index 00000000..b90498ec
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Сервисы_Пакет
+
+
+ ru
+ Сервисы_Пакет
+
+
+
+ http://example.org/probe
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет/Ext/Package.bin b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет/Ext/Package.bin
new file mode 100644
index 00000000..c0e98cd0
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Ext/XDTOPackages/Сервисы_Пакет/Ext/Package.bin
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Languages/Русский.xml b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Languages/Русский.xml
new file mode 100644
index 00000000..37c60d78
--- /dev/null
+++ b/tests/skills/cases/cfe-diff/snapshots/own-service-objects/Languages/Русский.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ Русский
+
+
+ ru
+ Русский
+
+
+
+ ru
+
+
+
\ No newline at end of file