1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2025-04-09 09:23:57 +02:00

#487 Документ не имеет реквизита "Комментарий" (#1255)

This commit is contained in:
Vadim Goncharov 2023-03-13 14:39:18 +03:00 committed by GitHub
parent 3cf3db92ed
commit 5eba8cf466
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 591 additions and 0 deletions

View File

@ -10,6 +10,7 @@
#### Метаданные
- Документ не имеет реквизита "Комментарий"
#### Формы

View File

@ -0,0 +1,18 @@
# Document does not have the "Comment" attribute
For all documents, it is recommended to create the attribute Comment
(string of unlimited length). In this prop, users can
write down various official notes on the document, which
do not relate to the application specifics of the document (for example, the reason for marking
for deletions, etc.). Access to props for users should be
configured in the same way as for the document itself (if the document is available only
for reading, then the comment is read-only; if there is a right
document record, then the attribute value can also be changed).
## Неправильно
## Правильно
## См.
[Document does not have the "Comment" attribute](https://its.1c.ru/db/v8std#content:531:hdoc:1)

View File

@ -0,0 +1,18 @@
# Документ не имеет реквизита "Комментарий"
Для всех документов рекомендуется создавать реквизит Комментарий
(строка неограниченной длины). В этом реквизите пользователи могут
записывать по документу различные заметки служебного характера, которые
не относятся к прикладной специфике документа (например, причина пометки
на удаления и т.п.). Доступ к реквизиту для пользователей должен быть
настроен также как и к самому документу (если документ доступен только
для чтения, то и комментарий – только для чтения; если же есть право
записи документа, то и значение реквизита также можно изменять).
## Неправильно
## Правильно
## См.
[Реквизит «Комментарий» у документов](https://its.1c.ru/db/v8std#content:531:hdoc:1)

View File

@ -110,6 +110,10 @@
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.internal.md.ExecutableExtensionFactory:com.e1c.v8codestyle.md.check.ExtensionMdObjectNamePrefixCheck">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.MdObjectAttributeCommentNotExistCheck">
</check>
</extension>
</plugin>

View File

@ -0,0 +1,182 @@
/*******************************************************************************
* Copyright (C) 2023, 1C-Soft LLC and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* 1C-Soft LLC - initial API and implementation
* Vadim Gocnharov - issue #487
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import java.util.Set;
import java.util.TreeSet;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.CATALOG;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.DOCUMENT;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.CATALOG__ATTRIBUTES;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.DOCUMENT__ATTRIBUTES;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.EList;
import com._1c.g5.v8.dt.metadata.mdclass.Catalog;
import com._1c.g5.v8.dt.metadata.mdclass.CatalogAttribute;
import com._1c.g5.v8.dt.metadata.mdclass.DbObjectAttribute;
import com._1c.g5.v8.dt.metadata.mdclass.Document;
import com._1c.g5.v8.dt.metadata.mdclass.DocumentAttribute;
import com.e1c.g5.v8.dt.check.CheckComplexity;
import com.e1c.g5.v8.dt.check.ICheckParameters;
import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.components.TopObjectFilterExtension;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.md.CorePlugin;
/**
* Check top Metadata object (Catalog or Document) have attribute named "Comment"
*
* @author Vadim Goncharov
*/
public class MdObjectAttributeCommentNotExistCheck
extends BasicCheck
{
private static final String CHECK_ID = "md-object-attribute-comment-not-exist"; //$NON-NLS-1$
public static final String PARAM_CHECK_DOCUMENTS = "checkDocuments"; //$NON-NLS-1$
public static final String PARAM_CHECK_CATALOGS = "checkCatalogs"; //$NON-NLS-1$
public static final String PARAM_ATTRIBUTE_NAMES_LIST = "attributesList"; //$NON-NLS-1$
public static final String DEFAULT_CHECK_DOCUMENTS = Boolean.toString(true);
public static final String DEFAULT_CHECK_CATALOGS = Boolean.toString(false);
private static final Set<String> ATTRIBUTE_NAMES_LIST = Set.of("Комментарий", //$NON-NLS-1$
"Comment"); //$NON-NLS-1$
private static final String DELIMITER = ","; //$NON-NLS-1$
public static final String DEFAULT_ATTRIBUTE_NAMES_LIST = String.join(DELIMITER, ATTRIBUTE_NAMES_LIST);
public MdObjectAttributeCommentNotExistCheck()
{
super();
}
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.MdObjectAttributeCommentNotExist_title)
.description(Messages.MdObjectAttributeCommentNotExist_description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MINOR)
.issueType(IssueType.UI_STYLE)
.extension(new StandardCheckExtension(531, getCheckId(), CorePlugin.PLUGIN_ID))
.extension(new SkipAdoptedInExtensionMdObjectExtension())
.extension(new TopObjectFilterExtension())
.parameter(PARAM_ATTRIBUTE_NAMES_LIST, String.class, DEFAULT_ATTRIBUTE_NAMES_LIST,
Messages.MdObjectAttributeCommentNotExist_Param_Attribute_name_list);
builder.topObject(DOCUMENT)
.checkTop()
.features(DOCUMENT__ATTRIBUTES)
.parameter(PARAM_CHECK_DOCUMENTS, Boolean.class, DEFAULT_CHECK_DOCUMENTS,
Messages.MdObjectAttributeCommentNotExist_Param_Check_Documents);
builder.topObject(CATALOG)
.checkTop()
.features(CATALOG__ATTRIBUTES)
.parameter(PARAM_CHECK_CATALOGS, Boolean.class, DEFAULT_CHECK_CATALOGS,
Messages.MdObjectAttributeCommentNotExist_Param_Check_Catalogs);
}
@Override
protected void check(Object object, ResultAcceptor resultAcceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
boolean attributeExist = false;
boolean checkCatalogs = parameters.getBoolean(PARAM_CHECK_CATALOGS);
boolean checkDocuments = parameters.getBoolean(PARAM_CHECK_DOCUMENTS);
Set<String> attributeNamesList = getListOfAttributeNames(parameters);
if (monitor.isCanceled())
{
return;
}
if (object instanceof Document && checkDocuments)
{
Document document = (Document)object;
EList<DocumentAttribute> attributes = document.getAttributes();
for (DbObjectAttribute attribute : attributes)
{
if (monitor.isCanceled())
{
return;
}
if (isAttributeNamedComment(attribute, attributeNamesList))
{
attributeExist = true;
break;
}
}
}
else if (object instanceof Catalog && checkCatalogs)
{
Catalog catalog = (Catalog)object;
EList<CatalogAttribute> attributes = catalog.getAttributes();
for (DbObjectAttribute attribute : attributes)
{
if (monitor.isCanceled())
{
return;
}
if (isAttributeNamedComment(attribute, attributeNamesList))
{
attributeExist = true;
break;
}
}
}
if (!monitor.isCanceled() && !attributeExist)
{
resultAcceptor
.addIssue(Messages.MdObjectAttributeCommentNotExist_Md_Object_attribute_Comment_does_not_exist, object);
}
}
private boolean isAttributeNamedComment(DbObjectAttribute attribute, Set<String> attributeNamesList)
{
return attributeNamesList.contains(attribute.getName());
}
private Set<String> getListOfAttributeNames(ICheckParameters parameters)
{
Set<String> attributeNames = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
String paramAttributesString = parameters.getString(PARAM_ATTRIBUTE_NAMES_LIST);
Set<String> paramsAttributeNames = Set.of(paramAttributesString.replace(" ", "").split(DELIMITER)); //$NON-NLS-1$ //$NON-NLS-2$
attributeNames.addAll(paramsAttributeNames);
return attributeNames;
}
}

View File

@ -27,6 +27,12 @@ final class Messages
public static String DbObjectRefNonRefTypesCheck_Description;
public static String DbObjectRefNonRefTypesCheck_Ref_and_other;
public static String DbObjectRefNonRefTypesCheck_Title;
public static String MdObjectAttributeCommentNotExist_description;
public static String MdObjectAttributeCommentNotExist_Md_Object_attribute_Comment_does_not_exist;
public static String MdObjectAttributeCommentNotExist_Param_Check_Catalogs;
public static String MdObjectAttributeCommentNotExist_Param_Check_Documents;
public static String MdObjectAttributeCommentNotExist_Param_Attribute_name_list;
public static String MdObjectAttributeCommentNotExist_title;
public static String MdObjectNameWithoutSuffix_Name_suffix_list_title;
public static String CommonModuleNameClient_title;
public static String CommonModuleNameClientServer_description;

View File

@ -71,6 +71,18 @@ MdListObjectPresentationCheck_decription = Neither Object presentation nor List
MdListObjectPresentationCheck_title = Neither Object presentation nor List presentation is not filled
MdObjectAttributeCommentNotExist_Md_Object_attribute_Comment_does_not_exist = Md Object attribute "Comment" does not exist
MdObjectAttributeCommentNotExist_Param_Attribute_name_list = Attribute name list
MdObjectAttributeCommentNotExist_Param_Check_Catalogs = Check catalogs
MdObjectAttributeCommentNotExist_Param_Check_Documents = Check documents
MdObjectAttributeCommentNotExist_description = Md Object attribute "Comment" does not exist
MdObjectAttributeCommentNotExist_title = Md Object attribute "Comment" does not exist
MdObjectNameLength_Maximum_name_length_description = Maximum name length
MdObjectNameLength_description = Metadata object name length should be less than {0}

View File

@ -72,6 +72,18 @@ MdListObjectPresentationCheck_decription = Не заполнено ни пред
MdListObjectPresentationCheck_title = Не заполнено ни представление объекта, ни представление списка
MdObjectAttributeCommentNotExist_Md_Object_attribute_Comment_does_not_exist = Объект метаданных не имеет реквизит "Комментарий"
MdObjectAttributeCommentNotExist_Param_Attribute_name_list = Список имен реквизита
MdObjectAttributeCommentNotExist_Param_Check_Catalogs = Проверять справочники
MdObjectAttributeCommentNotExist_Param_Check_Documents = Проверять документы
MdObjectAttributeCommentNotExist_description = Объект метаданных не имеет реквизит "Комментарий"
MdObjectAttributeCommentNotExist_title = Объект метаданных не имеет реквизит "Комментарий"
MdObjectNameLength_Maximum_name_length_description = Максимальная длина имени
MdObjectNameLength_description = Длина имени объекта метаданного должна быть меньше чем {0}

View File

@ -0,0 +1,58 @@
package com.e1c.v8codestyle.md.check.itests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.junit.Test;
import com._1c.g5.v8.dt.core.platform.IDtProject;
import com._1c.g5.v8.dt.validation.marker.Marker;
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
import com.e1c.v8codestyle.md.check.MdObjectAttributeCommentNotExistCheck;
/**
* Tests for {@link MdObjectAttributeCommentNotExistCheck} check.
*
* @author Vadim Goncharov
*
*/
public class MdObjectAttributeCommentNotExistCheckTest
extends CheckTestBase
{
private static final String CHECK_ID = "md-object-attribute-comment-not-exist";
private static final String PROJECT_NAME = "MdObjectAttributeCommentNotExist";
/**
* Test that md object's attribute named "Comment" does not exist
* @throws Exception the exception
*/
@Test
public void testMdObject() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Document.TestDocument1", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
id = getTopObjectIdByFqn("Document.TestDocument2", dtProject);
marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
id = getTopObjectIdByFqn("Document.TestDocument3", dtProject);
marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
id = getTopObjectIdByFqn("Catalog.TestCatalog1", dtProject);
marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
id = getTopObjectIdByFqn("Catalog.TestCatalog2", dtProject);
marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
}

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MdObjectAttributeCommentNotExist</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
<nature>com._1c.g5.v8.dt.core.V8ConfigurationNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,10 @@
{
"version": 1,
"settings": {
"md-object-attribute-comment-not-exist": {
"properties": {
"checkCatalogs": "true"
}
}
}
}

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1b179646-d487-4e62-b9ac-efa1a750e246">
<producedTypes>
<objectType typeId="2a4dc066-7cf8-44be-b048-2c9158e5106a" valueTypeId="742d7236-8e6f-4342-8e2d-97d8c9f6511e"/>
<refType typeId="be79a7f6-df83-4ab1-9d2b-af28062cba97" valueTypeId="26f1849b-13e6-4108-acd3-a89076040865"/>
<selectionType typeId="14e27cd2-58b8-4250-9b39-2316c5f6bbe8" valueTypeId="19f7cc09-fd4f-4a9a-b885-33eb7c68ffbc"/>
<listType typeId="febb6ec7-3143-46cb-926f-21a3dcb4b706" valueTypeId="c49c812c-e9f7-493a-81c4-681153c6ad88"/>
<managerType typeId="687c9a64-387c-423a-91f2-61cee11eb3c5" valueTypeId="f6d50baf-51ff-463e-8d70-2d956efb8125"/>
</producedTypes>
<name>TestCatalog1</name>
<synonym>
<key>en</key>
<value>Test catalog1</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.TestCatalog1.StandardAttribute.Code</inputByString>
<inputByString>Catalog.TestCatalog1.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<codeLength>9</codeLength>
<descriptionLength>25</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
<attributes uuid="5c4583d9-4e6b-4d96-8128-e8509187ea72">
<name>Comment</name>
<synonym>
<key>en</key>
<value>Comment</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
</mdclass:Catalog>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c0765458-f5bb-4891-bd81-11b5d1104d54">
<producedTypes>
<objectType typeId="1c1a4b98-8c8b-4010-b88c-40e2ad887eb7" valueTypeId="045aacb1-c826-46be-b10e-c999998b5359"/>
<refType typeId="3f8707c0-f688-4064-ba96-21b39d2bee31" valueTypeId="8d62080c-f062-42ba-957f-be3fc9d499cf"/>
<selectionType typeId="57a968cd-43cd-4e01-8c8d-a7891e3d9fbf" valueTypeId="d66e369f-0809-4186-976d-04eeb76d1a53"/>
<listType typeId="3c41b9e0-9f29-45ea-a21b-c9a6d113ebb9" valueTypeId="4f09f865-80ca-4ea8-8cd3-1bad19b4ab32"/>
<managerType typeId="2d459676-6061-4808-bef4-42845be8a501" valueTypeId="636f2db7-a292-4d5d-a1e9-7b42f70bebb9"/>
</producedTypes>
<name>TestCatalog2</name>
<synonym>
<key>en</key>
<value>Test catalog2</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.TestCatalog2.StandardAttribute.Code</inputByString>
<inputByString>Catalog.TestCatalog2.StandardAttribute.Description</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<levelCount>2</levelCount>
<foldersOnTop>true</foldersOnTop>
<codeLength>9</codeLength>
<descriptionLength>25</descriptionLength>
<codeType>String</codeType>
<codeAllowedLength>Variable</codeAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<defaultPresentation>AsDescription</defaultPresentation>
<editType>InDialog</editType>
<choiceMode>BothWays</choiceMode>
</mdclass:Catalog>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5d36dacb-1027-41d5-b939-991c391004b1">
<name>MdObjectAttributeCommentNotExist</name>
<synonym>
<key>en</key>
<value>Md object attribute comment not exist</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="1afe7545-061d-4405-9a4f-46e04eb1d05e"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="fd8be8c0-267f-4b82-9f51-986a369a6b44"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="913c7d87-febc-42cd-bdf7-bc0c89dcd7dc"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="58528c2d-e956-49cd-b452-4fdb2b373c5e"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="1f14550f-3c6d-41ce-8c63-765d2f4c2822"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="e91c2520-82bf-4f46-bdf5-0c7ec9a77614"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="2e3d57ed-cc50-4497-b013-387d8f98a441"/>
<configurationExtensionCompatibilityMode>8.3.19</configurationExtensionCompatibilityMode>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<usedMobileApplicationFunctionalities>
<functionality>
<use>true</use>
</functionality>
<functionality>
<functionality>OSBackup</functionality>
<use>true</use>
</functionality>
</usedMobileApplicationFunctionalities>
<defaultLanguage>Language.English</defaultLanguage>
<dataLockControlMode>Managed</dataLockControlMode>
<objectAutonumerationMode>NotAutoFree</objectAutonumerationMode>
<modalityUseMode>DontUse</modalityUseMode>
<synchronousPlatformExtensionAndAddInCallUseMode>DontUse</synchronousPlatformExtensionAndAddInCallUseMode>
<compatibilityMode>8.3.19</compatibilityMode>
<languages uuid="15a333e8-44ac-48ca-acba-09f3cc6136dc">
<name>English</name>
<synonym>
<key>en</key>
<value>English</value>
</synonym>
<languageCode>en</languageCode>
</languages>
<catalogs>Catalog.TestCatalog1</catalogs>
<catalogs>Catalog.TestCatalog2</catalogs>
<documents>Document.TestDocument1</documents>
<documents>Document.TestDocument2</documents>
<documents>Document.TestDocument3</documents>
</mdclass:Configuration>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6dc74c6a-296c-45db-8adb-8b56596455fa">
<producedTypes>
<objectType typeId="9f2d1a84-c3df-4bf1-a12d-49e08aa69535" valueTypeId="41068a5c-169e-4a1c-a0e6-d067b8af78d2"/>
<refType typeId="bed3dada-a977-498c-9413-8ffbfcdb3ad8" valueTypeId="9249c7dd-488b-4817-a6a3-9166b073168f"/>
<selectionType typeId="83ea99eb-703b-4edc-9a56-cba834ad735d" valueTypeId="371aaf5c-0c52-434d-9ac2-f9fdcde4570c"/>
<listType typeId="36c0ef7a-a2e6-4759-a8a0-9ce71b2b5a1a" valueTypeId="080e4492-46ca-4c71-8b14-c6061bc9cf2e"/>
<managerType typeId="f9f496c3-c90e-4ecc-9b8d-655a570ed26f" valueTypeId="4e9058d1-bf3d-4053-a351-a9e85d28d0d5"/>
</producedTypes>
<name>TestDocument1</name>
<synonym>
<key>en</key>
<value>Test document1</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Document.TestDocument1.StandardAttribute.Number</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<numberType>String</numberType>
<numberLength>9</numberLength>
<numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
<attributes uuid="36e4250a-ee81-4a6c-b681-91a47f35b13f">
<name>Comment</name>
<synonym>
<key>en</key>
<value>Comment</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
</mdclass:Document>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="10573773-965d-4ce8-b8bd-9e09e9a44cb2">
<producedTypes>
<objectType typeId="0153b768-ca5c-4d74-b5c0-433b91d63c07" valueTypeId="630f7917-8130-4e93-8243-985201ea993e"/>
<refType typeId="93d1d3ef-d79a-406a-9e4a-5e85183d9921" valueTypeId="2bf9b53c-b916-4771-90bf-3867a665a08f"/>
<selectionType typeId="9518d3ee-815c-4cf6-86e6-bb48df89d212" valueTypeId="a7690215-16e5-411e-8d86-c143055098e6"/>
<listType typeId="f1e0e6e5-4988-40e1-a036-6bc1694df31d" valueTypeId="ca9f23c9-86f2-4ed9-9a16-38fe9ac06905"/>
<managerType typeId="f5a260e1-ca64-409f-b32e-2c9fbdf6f2cd" valueTypeId="31740335-d192-4a3d-99c2-7e5ef101c900"/>
</producedTypes>
<name>TestDocument2</name>
<synonym>
<key>en</key>
<value>Test document2</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Document.TestDocument2.StandardAttribute.Number</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<numberType>String</numberType>
<numberLength>9</numberLength>
<numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
<attributes uuid="aa45bdb8-fe81-4f30-9448-05711113d9fd">
<name>Комментарий</name>
<synonym>
<key>en</key>
<value>Комментарий</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
</mdclass:Document>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="53e396f2-4062-4f3f-b68b-053fb237b5cb">
<producedTypes>
<objectType typeId="8bc8b54e-2178-4d5a-b0d0-8d6850e9d3f2" valueTypeId="4cea7358-b55a-4f9c-b6b3-a2b073e3cb70"/>
<refType typeId="f3ae6911-166d-47a8-8e9e-dc4c6dc56124" valueTypeId="9a13522d-805c-4062-a079-3f9f8d286872"/>
<selectionType typeId="d2ceb930-5bcc-4e46-b98b-85dd615b9953" valueTypeId="18b609a5-3778-45e7-b398-962b77ac1a38"/>
<listType typeId="4a346541-b880-4b52-ad23-d57a9fe4c16f" valueTypeId="e57bf5b4-586f-4878-b972-56ed2b442927"/>
<managerType typeId="a28c498a-8b9a-4ac6-83d5-e6ab6d614787" valueTypeId="c646e823-a1cb-4acb-9107-61ac6a443cf1"/>
</producedTypes>
<name>TestDocument3</name>
<synonym>
<key>en</key>
<value>Test document3</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Document.TestDocument3.StandardAttribute.Number</inputByString>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
<createOnInput>Use</createOnInput>
<dataLockControlMode>Managed</dataLockControlMode>
<fullTextSearch>Use</fullTextSearch>
<numberType>String</numberType>
<numberLength>9</numberLength>
<numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique>
<autonumbering>true</autonumbering>
<postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode>
</mdclass:Document>