Bare `String` type (without length qualifier) now defaults to String(10) instead of String(0) — matching 1C Designer behavior. String(0) means unlimited length (NTEXT in SQL), which is rarely intended. Also fixes SKILL.md: removes misleading `"synonym": "авто"` from JSON example, clarifies synonym auto-generation from CamelCase name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
40 KiB
Meta DSL — спецификация JSON-формата для объектов метаданных 1С
Версия: 2.1
Обзор
JSON DSL для описания объектов метаданных конфигурации 1С. Компактный формат компилируется в полноценный XML, совместимый с выгрузкой конфигурации 1С:Предприятие 8.3.
Поддерживаемые типы (23): Catalog, Document, Enum, Constant, InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister, ChartOfAccounts, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task, ExchangePlan, DocumentJournal, Report, DataProcessor, CommonModule, ScheduledJob, EventSubscription, HTTPService, WebService, DefinedType.
1. Корневая структура
{
"type": "Catalog",
"name": "Номенклатура",
"synonym": "авто из name",
"comment": "",
...type-specific properties...,
"attributes": [...],
"tabularSections": {...}
}
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
type |
string | да | Тип объекта (см. §8) |
name |
string | да | Имя объекта (идентификатор 1С) |
synonym |
string | нет | Синоним; если не указан — авто из CamelCase (§2) |
comment |
string | нет | Комментарий |
Дополнительные поля зависят от типа (§7).
2. Автогенерация синонима (CamelCase → слова)
Если synonym не указан, имя автоматически разбивается на слова:
| Вход | Результат |
|---|---|
АвансовыйОтчет |
Авансовый отчет |
ОсновнаяВалюта |
Основная валюта |
НДС20 |
НДС20 |
IncomingDocument |
Incoming document |
Правила:
- Граница на переходе
[а-яё][А-ЯЁ]и[a-z][A-Z] - Первое слово сохраняет заглавную, остальные — строчные
- Явный
synonymперекрывает автогенерацию
3. Система типов
Совместима с skd-compile.
3.1 Примитивные типы
| DSL | XML |
|---|---|
String или String(100) |
xs:string + StringQualifiers |
Number(15,2) |
xs:decimal + NumberQualifiers |
Number(10,0,nonneg) |
xs:decimal + AllowedSign=Nonnegative |
Boolean |
xs:boolean |
Date |
xs:dateTime + DateFractions=Date |
DateTime |
xs:dateTime + DateFractions=DateTime |
3.2 Ссылочные типы
| DSL | XML |
|---|---|
CatalogRef.Xxx |
cfg:CatalogRef.Xxx |
DocumentRef.Xxx |
cfg:DocumentRef.Xxx |
EnumRef.Xxx |
cfg:EnumRef.Xxx |
ChartOfAccountsRef.Xxx |
cfg:ChartOfAccountsRef.Xxx |
ChartOfCharacteristicTypesRef.Xxx |
cfg:ChartOfCharacteristicTypesRef.Xxx |
ChartOfCalculationTypesRef.Xxx |
cfg:ChartOfCalculationTypesRef.Xxx |
ExchangePlanRef.Xxx |
cfg:ExchangePlanRef.Xxx |
BusinessProcessRef.Xxx |
cfg:BusinessProcessRef.Xxx |
TaskRef.Xxx |
cfg:TaskRef.Xxx |
DefinedType.Xxx |
cfg:DefinedType.Xxx (через v8:TypeSet) |
3.3 Русские синонимы типов
| Русский | Канонический |
|---|---|
Строка(100) |
String(100) |
Число(15,2) |
Number(15,2) |
Булево |
Boolean |
Дата |
Date |
ДатаВремя |
DateTime |
СправочникСсылка.Xxx |
CatalogRef.Xxx |
ДокументСсылка.Xxx |
DocumentRef.Xxx |
ПеречислениеСсылка.Xxx |
EnumRef.Xxx |
ПланСчетовСсылка.Xxx |
ChartOfAccountsRef.Xxx |
ПланВидовХарактеристикСсылка.Xxx |
ChartOfCharacteristicTypesRef.Xxx |
ПланВидовРасчётаСсылка.Xxx |
ChartOfCalculationTypesRef.Xxx |
ПланОбменаСсылка.Xxx |
ExchangePlanRef.Xxx |
БизнесПроцессСсылка.Xxx |
BusinessProcessRef.Xxx |
ЗадачаСсылка.Xxx |
TaskRef.Xxx |
ОпределяемыйТип.Xxx |
DefinedType.Xxx |
Регистронезависимые.
4. Сокращённая запись реквизитов
4.1 Строковая форма
"ИмяРеквизита" → String(10) по умолчанию
"ИмяРеквизита: Тип" → с типом
"ИмяРеквизита: Тип | req, index" → с флагами
4.2 Объектная форма
{
"name": "Имя",
"type": "String(100)",
"synonym": "Мой синоним",
"comment": "Комментарий",
"fillChecking": "ShowError",
"indexing": "Index"
}
Тип можно задать единой строкой ("type": "String(100)") или раздельными полями:
{ "name": "Имя", "type": "String", "length": 100 }
{ "name": "Сумма", "type": "Number", "length": 15, "precision": 2 }
{ "name": "Остаток", "type": "Number", "length": 15, "precision": 2, "nonneg": true }
Раздельная форма эквивалентна String(100), Number(15,2), Number(15,2,nonneg).
Если type уже содержит скобки — length/precision игнорируются.
4.3 Флаги
| Флаг | Действие | Применимость |
|---|---|---|
req |
FillChecking = ShowError | attributes, dimensions, resources |
index |
Indexing = Index | attributes, dimensions |
indexAdditional |
Indexing = IndexWithAdditionalOrder | attributes |
nonneg |
MinValue = 0 (+ nonneg для Number) | attributes, resources |
master |
Master = true | dimensions (РС) |
mainFilter |
MainFilter = true | dimensions (РС) |
denyIncomplete |
DenyIncompleteValues = true | dimensions |
useInTotals |
UseInTotals = true | dimensions (РН) |
Флаги разделяются запятой после |.
5. Табличные части
Для типов с ChildObjects → TabularSection: Catalog, Document, ExchangePlan, ChartOfCharacteristicTypes, ChartOfCalculationTypes, BusinessProcess, Task, Report, DataProcessor, ChartOfAccounts.
"tabularSections": {
"Товары": [
"Номенклатура: CatalogRef.Номенклатура | req",
"Количество: Number(10,3)",
"Цена: Number(15,2)",
"Сумма: Number(15,2)"
],
"Услуги": [
"Описание: String(200)"
]
}
Ключ — имя табличной части, значение — массив реквизитов (в строковой или объектной форме).
Для Catalog добавляется <Use>ForItem</Use> в Properties табличной части. Для Document Use не применяется.
6. Значения перечислений
Только для Enum.
"values": [
"Приход",
"Расход",
{ "name": "НДС20", "synonym": "НДС 20%" }
]
Строка — имя (синоним авто из CamelCase). Объект — полная форма.
7. Свойства по типам
7.1 Catalog
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
hierarchical |
false |
Hierarchical |
hierarchyType |
HierarchyFoldersAndItems |
HierarchyType |
codeLength |
9 |
CodeLength |
codeType |
String |
CodeType |
codeAllowedLength |
Variable |
CodeAllowedLength |
descriptionLength |
25 |
DescriptionLength |
autonumbering |
true |
Autonumbering |
checkUnique |
false |
CheckUnique |
defaultPresentation |
AsDescription |
DefaultPresentation |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
owners |
[] |
Owners |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
7.2 Document
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
numberType |
String |
NumberType |
numberLength |
11 |
NumberLength |
numberAllowedLength |
Variable |
NumberAllowedLength |
numberPeriodicity |
Year |
NumberPeriodicity |
checkUnique |
true |
CheckUnique |
autonumbering |
true |
Autonumbering |
posting |
Allow |
Posting |
realTimePosting |
Deny |
RealTimePosting |
registerRecordsDeletion |
AutoDelete |
RegisterRecordsDeletion |
registerRecordsWritingOnPost |
WriteModified |
RegisterRecordsWritingOnPost |
postInPrivilegedMode |
true |
PostInPrivilegedMode |
unpostInPrivilegedMode |
true |
UnpostInPrivilegedMode |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
registerRecords |
[] |
RegisterRecords |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
7.3 Enum
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
values |
[] |
→ EnumValue в ChildObjects |
Других настраиваемых свойств нет — все дефолтные.
7.4 Constant
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
valueType |
String |
Type |
length |
— | Длина строки (если valueType=String) |
precision |
— | Точность числа (если valueType=Number) |
dataLockControlMode |
Automatic |
DataLockControlMode |
valueType + length/precision работают аналогично раздельной форме типа (§4.2):
"valueType": "String", "length": 100 → String(100).
7.5 InformationRegister
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
writeMode |
Independent |
WriteMode |
periodicity |
Nonperiodical |
InformationRegisterPeriodicity |
mainFilterOnPeriod |
авто* | MainFilterOnPeriod |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
dimensions |
[] |
→ Dimension в ChildObjects |
resources |
[] |
→ Resource в ChildObjects |
attributes |
[] |
→ Attribute в ChildObjects |
* mainFilterOnPeriod = true если periodicity != Nonperiodical, иначе false.
7.6 AccumulationRegister
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
registerType |
Balance |
RegisterType |
enableTotalsSplitting |
true |
EnableTotalsSplitting |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
dimensions |
[] |
→ Dimension в ChildObjects |
resources |
[] |
→ Resource в ChildObjects |
attributes |
[] |
→ Attribute в ChildObjects |
7.7 DefinedType
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
valueTypes |
[] |
Type (составной — массив v8:Type) |
valueType |
— | Алиас для valueTypes (принимает строку или массив) |
Без ChildObjects и модулей. Принимается как valueTypes (мн.ч.), так и valueType (ед.ч.).
{ "type": "DefinedType", "name": "ДенежныеСредства", "valueTypes": ["CatalogRef.БанковскиеСчета", "CatalogRef.Кассы"] }
{ "type": "DefinedType", "name": "ФлагАктивности", "valueType": "Boolean" }
7.8 CommonModule
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
context |
— | Шорткат (см. ниже) |
global |
false |
Global |
server |
false |
Server |
serverCall |
false |
ServerCall |
clientManagedApplication |
false |
ClientManagedApplication |
clientOrdinaryApplication |
false |
ClientOrdinaryApplication |
externalConnection |
false |
ExternalConnection |
privileged |
false |
Privileged |
returnValuesReuse |
DontUse |
ReturnValuesReuse |
Шорткаты context:
"server"→ Server=true, ServerCall=true"client"→ ClientManagedApplication=true"serverClient"→ Server=true, ClientManagedApplication=true
Модуль: Ext/Module.bsl (пустой).
{ "type": "CommonModule", "name": "ОбменДаннымиСервер", "context": "server", "returnValuesReuse": "DuringRequest" }
7.9 ScheduledJob
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
methodName |
"" |
MethodName (авто-префикс CommonModule.) |
description |
= synonym | Description |
key |
"" |
Key |
use |
false |
Use |
predefined |
false |
Predefined |
restartCountOnFailure |
3 |
RestartCountOnFailure |
restartIntervalOnFailure |
10 |
RestartIntervalOnFailure |
Без ChildObjects и модулей.
Формат methodName: "МодульСервер.Процедура" — при компиляции авто-дополняется до CommonModule.МодульСервер.Процедура. Если уже содержит CommonModule. — оставляется как есть.
{ "type": "ScheduledJob", "name": "ОбменДанными", "methodName": "ОбменДаннымиСервер.Выполнить", "use": true }
7.10 EventSubscription
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
source |
[] |
Source (массив v8:Type, формат cfg:XxxObject.Name) |
event |
BeforeWrite |
Event |
handler |
"" |
Handler (авто-префикс CommonModule.) |
Без ChildObjects и модулей.
Значения event: BeforeWrite, OnWrite, BeforeDelete, OnReadAtServer, FillCheckProcessing и др.
Формат handler: "МодульСервер.Процедура" — при компиляции авто-дополняется до CommonModule.МодульСервер.Процедура. Если уже содержит CommonModule. — оставляется как есть.
{ "type": "EventSubscription", "name": "ПередЗаписьюКонтрагента", "source": ["CatalogObject.Контрагенты"], "event": "BeforeWrite", "handler": "ОбщегоНазначенияСервер.ПередЗаписьюКонтрагента" }
7.11 Report
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
defaultForm |
"" |
DefaultForm |
auxiliaryForm |
"" |
AuxiliaryForm |
mainDataCompositionSchema |
"" |
MainDataCompositionSchema |
defaultSettingsForm |
"" |
DefaultSettingsForm |
auxiliarySettingsForm |
"" |
AuxiliarySettingsForm |
defaultVariantForm |
"" |
DefaultVariantForm |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Модули: Ext/ObjectModule.bsl (пустой).
{ "type": "Report", "name": "ОстаткиТоваров", "attributes": ["НачалоПериода: Date", "КонецПериода: Date"] }
7.12 DataProcessor
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
defaultForm |
"" |
DefaultForm |
auxiliaryForm |
"" |
AuxiliaryForm |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Модули: Ext/ObjectModule.bsl (пустой).
{ "type": "DataProcessor", "name": "ЗагрузкаДанных", "attributes": ["ПутьКФайлу: String(500)"] }
7.13 ExchangePlan
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
codeLength |
9 |
CodeLength |
codeAllowedLength |
Variable |
CodeAllowedLength |
descriptionLength |
100 |
DescriptionLength |
distributedInfoBase |
false |
DistributedInfoBase |
includeConfigurationExtensions |
false |
IncludeConfigurationExtensions |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Модули: Ext/ObjectModule.bsl (пустой).
Дополнительно: Ext/Content.xml (пустой шаблон).
{ "type": "ExchangePlan", "name": "ОбменССайтом", "attributes": ["АдресСервера: String(200)"] }
7.14 ChartOfCharacteristicTypes
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
codeLength |
9 |
CodeLength |
codeType |
String |
CodeType |
codeAllowedLength |
Variable |
CodeAllowedLength |
descriptionLength |
25 |
DescriptionLength |
autonumbering |
true |
Autonumbering |
checkUnique |
false |
CheckUnique |
characteristicExtValues |
"" |
CharacteristicExtValues |
valueTypes |
авто* | Type (составной тип значений характеристик) |
hierarchical |
false |
Hierarchical |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
* Если valueTypes не указан, по умолчанию: Boolean, String(100), Number(15,2), DateTime.
Модули: Ext/ObjectModule.bsl (пустой).
{
"type": "ChartOfCharacteristicTypes", "name": "ВидыСубконто",
"valueTypes": ["CatalogRef.Номенклатура", "CatalogRef.Контрагенты", "Boolean", "String", "Number(15,2)"]
}
7.15 DocumentJournal
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
defaultForm |
"" |
DefaultForm |
auxiliaryForm |
"" |
AuxiliaryForm |
registeredDocuments |
[] |
RegisteredDocuments |
columns |
[] |
→ Column в ChildObjects |
Без модулей.
DSL для registeredDocuments — массив строк "Document.ИмяДокумента" (или русский "Документ.ИмяДокумента").
DSL для columns (§12).
{
"type": "DocumentJournal", "name": "Взаимодействия",
"registeredDocuments": ["Document.Встреча", "Document.ТелефонныйЗвонок"],
"columns": [{ "name": "Организация", "indexing": "Index", "references": ["Document.Встреча.Attribute.Организация"] }]
}
7.16 ChartOfAccounts
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
extDimensionTypes |
"" |
ExtDimensionTypes (ссылка на ПВХ) |
maxExtDimensionCount |
3 |
MaxExtDimensionCount |
codeMask |
"" |
CodeMask |
codeLength |
8 |
CodeLength |
descriptionLength |
120 |
DescriptionLength |
codeSeries |
WholeChartOfAccounts |
CodeSeries |
autoOrderByCode |
true |
AutoOrderByCode |
orderLength |
5 |
OrderLength |
hierarchical |
false |
Hierarchical |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
accountingFlags |
[] |
→ AccountingFlag в ChildObjects (§13) |
extDimensionAccountingFlags |
[] |
→ ExtDimensionAccountingFlag в ChildObjects (§14) |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Модули: Ext/ObjectModule.bsl (пустой).
{
"type": "ChartOfAccounts", "name": "Хозрасчетный",
"extDimensionTypes": "ChartOfCharacteristicTypes.ВидыСубконто", "maxExtDimensionCount": 3,
"codeMask": "@@@.@@.@", "codeLength": 8,
"accountingFlags": ["Валютный", "Количественный"],
"extDimensionAccountingFlags": ["Суммовой", "Валютный"]
}
7.17 AccountingRegister
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
chartOfAccounts |
"" |
ChartOfAccounts (ссылка на план счетов) |
correspondence |
false |
Correspondence |
periodAdjustmentLength |
0 |
PeriodAdjustmentLength |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
dimensions |
[] |
→ Dimension в ChildObjects |
resources |
[] |
→ Resource в ChildObjects |
attributes |
[] |
→ Attribute в ChildObjects |
Модули: Ext/RecordSetModule.bsl (пустой).
{
"type": "AccountingRegister", "name": "Хозрасчетный",
"chartOfAccounts": "ChartOfAccounts.Хозрасчетный", "correspondence": true,
"dimensions": ["Организация: CatalogRef.Организации"],
"resources": ["Сумма: Number(15,2)"]
}
7.18 ChartOfCalculationTypes
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
codeLength |
9 |
CodeLength |
codeType |
String |
CodeType |
codeAllowedLength |
Variable |
CodeAllowedLength |
descriptionLength |
25 |
DescriptionLength |
autonumbering |
true |
Autonumbering |
checkUnique |
false |
CheckUnique |
dependenceOnCalculationTypes |
NotUsed |
DependenceOnCalculationTypes |
baseCalculationTypes |
[] |
BaseCalculationTypes |
actionPeriodUse |
false |
ActionPeriodUse |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Значения dependenceOnCalculationTypes: NotUsed, ExclusionAndDependence, ExclusionOnly.
Модули: Ext/ObjectModule.bsl (пустой).
{
"type": "ChartOfCalculationTypes", "name": "Начисления",
"dependenceOnCalculationTypes": "ExclusionAndDependence",
"actionPeriodUse": true
}
7.19 CalculationRegister
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
chartOfCalculationTypes |
"" |
ChartOfCalculationTypes (ссылка на ПВР) |
periodicity |
Month |
Periodicity |
actionPeriod |
false |
ActionPeriod |
basePeriod |
false |
BasePeriod |
schedule |
"" |
Schedule (ссылка на РС графиков) |
scheduleValue |
"" |
ScheduleValue |
scheduleDate |
"" |
ScheduleDate |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
dimensions |
[] |
→ Dimension в ChildObjects |
resources |
[] |
→ Resource в ChildObjects |
attributes |
[] |
→ Attribute в ChildObjects |
Модули: Ext/RecordSetModule.bsl (пустой).
{
"type": "CalculationRegister", "name": "Начисления",
"chartOfCalculationTypes": "ChartOfCalculationTypes.Начисления",
"periodicity": "Month", "actionPeriod": true, "basePeriod": true,
"dimensions": ["Сотрудник: CatalogRef.Сотрудники"],
"resources": ["Сумма: Number(15,2)", "Дни: Number(3,0)"]
}
7.20 BusinessProcess
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
editType |
InDialog |
EditType |
numberType |
String |
NumberType |
numberLength |
11 |
NumberLength |
numberAllowedLength |
Variable |
NumberAllowedLength |
checkUnique |
true |
CheckUnique |
autonumbering |
true |
Autonumbering |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
task |
"" |
Task (ссылка на Task.XXX) |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
Модули: Ext/ObjectModule.bsl (пустой).
Дополнительно: Ext/Flowchart.xml (заглушка карты маршрута).
{ "type": "BusinessProcess", "name": "Задание", "task": "Task.ЗадачаИсполнителя", "attributes": ["Описание: String(200)"] }
7.21 Task
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
numberType |
String |
NumberType |
numberLength |
14 |
NumberLength |
numberAllowedLength |
Variable |
NumberAllowedLength |
checkUnique |
true |
CheckUnique |
autonumbering |
true |
Autonumbering |
taskNumberAutoPrefix |
BusinessProcessNumber |
TaskNumberAutoPrefix |
descriptionLength |
150 |
DescriptionLength |
addressing |
"" |
Addressing (ссылка на РС адресации) |
mainAddressingAttribute |
"" |
MainAddressingAttribute |
currentPerformer |
"" |
CurrentPerformer |
dataLockControlMode |
Automatic |
DataLockControlMode |
fullTextSearch |
Use |
FullTextSearch |
attributes |
[] |
→ Attribute в ChildObjects |
tabularSections |
{} |
→ TabularSection в ChildObjects |
addressingAttributes |
[] |
→ AddressingAttribute в ChildObjects (§15) |
Модули: Ext/ObjectModule.bsl (пустой).
{
"type": "Task", "name": "ЗадачаИсполнителя", "descriptionLength": 200,
"addressing": "InformationRegister.АдресацияЗадач",
"addressingAttributes": [{ "name": "Исполнитель", "type": "CatalogRef.Пользователи", "addressingDimension": "InformationRegister.АдресацияЗадач.Dimension.Исполнитель" }]
}
7.22 HTTPService
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
rootURL |
= имя (lowercase) | RootURL |
reuseSessions |
DontUse |
ReuseSessions |
sessionMaxAge |
20 |
SessionMaxAge |
urlTemplates |
{} |
→ URLTemplate в ChildObjects (§16) |
Модули: Ext/Module.bsl (пустой).
{
"type": "HTTPService", "name": "API", "rootURL": "api",
"urlTemplates": {
"Users": { "template": "/v1/users", "methods": { "Get": "GET", "Create": "POST" } }
}
}
7.23 WebService
| Поле JSON | Умолчание | XML элемент |
|---|---|---|
namespace |
"" |
Namespace |
xdtoPackages |
"" |
XDTOPackages |
reuseSessions |
DontUse |
ReuseSessions |
sessionMaxAge |
20 |
SessionMaxAge |
operations |
{} |
→ Operation в ChildObjects (§17) |
Модули: Ext/Module.bsl (пустой).
{
"type": "WebService", "name": "DataExchange", "namespace": "http://www.1c.ru/DataExchange",
"operations": {
"TestConnection": {
"returnType": "xs:boolean",
"handler": "ПроверкаПодключения",
"parameters": { "ErrorMessage": { "type": "xs:string", "direction": "Out" } }
}
}
}
8. Русские синонимы типов объектов
| Русский | Канонический |
|---|---|
Справочник |
Catalog |
Документ |
Document |
Перечисление |
Enum |
Константа |
Constant |
РегистрСведений |
InformationRegister |
РегистрНакопления |
AccumulationRegister |
РегистрБухгалтерии |
AccountingRegister |
РегистрРасчёта |
CalculationRegister |
ПланСчетов |
ChartOfAccounts |
ПланВидовХарактеристик |
ChartOfCharacteristicTypes |
ПланВидовРасчёта |
ChartOfCalculationTypes |
БизнесПроцесс |
BusinessProcess |
Задача |
Task |
ПланОбмена |
ExchangePlan |
ЖурналДокументов |
DocumentJournal |
Отчёт |
Report |
Обработка |
DataProcessor |
ОбщийМодуль |
CommonModule |
РегламентноеЗадание |
ScheduledJob |
ПодпискаНаСобытие |
EventSubscription |
HTTPСервис |
HTTPService |
ВебСервис |
WebService |
ОпределяемыйТип |
DefinedType |
9. RegisterRecords для документов
"registerRecords": [
"AccumulationRegister.Продажи",
"InformationRegister.Цены"
]
Или с русскими синонимами: "РегистрНакопления.Продажи".
10. Измерения и ресурсы регистров
Синтаксис аналогичен реквизитам (§4), но с дополнительными флагами:
Измерения (dimensions)
"dimensions": [
"Организация: CatalogRef.Организации | master, mainFilter, denyIncomplete",
"Номенклатура: CatalogRef.Номенклатура"
]
Ресурсы (resources)
"resources": [
"Количество: Number(15,3)",
"Сумма: Number(15,2)"
]
Флаг useInTotals — только для измерений AccumulationRegister (по умолчанию true).
Применимо к: InformationRegister, AccumulationRegister, AccountingRegister, CalculationRegister.
11. Примеры
Минимальные
{ "type": "Catalog", "name": "Валюты" }
{ "type": "Enum", "name": "Статусы", "values": ["Новый", "Закрыт"] }
{ "type": "Constant", "name": "ОсновнаяВалюта", "valueType": "CatalogRef.Валюты" }
Справочник с реквизитами и табличной частью
{
"type": "Catalog",
"name": "Номенклатура",
"codeLength": 11,
"descriptionLength": 100,
"hierarchical": true,
"attributes": [
"Артикул: String(25)",
"ЕдиницаИзмерения: CatalogRef.ЕдиницыИзмерения | req",
"ВидНоменклатуры: EnumRef.ВидыНоменклатуры",
"Цена: Number(15,2)"
],
"tabularSections": {
"Штрихкоды": [
"Штрихкод: String(200) | req, index"
]
}
}
Документ с движениями
{
"type": "Document",
"name": "РеализацияТоваров",
"posting": "Allow",
"registerRecords": ["AccumulationRegister.Продажи"],
"attributes": [
"Организация: CatalogRef.Организации | req",
"Контрагент: CatalogRef.Контрагенты | req",
"Склад: CatalogRef.Склады"
],
"tabularSections": {
"Товары": [
"Номенклатура: CatalogRef.Номенклатура | req",
"Количество: Number(15,3)",
"Цена: Number(15,2)",
"Сумма: Number(15,2)"
]
}
}
Регистр сведений с периодичностью
{
"type": "InformationRegister",
"name": "КурсыВалют",
"periodicity": "Day",
"dimensions": [
"Валюта: CatalogRef.Валюты | master, mainFilter, denyIncomplete"
],
"resources": [
"Курс: Number(15,4)",
"Кратность: Number(10,0)"
]
}
Регистр накопления
{
"type": "AccumulationRegister",
"name": "ОстаткиТоваров",
"registerType": "Balance",
"dimensions": [
"Номенклатура: CatalogRef.Номенклатура",
"Склад: CatalogRef.Склады"
],
"resources": [
"Количество: Number(15,3)"
]
}
Определяемый тип
{ "type": "DefinedType", "name": "ДенежныеСредства", "valueTypes": ["CatalogRef.БанковскиеСчета", "CatalogRef.Кассы"] }
Общий модуль
{ "type": "CommonModule", "name": "ОбменДаннымиСервер", "context": "server", "returnValuesReuse": "DuringRequest" }
План обмена
{ "type": "ExchangePlan", "name": "ОбменССайтом", "attributes": ["АдресСервера: String(200)"] }
Журнал документов
{
"type": "DocumentJournal", "name": "Взаимодействия",
"registeredDocuments": ["Document.Встреча", "Document.ТелефонныйЗвонок"],
"columns": [{ "name": "Организация", "indexing": "Index", "references": ["Document.Встреча.Attribute.Организация"] }]
}
План счетов
{
"type": "ChartOfAccounts", "name": "Хозрасчетный",
"extDimensionTypes": "ChartOfCharacteristicTypes.ВидыСубконто", "maxExtDimensionCount": 3,
"codeMask": "@@@.@@.@", "codeLength": 8,
"accountingFlags": ["Валютный", "Количественный"],
"extDimensionAccountingFlags": ["Суммовой", "Валютный"]
}
HTTP-сервис
{
"type": "HTTPService", "name": "API", "rootURL": "api",
"urlTemplates": {
"Users": { "template": "/v1/users", "methods": { "Get": "GET", "Create": "POST" } }
}
}
Веб-сервис
{
"type": "WebService", "name": "DataExchange", "namespace": "http://www.1c.ru/DataExchange",
"operations": {
"TestConnection": {
"returnType": "xs:boolean",
"handler": "ПроверкаПодключения",
"parameters": { "ErrorMessage": { "type": "xs:string", "direction": "Out" } }
}
}
}
Бизнес-процесс
{ "type": "BusinessProcess", "name": "Задание", "task": "Task.ЗадачаИсполнителя", "attributes": ["Описание: String(200)"] }
Задача
{
"type": "Task", "name": "ЗадачаИсполнителя", "descriptionLength": 200,
"addressing": "InformationRegister.АдресацияЗадач",
"addressingAttributes": [{ "name": "Исполнитель", "type": "CatalogRef.Пользователи" }]
}
12. Графы журнала документов (columns)
Только для DocumentJournal.
Строковая форма
"columns": ["Организация", "Контрагент"]
Создаёт графу без ссылок, без индексации.
Объектная форма
"columns": [
{
"name": "Организация",
"synonym": "Организация",
"indexing": "Index",
"references": [
"Document.Встреча.Attribute.Организация",
"Document.ТелефонныйЗвонок.Attribute.Организация"
]
}
]
| Поле | Умолчание | Описание |
|---|---|---|
name |
— | Имя графы (обязательное) |
synonym |
авто | Синоним |
indexing |
DontIndex |
DontIndex / Index |
references |
[] |
Ссылки на реквизиты регистрируемых документов |
13. Признаки учёта (accountingFlags)
Только для ChartOfAccounts.
"accountingFlags": ["Валютный", "Количественный"]
Массив имён. Каждый признак — Boolean-тип. Синоним авто из CamelCase.
14. Признаки учёта субконто (extDimensionAccountingFlags)
Только для ChartOfAccounts.
"extDimensionAccountingFlags": ["Суммовой", "Валютный"]
Аналогично accountingFlags, но применяется к субконто (ExtDimensionTypes).
15. Реквизиты адресации (addressingAttributes)
Только для Task.
Строковая форма
"addressingAttributes": ["Исполнитель"]
Объектная форма
"addressingAttributes": [
{
"name": "Исполнитель",
"type": "CatalogRef.Пользователи",
"addressingDimension": "InformationRegister.АдресацияЗадач.Dimension.Исполнитель"
}
]
| Поле | Умолчание | Описание |
|---|---|---|
name |
— | Имя реквизита (обязательное) |
type |
String |
Тип значения |
synonym |
авто | Синоним |
addressingDimension |
"" |
Ссылка на измерение регистра адресации |
16. URL-шаблоны HTTP-сервиса (urlTemplates)
Только для HTTPService.
"urlTemplates": {
"Users": {
"template": "/v1/users",
"methods": {
"Get": "GET",
"Create": "POST"
}
}
}
Ключ — имя шаблона. Значение — объект:
| Поле | Умолчание | Описание |
|---|---|---|
template |
/{name} |
URL-шаблон (строка) |
methods |
{} |
Имя метода → HTTP-метод (GET, POST, PUT, DELETE, PATCH) |
Обработчик метода авто: {TemplateName}{MethodName} (напр. UsersGet).
Если значение — строка, интерпретируется как template без методов.
17. Операции веб-сервиса (operations)
Только для WebService.
"operations": {
"TestConnection": {
"returnType": "xs:boolean",
"handler": "ПроверкаПодключения",
"nillable": false,
"transactioned": false,
"parameters": {
"ErrorMessage": {
"type": "xs:string",
"nillable": true,
"direction": "Out"
}
}
}
}
Ключ — имя операции. Значение — объект:
| Поле | Умолчание | Описание |
|---|---|---|
returnType |
xs:string |
XDTO-тип возвращаемого значения |
handler |
= имя операции | Имя процедуры-обработчика |
nillable |
false |
Может ли возвращать null |
transactioned |
false |
Выполняется в транзакции |
parameters |
{} |
Параметры операции |
Если значение — строка, интерпретируется как returnType.
Параметры операции
| Поле | Умолчание | Описание |
|---|---|---|
type |
xs:string |
XDTO-тип параметра |
nillable |
true |
Может ли быть null |
direction |
In |
Направление: In / Out / InOut |
Если значение — строка, интерпретируется как type.