1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2026-05-19 18:35:35 +02:00

Merge remote-tracking branch 'origin/master' into

feature/issue-1065-move-to-edt-2022-2
This commit is contained in:
Илюхин Артем Васильевич
2022-11-15 11:25:38 +03:00
96 changed files with 3399 additions and 16 deletions
+3
View File
@@ -11,6 +11,7 @@
#### Метаданные
- Превышена максимальная длина ресурса регистра накопления или бухгалтерии (25 знаков)
- Проверка наличия префикса расширения в имени объекта расширения.
#### Формы
@@ -19,6 +20,7 @@
#### Код модулей
- Добавление типизированного значения в не типизированную коллекцию
- Проверка максимального количества допустимых пустых строк
- Чтение отдельных реквизитов объекта из базы данных
- Использование экспортных переменных в модулях объекта
- Использование конструкции "Новый Шрифт"
@@ -34,6 +36,7 @@
### Новые быстрые исправления (Quick-fix)
- Исправление превышения максимального количества допустимых пустых строк
### Исправленные ошибки
@@ -0,0 +1,29 @@
# Checking the maximum number of empty rows
## Noncompliant Code Example
```bsl
Procedure Test()
A1 = 1;
A2 = 2;
EndProcedure
```
## Compliant Solution
```bsl
Procedure Test()
A1 = 1;
A2 = 2;
EndProcedure
```
## See
@@ -0,0 +1,28 @@
# Проверка максимального количства пустых строк
## Неправильно
```bsl
Процедура Тест()
А1 = 1;
A2 = 2;
КонецПроцедуры
```
## Правильно
```bsl
Процедура Тест()
А1 = 1;
A2 = 2;
КонецПроцедуры
```
## См.
@@ -311,6 +311,10 @@
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.ModuleStructureVariablesInRegionCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.ConsecutiveEmptyLinesCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.ReadingAttributesFromDataBaseCheck">
@@ -351,5 +355,11 @@
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.StrictTypesProjectOptionProvider">
</provider>
</extension>
<extension
point="com.e1c.g5.v8.dt.check.fixes">
<fix
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.qfix.ConsecutiveEmptyLinesFix">
</fix>
</extension>
</plugin>
@@ -0,0 +1,142 @@
/*******************************************************************************
* Copyright (C) 2022, 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
*******************************************************************************/
package com.e1c.v8codestyle.bsl.check;
import static com._1c.g5.v8.dt.bsl.model.BslPackage.Literals.MODULE;
import java.text.MessageFormat;
import java.util.Iterator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.nodemodel.ILeafNode;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import com._1c.g5.v8.dt.bsl.model.Module;
import com._1c.g5.v8.dt.bsl.services.BslGrammarAccess;
import com.e1c.g5.v8.dt.check.BslDirectLocationIssue;
import com.e1c.g5.v8.dt.check.DirectLocation;
import com.e1c.g5.v8.dt.check.ICheckParameters;
import com.e1c.g5.v8.dt.check.Issue;
import com.e1c.g5.v8.dt.check.components.BasicCheck;
import com.e1c.g5.v8.dt.check.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.google.inject.Inject;
/**
* Checks consecutive empty lines
*
* @author Artem Iliukhin
*/
public class ConsecutiveEmptyLinesCheck
extends BasicCheck
{
private static final String PATTERN = "(?<=\\n)"; //$NON-NLS-1$
private static final String DEFAULT_NUMBER_OF_EMPTY_LINES = "1"; //$NON-NLS-1$
private static final String NUMBER_OF_EMPTY_LINES = "numberOfEmptyLines"; //$NON-NLS-1$
private static final String CHECK_ID = "module-consecutive-blank-lines"; //$NON-NLS-1$
private final BslGrammarAccess grammarAccess;
/**
* Instantiates a new consecutive empty lines check.
*
* @param grammarAccess the grammar access
*/
@Inject
public ConsecutiveEmptyLinesCheck(BslGrammarAccess grammarAccess)
{
super();
this.grammarAccess = grammarAccess;
}
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.ConsecutiveEmptyLines_Title)
.description(Messages.ConsecutiveEmptyLines_Description)
.issueType(IssueType.CODE_STYLE)
.severity(IssueSeverity.TRIVIAL)
.disable()
.module()
.checkedObjectType(MODULE)
.parameter(NUMBER_OF_EMPTY_LINES, Integer.class, DEFAULT_NUMBER_OF_EMPTY_LINES,
Messages.ConsecutiveEmptyLines_Parameter_title);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor progressMonitor)
{
Module module = (Module)object;
INode node = NodeModelUtils.findActualNodeFor(module);
Iterator<ILeafNode> iterator = node.getLeafNodes().iterator();
int numberAllowedLines = parameters.getInt(NUMBER_OF_EMPTY_LINES);
while (iterator.hasNext())
{
ILeafNode leafNode = iterator.next();
if (leafNode.isHidden())
{
EObject grammarElement = leafNode.getGrammarElement();
int startLine = leafNode.getStartLine();
int endLine = leafNode.getEndLine();
if (grammarElement instanceof TerminalRule && grammarAccess.getWSRule().equals(grammarElement)
&& (endLine - startLine - 1) > numberAllowedLines)
{
String message = MessageFormat.format(
Messages.ConsecutiveEmptyLines_Sequence_of_empty_lines_between__0__and__1__is_greator_than__2,
startLine, endLine, numberAllowedLines);
String[] lines = leafNode.getText().split(PATTERN);
int headLength = getAllowedHeadLength(numberAllowedLines, lines);
DirectLocation directLocation =
new DirectLocation(
leafNode.getOffset() + headLength,
leafNode.getLength() - (headLength + getAllowedTailLength(lines)),
startLine + numberAllowedLines + 1, module);
Issue issue = new BslDirectLocationIssue(message, directLocation);
resultAceptor.addIssue(issue);
}
}
}
}
private int getAllowedHeadLength(int number, String[] lines)
{
int sum = 0;
for (int i = 0; i <= number; i++)
{
sum += lines[i].length();
}
return sum;
}
private int getAllowedTailLength(String[] lines)
{
return lines[lines.length - 1].length();
}
}
@@ -88,6 +88,14 @@ final class Messages
public static String CommonModuleNamedSelfReferenceCheck_title;
public static String ConsecutiveEmptyLines_Description;
public static String ConsecutiveEmptyLines_Parameter_title;
public static String ConsecutiveEmptyLines_Sequence_of_empty_lines_between__0__and__1__is_greator_than__2;
public static String ConsecutiveEmptyLines_Title;
public static String DeprecatedProcedureOutsideDeprecatedRegionCheck_Deprecated_function_out_of_deprecated_area;
public static String DeprecatedProcedureOutsideDeprecatedRegionCheck_description;
@@ -18,7 +18,7 @@ AccessibilityAtClientInObjectModuleCheck_Declared_variable_accessible_AtClient =
AccessibilityAtClientInObjectModuleCheck_Event_handler_should_be_accessible_AtClient = Event handler should be accessible AtClient
AccessibilityAtClientInObjectModuleCheck_Manager_event_handlers_allows_to_be_AtClient = Manager event handlers allows to be AtClient, comma separeted
AccessibilityAtClientInObjectModuleCheck_Manager_event_handlers_allows_to_be_AtClient = Manager event handlers allows to be AtClient, comma-separated
AccessibilityAtClientInObjectModuleCheck_Method_accessible_AtClient = Method accessible AtClient
@@ -82,6 +82,14 @@ CommonModuleNamedSelfReferenceCheck_issue=Excessive named self reference
CommonModuleNamedSelfReferenceCheck_title=Excessive named self reference in common module
ConsecutiveEmptyLines_Description=Consecutive empty lines
ConsecutiveEmptyLines_Parameter_title=Maximum number of empty lines
ConsecutiveEmptyLines_Sequence_of_empty_lines_between__0__and__1__is_greator_than__2=The sequence of empty lines between lines {0} and {1} is more than {2}
ConsecutiveEmptyLines_Title=Consecutive empty lines
DeprecatedProcedureOutsideDeprecatedRegionCheck_Deprecated_function_out_of_deprecated_area=The deprecated procedure (function) "{0}" should be placed in the Deprecated region of the Public region in a common module area
DeprecatedProcedureOutsideDeprecatedRegionCheck_description=Deprecated procedure (function) should be placed in the Deprecated region of the Public region in a common module area
@@ -211,9 +219,9 @@ MethodTooManyPramsCheck_Max_parameters = Max parameters
MethodTooManyPramsCheck_Max_parameters_with_default_value = Max parameters with default value
MethodTooManyPramsCheck_Method_has_more_than__N__params = Method has more than {0} parameters
MethodTooManyPramsCheck_Method_has_more_than__N__params = Method has more then {0} parameters
MethodTooManyPramsCheck_Method_has_more_than__N__params_with_default_value = Method has more than {0} parameters with default value
MethodTooManyPramsCheck_Method_has_more_than__N__params_with_default_value = Method has more then {0} parameters with default value
MethodTooManyPramsCheck_description = Method has to many parameters
@@ -257,7 +265,7 @@ ModuleStructureTopRegionCheck_title = Module structure top region
ModuleUnusedLocalVariableCheck_Description = Unused module local variable check
ModuleUnusedLocalVariableCheck_Probably_variable_not_initilized_yet__0 = Probably local variable "{0}" has not been initiliazed yet
ModuleUnusedLocalVariableCheck_Probably_variable_not_initilized_yet__0 = Probably local variable "{0}" has not been initialized yet
ModuleUnusedLocalVariableCheck_Title = Unused local variable check
@@ -391,7 +399,7 @@ ServerExecutionSafeModeCheck_title = Safe mode is not enabled when calling "Exec
StructureCtorTooManyKeysCheck_Maximum_structure_constructor_keys = Maximum structure constructor keys
StructureCtorTooManyKeysCheck_Structure_constructor_has_more_than__0__keys = Structure constructor has more than {0} keys
StructureCtorTooManyKeysCheck_Structure_constructor_has_more_than__0__keys = Structure constructor has more then {0} keys
StructureCtorTooManyKeysCheck_description = Check structure constructor has too many keys
@@ -28,13 +28,13 @@ AccessibilityAtClientInObjectModuleCheck_description = Метод или пер
AccessibilityAtClientInObjectModuleCheck_title = Метод или переменная доступны НаКлиенте
AttachableEventHandlerNameCheck_Description = Имя программно добавленного обработчика события должно соответствать шаблону
AttachableEventHandlerNameCheck_Description = Имя программно добавленного обработчика события должно соответствовать шаблону
AttachableEventHandlerNameCheck_Event_handler_name_pattern = Шаблон имени обработчика события
AttachableEventHandlerNameCheck_Message = Программно добавленное имя обработчика события "{0}" должно соответствать шаблону
AttachableEventHandlerNameCheck_Message = Программно добавленное имя обработчика события "{0}" должно соответствовать шаблону
AttachableEventHandlerNameCheck_Title = Имя подключаемого обработчка события
AttachableEventHandlerNameCheck_Title = Имя подключаемого обработчика события
CanonicalPragmaCheck_Pragma_0_is_not_written_canonically_correct_spelling_is_1 = Аннотация {0} написана не канонически, правильное написание {1}
@@ -56,9 +56,9 @@ CommitTransactionCheck_No_begin_transaction_for_rollback_transaction=Отсут
CommitTransactionCheck_No_rollback_transaction_for_begin_transaction=Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception=Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception=Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
CommitTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback=Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
CommitTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback=Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
BeginTransactionCheck_Executable_code_between_begin_transaction_and_try=Между "НачатьТранзакцию()" и "Попытка" есть исполняемый код
@@ -72,7 +72,7 @@ CommitTransactionCheck_Transaction_contains_empty_except=Транзакция с
CommitTransactionCheck_Transactions_is_broken=Нарушена схема работы с "ЗафиксироватьТранзакцию()"
CommitTransactionCheck_Transactions_is_broken_des=Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()". Mежду "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение.
CommitTransactionCheck_Transactions_is_broken_des=Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()". Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение.
CommitTransactionCheck_No_rollback_transaction_for_begin_transaction=Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
@@ -80,7 +80,7 @@ RollbackTransactionCheck_No_commit_transaction_for_begin_transaction=Для вы
RollbackTransactionCheck_Transactions_is_broken=Нарушена схема работы с "ОтменитьТранзакцию()"
RollbackTransactionCheck_Transactions_is_broken_des=Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()". Mежду "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение.
RollbackTransactionCheck_Transactions_is_broken_des=Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()". Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение.
CommonModuleNamedSelfReferenceCheck_description=Избыточное обращение по собственному имени
@@ -88,6 +88,14 @@ CommonModuleNamedSelfReferenceCheck_issue=Избыточное обращени
CommonModuleNamedSelfReferenceCheck_title=Избыточное обращение по собственному имени в общем модуле
ConsecutiveEmptyLines_Description=Последовательно расположенные пустые строки
ConsecutiveEmptyLines_Parameter_title=Максимальное количество последовательно расположенных пустых строк
ConsecutiveEmptyLines_Sequence_of_empty_lines_between__0__and__1__is_greator_than__2=Между строками {0} и {1} расположено больше {2} пустых строк
ConsecutiveEmptyLines_Title=Последовательность пустых строк
DeprecatedProcedureOutsideDeprecatedRegionCheck_Deprecated_function_out_of_deprecated_area = Устаревшую процедуру (функцию) "{0}" следует перенести в область общего модуля УстаревшиеПроцедурыИФункции, размещенную внутри области ПрограммныйИнтерфейс
DeprecatedProcedureOutsideDeprecatedRegionCheck_description = Устаревшую процедуру (функцию) следует перенести в область общего модуля УстаревшиеПроцедурыИФункции, размещенную внутри области ПрограммныйИнтерфейс
@@ -256,13 +264,13 @@ ModuleStructureTopRegionCheck_Check_duplicates_of_standard_regions=Дубли с
ModuleStructureTopRegionCheck_Check_order_of_standard_regions=Порядок стандартных областей
ModuleStructureTopRegionCheck_Exclude_region_name=Comma-separated list of excluded region names
ModuleStructureTopRegionCheck_Exclude_region_name=Список имен областей исключений, разделенный запятой
ModuleStructureTopRegionCheck_Region_has_duplicate=Дублирование стандартной области
ModuleStructureTopRegionCheck_Region_has_the_wrong_order=Неправильный порядок стандартной области
ModuleStructureTopRegionCheck_Region_is_not_standard_for_current_type_of_module=Region is not standard for current type of module
ModuleStructureTopRegionCheck_Region_is_not_standard_for_current_type_of_module=Область не стандартная для текущего типа модуля
ModuleStructureEventFormRegionsCheck_Multilevel_nesting_of_regions = Разрешить многоуровневое вложение областей
@@ -376,7 +384,7 @@ RegionEmptyCheck_title = Область пустая
RollbackTransactionCheck_Rollback_transaction_must_be_in_try_catch=Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
SelfReferenceCheck_check_only_existing_form_properties=Проверять только существовующие свойства в форме
SelfReferenceCheck_check_only_existing_form_properties=Проверять только существующие свойства в форме
SelfReferenceCheck_Description=Избыточное обращение внутри модуля через псевдоним "ЭтотОбъект" (к методу, свойству или реквизиту)
@@ -0,0 +1,135 @@
/*******************************************************************************
* Copyright (C) 2022, 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
*******************************************************************************/
package com.e1c.v8codestyle.bsl.qfix;
import java.util.Iterator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.text.edits.DeleteEdit;
import org.eclipse.text.edits.MultiTextEdit;
import org.eclipse.text.edits.TextEdit;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.nodemodel.ILeafNode;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
import org.eclipse.xtext.resource.XtextResource;
import com._1c.g5.v8.dt.bsl.services.BslGrammarAccess;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com.e1c.g5.v8.dt.bsl.check.qfix.IXtextBslModuleFixModel;
import com.e1c.g5.v8.dt.bsl.check.qfix.SingleVariantXtextBslModuleFix;
import com.e1c.g5.v8.dt.check.ICheckParameters;
import com.e1c.g5.v8.dt.check.qfix.components.QuickFix;
import com.e1c.g5.v8.dt.check.settings.ICheckRepository;
import com.e1c.v8codestyle.internal.bsl.BslPlugin;
import com.google.inject.Inject;
/**
* Removes extra empty lines
*
* @author Artem Iliukhin
*/
@QuickFix(checkId = "module-consecutive-blank-lines", supplierId = BslPlugin.PLUGIN_ID)
public class ConsecutiveEmptyLinesFix
extends SingleVariantXtextBslModuleFix
{
private static final String PATTERN = "(?<=\\n)"; //$NON-NLS-1$
private static final String NUMBER_OF_EMPTY_LINES = "numberOfEmptyLines"; //$NON-NLS-1$
private final BslGrammarAccess grammarAccess;
private final ICheckRepository checkRepository;
private final IV8ProjectManager v8ProjectManager;
/**
* Instantiates a new consecutive empty lines fix.
*
* @param grammarAccess the grammar access
* @param checkRepository the check repository
* @param v8ProjectManager the v 8 project manager
*/
@Inject
public ConsecutiveEmptyLinesFix(BslGrammarAccess grammarAccess, ICheckRepository checkRepository,
IV8ProjectManager v8ProjectManager)
{
super();
this.grammarAccess = grammarAccess;
this.checkRepository = checkRepository;
this.v8ProjectManager = v8ProjectManager;
}
@Override
protected void configureFix(FixConfigurer configurer)
{
configurer.interactive(true)
.description(Messages.ConsecutiveEmptyLinesFix_Description)
.details(Messages.ConsecutiveEmptyLinesFix_Details);
}
@Override
protected TextEdit fixIssue(XtextResource state, IXtextBslModuleFixModel model) throws BadLocationException
{
EObject element = model.getElement();
INode node = NodeModelUtils.findActualNodeFor(element);
Iterator<ILeafNode> iterator = node.getLeafNodes().iterator();
IV8Project project = v8ProjectManager.getProject(element);
ICheckParameters parameters = checkRepository.getCheckParameters(getCheckId(), project.getProject());
int numberOfEmtyLines = parameters.getInt(NUMBER_OF_EMPTY_LINES);
MultiTextEdit result = new MultiTextEdit();
while (iterator.hasNext())
{
ILeafNode leafNode = iterator.next();
EObject grammarElement = leafNode.getGrammarElement();
int startLine = leafNode.getStartLine();
int endLine = leafNode.getEndLine();
if (grammarElement instanceof TerminalRule && grammarAccess.getWSRule().equals(grammarElement)
&& (endLine - startLine - 1) > numberOfEmtyLines)
{
String[] lines = leafNode.getText().split(PATTERN);
int headLength = getAllowedHeadLength(numberOfEmtyLines, lines);
int tailLength = leafNode.getLength() - getAllowedTailLength(headLength, lines);
result.addChild(new DeleteEdit(leafNode.getOffset() + headLength, tailLength == 0 ? 1 : tailLength));
}
}
if (result.getChildrenSize() > 0)
{
return result;
}
return null;
}
private int getAllowedHeadLength(int number, String[] lines)
{
int sum = 0;
for (int i = 0; i <= number; i++)
{
sum += lines[i].length();
}
return sum;
}
private int getAllowedTailLength(int sum, String[] lines)
{
return sum + lines[lines.length - 1].length();
}
}
@@ -22,6 +22,8 @@ final class Messages
extends NLS
{
private static final String BUNDLE_NAME = "com.e1c.v8codestyle.bsl.qfix.messages"; //$NON-NLS-1$
public static String ConsecutiveEmptyLinesFix_Description;
public static String ConsecutiveEmptyLinesFix_Details;
public static String RemoveExportFix_Remove_export_keyword_des;
public static String RemoveExportFix_Remove_export_keyword_det;
static
@@ -12,3 +12,6 @@
###############################################################################
RemoveExportFix_Remove_export_keyword_des=Remove Export keyword
RemoveExportFix_Remove_export_keyword_det=Remove Export keyword
ConsecutiveEmptyLinesFix_Details=Clear extra empty lines
ConsecutiveEmptyLinesFix_Description=Clear extra empty lines
@@ -12,3 +12,6 @@
###############################################################################
RemoveExportFix_Remove_export_keyword_des=Удалить ключевое слово Экспорт
RemoveExportFix_Remove_export_keyword_det=Удалить ключевое слово Экспорт
ConsecutiveEmptyLinesFix_Details=Очистить пустые строки
ConsecutiveEmptyLinesFix_Description=Очистить лишние пустые строки
@@ -33,6 +33,7 @@ import com._1c.g5.v8.dt.bsl.resource.BslEventsService;
import com._1c.g5.v8.dt.bsl.resource.DynamicFeatureAccessComputer;
import com._1c.g5.v8.dt.bsl.resource.ExportMethodProvider;
import com._1c.g5.v8.dt.bsl.resource.TypesComputer;
import com._1c.g5.v8.dt.bsl.services.BslGrammarAccess;
import com._1c.g5.v8.dt.bsl.typesystem.ExportMethodTypeProvider;
import com._1c.g5.v8.dt.core.platform.IConfigurationProvider;
import com._1c.g5.v8.dt.core.platform.IResourceLookup;
@@ -89,5 +90,6 @@ class ExternalDependenciesModule
bind(IResourceAccess.class).toService();
bind(ResourceDescriptionsProvider.class).toService();
bind(IConfigurationProvider.class).toService();
bind(BslGrammarAccess.class).toProvider(() -> rsp.get(BslGrammarAccess.class));
}
}
@@ -0,0 +1,13 @@
# Extension object name does not have extension prefix
All added objects (methods and objects, reports, processes and subsystems, and event handlers) of the extension,
as well as the names of native methods and variables of extension modules, must have a prefix corresponding
to the prefix of the extension itself.
## Noncompliant Code Example
## Compliant Solution
## See
@@ -0,0 +1,13 @@
# У имени объекта отсутствует префикс расширения
Все добавленные объекты (методы и объекты, отчеты, обработки и подсистемы, а также обработчики событий) расширения,
а также имена собственных методов и переменных расширяющих модулей, должны иметь префикс,
соответствующий префиксу самого расширения.
## Неправильно
## Правильно
## См.
[Правила создания общих модулей](https://its.1c.ru/db/v8std#content:469:hdoc:2.2)
@@ -98,6 +98,10 @@
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.md.check.SubsystemSynonymTooLongCheck">
</check>
<check
category="com.e1c.v8codestyle.md"
class="com.e1c.v8codestyle.internal.md.ExecutableExtensionFactory:com.e1c.v8codestyle.md.check.ExtensionMdObjectNamePrefixCheck">
</check>
</extension>
</plugin>
@@ -0,0 +1,123 @@
/*******************************************************************************
* Copyright (C) 2022, 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
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT;
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
import com._1c.g5.v8.bm.core.IBmObject;
import com._1c.g5.v8.dt.common.StringUtils;
import com._1c.g5.v8.dt.core.platform.IExtensionProject;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.metadata.mdclass.MdObject;
import com._1c.g5.v8.dt.metadata.mdclass.ObjectBelonging;
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.settings.IssueSeverity;
import com.e1c.g5.v8.dt.check.settings.IssueType;
import com.e1c.v8codestyle.check.StandardCheckExtension;
import com.e1c.v8codestyle.internal.md.CorePlugin;
import com.google.inject.Inject;
/**
* The name of a md object of the extension object does not have a prefix corresponding
* to the prefix of the extension itself.
*
* @author Artem Iliukhin
*/
public class ExtensionMdObjectNamePrefixCheck
extends BasicCheck
{
private static final String CHECK_ID = "extension-md-object-prefix"; //$NON-NLS-1$
private final IV8ProjectManager v8ProjectManager;
/**
* Instantiates a new extension md object name prefix check.
*
* @param v8ProjectManager the v8 project manager
*/
@Inject
public ExtensionMdObjectNamePrefixCheck(IV8ProjectManager v8ProjectManager)
{
this.v8ProjectManager = v8ProjectManager;
}
@Override
public String getCheckId()
{
return CHECK_ID;
}
@Override
protected void configureCheck(CheckConfigurer builder)
{
builder.title(Messages.ExtensionMdObjectNamePrefixCheck_Title)
.description(Messages.ExtensionMdObjectNamePrefixCheck_Description)
.complexity(CheckComplexity.NORMAL)
.severity(IssueSeverity.MINOR)
.issueType(IssueType.CODE_STYLE)
.extension(new StandardCheckExtension(469, getCheckId(), CorePlugin.PLUGIN_ID))
.extension(new MdObjectFromExtensionProjectExtension(v8ProjectManager))
.topObject(MD_OBJECT)
.checkTop()
.containment(MD_OBJECT)
.features(MD_OBJECT__NAME);
}
@Override
protected void check(Object object, ResultAcceptor resultAceptor, ICheckParameters parameters,
IProgressMonitor monitor)
{
MdObject mdObject = (MdObject)object;
IV8Project extension = v8ProjectManager.getProject(mdObject);
if (extension instanceof IExtensionProject
&& (isNonAdoptedParent(mdObject) || isAdoptedParentNonAdoptedChild(mdObject)))
{
String name = mdObject.getName();
String prefix = getNamePrefix((IExtensionProject)extension);
if (!StringUtils.isEmpty(prefix) && !name.startsWith(prefix))
{
resultAceptor.addIssue(MessageFormat
.format(Messages.ExtensionMdObjectNamePrefixCheck_Object_0_should_have_1_prefix, name, prefix),
MD_OBJECT__NAME);
}
}
}
private boolean isAdoptedParentNonAdoptedChild(MdObject mdObject)
{
return !((IBmObject)mdObject).bmIsTop() && mdObject.eContainer() instanceof MdObject
&& ((MdObject)mdObject.eContainer()).getObjectBelonging() == ObjectBelonging.ADOPTED
&& mdObject.getObjectBelonging() != ObjectBelonging.ADOPTED;
}
private boolean isNonAdoptedParent(MdObject mdObject)
{
return ((IBmObject)mdObject).bmIsTop() && mdObject.getObjectBelonging() != ObjectBelonging.ADOPTED;
}
private String getNamePrefix(IExtensionProject extension)
{
return extension.getConfiguration().getNamePrefix();
}
}
@@ -0,0 +1,55 @@
/*******************************************************************************
* Copyright (C) 2022, 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
*******************************************************************************/
package com.e1c.v8codestyle.md.check;
import com._1c.g5.v8.dt.core.platform.IExtensionProject;
import com._1c.g5.v8.dt.core.platform.IV8Project;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.metadata.mdclass.MdObject;
import com.e1c.g5.v8.dt.check.components.IBasicCheckExtension;
import com.e1c.g5.v8.dt.check.ext.ITopObjectFilter;
/**
* The extension TOP MD object that nonadopted in Extension Configuration.
*
* @author Artem Iliukhin
*/
public class MdObjectFromExtensionProjectExtension
implements IBasicCheckExtension
{
private final IV8ProjectManager v8ProjectManager;
/**
* Instantiates a new in extension md object extension.
*
* @param v8ProjectManager the v 8 project manager
*/
public MdObjectFromExtensionProjectExtension(IV8ProjectManager v8ProjectManager)
{
this.v8ProjectManager = v8ProjectManager;
}
@Override
public ITopObjectFilter contributeTopObjectFilter()
{
return (object, parameters) -> {
if (object instanceof MdObject)
{
IV8Project extension = v8ProjectManager.getProject(object);
return extension instanceof IExtensionProject;
}
return false;
};
}
}
@@ -47,6 +47,9 @@ final class Messages
public static String DbObjectAnyRefCheck_AnyRef;
public static String DbObjectAnyRefCheck_Description;
public static String DbObjectAnyRefCheck_Title;
public static String ExtensionMdObjectNamePrefixCheck_Description;
public static String ExtensionMdObjectNamePrefixCheck_Object_0_should_have_1_prefix;
public static String ExtensionMdObjectNamePrefixCheck_Title;
public static String MdObjectNameLength_description;
public static String MdObjectNameLength_Maximum_name_length_description;
public static String MdObjectNameLength_message;
@@ -53,6 +53,12 @@ CommonModuleNameServerCallPostfixCheck_Common_module_name_description=Common mod
CommonModuleNameServerCallPostfixCheck_Common_module_postfix_title=Common module should end with correct postfix
ExtensionMdObjectNamePrefixCheck_Description=The object name of the extension object does not have a prefix corresponding to the prefix of the extension itself
ExtensionMdObjectNamePrefixCheck_Object_0_should_have_1_prefix=The object "{0}" should have "{1}" prefix
ExtensionMdObjectNamePrefixCheck_Title=Extension object name does not have extension prefix
MdListObjectPresentationCheck_Neither_Object_presentation_nor_List_presentation_is_not_filled = Neither Object presentation nor List presentation is not filled
MdListObjectPresentationCheck_decription = Neither Object presentation nor List presentation is not filled
@@ -54,6 +54,12 @@ CommonModuleNameServerCallPostfixCheck_Common_module_name_description=Общий
CommonModuleNameServerCallPostfixCheck_Common_module_postfix_title=Общий модуль должен именоваться с постфиксом
ExtensionMdObjectNamePrefixCheck_Description=Имя объекта в расширении не содержит префикс расширения
ExtensionMdObjectNamePrefixCheck_Object_0_should_have_1_prefix=Имя объекта "{0}" должно содержать префикс "{1}"
ExtensionMdObjectNamePrefixCheck_Title=Имя объекта в расширении должно содержать префикс расширения
MdListObjectPresentationCheck_Neither_Object_presentation_nor_List_presentation_is_not_filled = Не заполнено ни представление объекта, ни представление списка
MdListObjectPresentationCheck_decription = Не заполнено ни представление объекта, ни представление списка
@@ -8,9 +8,13 @@ Fragment-Host: com.e1c.v8codestyle.bsl;bundle-version="[0.4.0,0.5.0)"
Automatic-Module-Name: com.e1c.v8codestyle.md.itests
Bundle-RequiredExecutionEnvironment: JavaSE-11
Bundle-Localization: fragment
Import-Package: com._1c.g5.v8.dt.core.platform;version="[10.0.0,11.0.0)",
Import-Package: com._1c.g5.v8.dt.core.naming;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.core.platform;version="[10.0.0,11.0.0)",
com._1c.g5.v8.dt.form.model;version="[11.0.0,12.0.0)",
com._1c.g5.v8.dt.md.naming;version="[5.1.0,6.0.0)",
com._1c.g5.v8.dt.testing;version="[3.1.0,4.0.0)",
com._1c.g5.v8.dt.ui.util;version="[6.0.0,7.0.0)",
com._1c.g5.v8.dt.ui.validation;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.validation.marker;version="[5.0.0,6.0.0)",
com.e1c.g5.v8.dt.testing.check;version="[1.0.0,2.0.0)",
org.junit;version="[4.13.0,5.0.0)"
@@ -0,0 +1,10 @@
Procedure MyCorrectProcedureBeforeAfter(Param) Export
If Param > 10 Then
Param = 0;
EndIf
EndProcedure
@@ -0,0 +1,9 @@
Procedure MyCorrectProcedureBeforeAfter(Param) Export
If Param > 10 Then
Param = 0;
EndIf
EndProcedure
@@ -0,0 +1,51 @@
/**
* Copyright (C) 2022, 1C
*/
package com.e1c.v8codestyle.bsl.check.itests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.junit.Test;
import com._1c.g5.v8.dt.validation.marker.IExtraInfoKeys;
import com._1c.g5.v8.dt.validation.marker.Marker;
import com.e1c.v8codestyle.bsl.check.ConsecutiveEmptyLinesCheck;
/**
* Tests for {@link ConsecutiveEmptyLinesCheck} check.
*
* @author Artem Iliukhin
*/
public class ConsecutiveEmptyLinesCheckTest
extends AbstractSingleModuleTestBase
{
public ConsecutiveEmptyLinesCheckTest()
{
super(ConsecutiveEmptyLinesCheck.class);
}
@Test
public void testWithManyEmptyLines() throws Exception
{
updateModule(FOLDER_RESOURCE + "empty-lines.bsl");
List<Marker> markers = getModuleMarkers();
assertFalse(markers.isEmpty());
assertEquals("3", markers.get(0).getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY));
}
@Test
public void testWithOneEmptyLine() throws Exception
{
updateModule(FOLDER_RESOURCE + "one-empty-line.bsl");
List<Marker> markers = getModuleMarkers();
assertTrue(markers.isEmpty());
}
}
@@ -0,0 +1,117 @@
/**
* Copyright (C) 2022, 1C
*/
package com.e1c.v8codestyle.bsl.fix.itests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.io.InputStream;
import java.util.Collection;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.junit.Test;
import com._1c.g5.v8.bm.core.IBmObject;
import com._1c.g5.v8.dt.core.naming.ISymbolicLinkLocalizer;
import com._1c.g5.v8.dt.core.platform.IDtProject;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.md.naming.MdSymbolicLinkLocalizer;
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
import com._1c.g5.v8.dt.ui.util.OpenHelper;
import com._1c.g5.v8.dt.ui.validation.BmMarkerWrapper;
import com._1c.g5.v8.dt.validation.marker.IMarkerWrapper;
import com._1c.g5.v8.dt.validation.marker.Marker;
import com._1c.g5.wiring.ServiceAccess;
import com.e1c.g5.v8.dt.check.qfix.FixProcessHandle;
import com.e1c.g5.v8.dt.check.qfix.FixVariantDescriptor;
import com.e1c.g5.v8.dt.check.qfix.IFixManager;
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
import com.e1c.v8codestyle.bsl.qfix.ConsecutiveEmptyLinesFix;
/**
* Tests for {@link ConsecutiveEmptyLinesFix} fix.
*
* @author Artem Iliukhin
*/
public class ConsecutiveEmptyLinesFixTest
extends CheckTestBase
{
private static final String PROJECT_NAME = "ConsecutiveEmptyLines";
private static final String FQN_COMMON_MODULE = "CommonModule.CommonModule";
private static final String CHECK_ID = "module-consecutive-blank-lines";
private static final String DESCRIPTION = "Clear extra empty lines";
private static final String COMMON_MODULE_FILE_NAME = "/src/CommonModules/CommonModule/Module.bsl";
private IFixManager fixManager = ServiceAccess.get(IFixManager.class);
private IV8ProjectManager projectManager = ServiceAccess.get(IV8ProjectManager.class);
private ISymbolicLinkLocalizer symbolicLinkLocalizer = new MdSymbolicLinkLocalizer();
private final OpenHelper openHelper = new OpenHelper();
@Test
public void testApplyFix() throws Exception
{
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
assertNotNull(dtProject);
IBmObject object = getTopObjectByFqn(FQN_COMMON_MODULE, dtProject);
assertTrue(object instanceof CommonModule);
CommonModule module = (CommonModule)object;
Marker marker = getFirstMarker(CHECK_ID, module.getModule(), dtProject);
assertNotNull(marker);
applyFix(marker, dtProject);
IFile file = dtProject.getWorkspaceProject().getFile(COMMON_MODULE_FILE_NAME);
try (InputStream in = file.getContents())
{
file.setContents(in, true, true, new NullProgressMonitor());
}
waitForDD(dtProject);
object = getTopObjectByFqn(FQN_COMMON_MODULE, dtProject);
assertTrue(object instanceof CommonModule);
module = (CommonModule)object;
waitForDD(dtProject);
marker = getFirstMarker(CHECK_ID, module.getModule(), dtProject);
assertNull(marker);
}
/**
* Apply fix for the marker.
*
* @param marker the marker
* @param dtProject the DT project of the marker
*/
private void applyFix(Marker marker, IDtProject dtProject)
{
IMarkerWrapper markerWrapper = new BmMarkerWrapper(marker, dtProject.getWorkspaceProject(), bmModelManager,
projectManager, symbolicLinkLocalizer, openHelper);
FixProcessHandle handle = fixManager.prepareFix(markerWrapper, dtProject);
FixVariantDescriptor variantDescr = null;
Collection<FixVariantDescriptor> variants = fixManager.getApplicableFixVariants(handle);
for (FixVariantDescriptor variant : variants)
{
if (variant.getDescription().matches(DESCRIPTION))
{
variantDescr = variant;
}
}
fixManager.selectFixVariant(variantDescr, handle);
fixManager.executeFix(handle, new NullProgressMonitor());
fixManager.finishFix(handle);
}
}
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ConsecutiveEmptyLines</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>
@@ -0,0 +1,8 @@
{
"version": 1,
"settings": {
"module-consecutive-blank-lines": {
"enabled": true
}
}
}
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="95f19c60-97f4-4bb7-931b-efe6de87dd13">
<name>CommonModule</name>
<synonym>
<key>en</key>
<value>Common module</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,8 @@
Procedure Test()
A1 = 1;
A2 = 2;
EndProcedure
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9d8f8016-ae99-449f-8d99-ed17661cd97a">
<name>ConsecutiveEmptyLines</name>
<synonym>
<key>en</key>
<value>Consecutive empty lines</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="f892fa7b-c598-4028-89d6-127ece6f5a7a"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2b616abd-7e14-4a60-9b9b-8946e682cdbe"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="50c919bc-bc73-406c-ac9f-8fc416737452"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="fe99a0d6-e31f-433b-83d4-515219fc433d"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="403efeb9-d75b-4f8e-82d4-6a619a0ec6d4"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="8de95119-3c48-44ef-8f8f-2a5e1ccc45ec"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="00b5c590-680e-4465-8c9a-75caf8114588"/>
<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="11695685-8cd5-4e80-ace7-3c114a76df34">
<name>English</name>
<synonym>
<key>en</key>
<value>English</value>
</synonym>
<languageCode>en</languageCode>
</languages>
<commonModules>CommonModule.CommonModule</commonModules>
</mdclass:Configuration>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,210 @@
/*******************************************************************************
* Copyright (C) 2022, 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
*******************************************************************************/
package com.e1c.v8codestyle.md.check.itests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
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.SingleProjectReadOnlyCheckTestBase;
import com.e1c.v8codestyle.internal.md.CorePlugin;
import com.e1c.v8codestyle.md.check.ExtensionMdObjectNamePrefixCheck;
/**
* Tests for {@link ExtensionMdObjectNamePrefixCheck} check.
*
* @author Artem Iliukhin
*/
public class ExtensionMdObjectNamePrefixCheckTest
extends SingleProjectReadOnlyCheckTestBase
{
private static final String CHECK_ID = "extension-md-object-prefix"; //$NON-NLS-1$
private static final String PROJECT_NAME = "ExtensionObjectNamePrefixCheck";
private static final String PROJECT_EXTENSION_NAME = "ExtensionObjectNamePrefixCheck_Extension";
@Override
public void setUp() throws CoreException
{
IProject project = testingWorkspace.getProject(PROJECT_NAME);
if (!project.exists() || !project.isAccessible())
{
try
{
testingWorkspace.cleanUpWorkspace();
openProjectAndWaitForValidationFinish(PROJECT_NAME);
}
catch (CoreException e)
{
CorePlugin.logError(e);
}
}
super.setUp();
}
@Override
protected String getTestConfigurationName()
{
return PROJECT_EXTENSION_NAME;
}
@Test
public void testNonCompliantPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("CommonModule.NonCompliant", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("CommonModule.Ext1_Compliant", dtProject);
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
@Test
public void testNonCompliantCatalogAttributePrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.Catalog", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testNonCompliantCatalogFormPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogFormNonCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantCatalogFormPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogFormCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
@Test
public void testNonCompliantTemplatePrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogTemplateNonCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantTemplatePrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogTemplateCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
@Test
public void testNonCompliantTabularPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogTabularNonCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantTabularPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogTabular", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
@Test
public void testNonCompliantCommandPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogCommandNonCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantCommandPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Catalog.CatalogCommand", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
@Test
public void testNonCompliantTabularDocPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Document.DocumentNonCompliant", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNotNull(marker);
}
@Test
public void testCompliantTabularDocPrefix() throws Exception
{
IDtProject dtProject = getProject();
assertNotNull(dtProject);
long id = getTopObjectIdByFqn("Document.Document", dtProject);
Marker marker = getFirstNestedMarker(CHECK_ID, id, dtProject);
assertNull(marker);
}
}
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ExtensionObjectNamePrefixCheck</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>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19
@@ -0,0 +1,51 @@
<?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="eaa962f1-66b1-419e-bbd1-dd90ae2e3108">
<producedTypes>
<objectType typeId="49de8bf0-0000-418a-b140-255e3d7f7e84" valueTypeId="758c412a-6b32-48be-b54c-2efe9c527a5a"/>
<refType typeId="80b03fb8-cc95-4265-821d-cfe338d62b6b" valueTypeId="fe8eba9a-9289-4cc3-b1ac-434f2b71043f"/>
<selectionType typeId="cdb9aa48-a03a-402f-b686-7478d14399c5" valueTypeId="cf78dd5d-0dd3-46ae-a3d3-f22eca6621fc"/>
<listType typeId="7e0941d8-0696-4084-8705-3a7cbd8b7565" valueTypeId="673daf41-0ec8-48bc-8cf2-1e2303a12056"/>
<managerType typeId="ceb7a7f3-f4f8-4cba-bf05-e7089cd6db06" valueTypeId="fcad2a28-d6f4-474b-8edc-e28fe6c549dd"/>
</producedTypes>
<name>Catalog</name>
<synonym>
<key>en</key>
<value>Catalog</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.Catalog.StandardAttribute.Code</inputByString>
<inputByString>Catalog.Catalog.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="8c62a8fb-96df-4267-ba95-8dc2b253c8af">
<name>Attribute</name>
<synonym>
<key>en</key>
<value>Attribute</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</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>
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="76352e82-5469-41ff-a858-5e5dd1262122">
<producedTypes>
<objectType typeId="b5a58ed2-02ce-444e-a8fa-254ceef5b15c" valueTypeId="23d4cc0c-b0ad-4f3b-8cbc-ea63c66a9f2c"/>
<refType typeId="0ec19459-c577-4614-a8d3-2e1ec6275a9e" valueTypeId="8c5497d5-5cda-4134-ba00-5fa3fa093355"/>
<selectionType typeId="0a4b80bb-eec7-4071-a365-b576da471429" valueTypeId="90efcc6d-534d-4cc1-9774-44b6ae591130"/>
<listType typeId="74c969db-2a1a-4744-914d-cd62db851606" valueTypeId="4c444c02-11cb-42e2-9975-12eceb5d86bc"/>
<managerType typeId="24eba0b3-a3cf-49b7-8b7f-5be3aabb308c" valueTypeId="53eb01b4-8d30-4094-84f4-eda4049f7ed5"/>
</producedTypes>
<name>CatalogCommand</name>
<synonym>
<key>en</key>
<value>Catalog command</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogCommand.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogCommand.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>
<commands uuid="3498ff36-7fcb-415b-b8d9-ee547304ee08">
<name>Command</name>
<synonym>
<key>en</key>
<value>Command</value>
</synonym>
<group>ActionsPanelTools</group>
<representation>Auto</representation>
</commands>
</mdclass:Catalog>
@@ -0,0 +1,7 @@
&AtClient
Procedure CommandProcessing(CommandParameter, CommandExecuteParameters)
//TODO: Paste handler content.
//FormParameters = New Structure("", );
//OpenForm("Catalog.Catalog.ListForm", FormParameters, CommandExecuteParameters.Source, CommandExecuteParameters.Uniqueness, CommandExecuteParameters.Window, CommandExecuteParameters.URL);
EndProcedure
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3a2d846c-3e64-468f-9318-31a2d48d1713">
<producedTypes>
<objectType typeId="4bd1e0fc-aa49-4115-8bd8-646942c616b8" valueTypeId="4b107ec5-647b-4270-9e10-b806aa483935"/>
<refType typeId="66a8f938-847a-4775-810f-b27565f32cde" valueTypeId="8364be41-c0da-40d6-b3f6-d125cb16e210"/>
<selectionType typeId="6b9007c5-478b-4031-acd9-1a94d36c26a4" valueTypeId="0e8cce65-f2c2-4bb8-b2a4-f52b6586fa46"/>
<listType typeId="bba0fc9a-2739-43c0-af86-0ceaf2d48e3b" valueTypeId="6876606a-b235-4fdc-9d47-e93f4c412317"/>
<managerType typeId="7a65f99e-0d6a-4072-8ce2-a860df5ed85a" valueTypeId="8575b699-5c2d-46a1-af6f-e3db44c8bb3d"/>
</producedTypes>
<name>CatalogCommandNonCompliant</name>
<synonym>
<key>en</key>
<value>Catalog command non compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogCommandNonCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogCommandNonCompliant.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>
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="fa1c0985-93c8-4cff-8af5-0b5a3aff8439">
<producedTypes>
<objectType typeId="b2f6a24a-8beb-4ad6-91f7-5345d69b0e94" valueTypeId="1cfdf352-eed1-45c9-83c6-454005aa9065"/>
<refType typeId="e270d943-f939-40b9-b8d0-f7cf40623f25" valueTypeId="6a8838b6-85a2-4011-84b5-b7c2b1818ef2"/>
<selectionType typeId="70197908-2045-4a60-83ac-4c753fbfaf80" valueTypeId="1a010e7a-c39c-4bc8-b70c-8ed755010d3a"/>
<listType typeId="e9198b9b-a4fc-456c-aea7-d790cb54d960" valueTypeId="d3180ca1-dc36-4600-ac5c-77cbe7e70cf0"/>
<managerType typeId="6e6cf9f3-8b86-474f-9b77-4e914180447b" valueTypeId="abfc70e0-6946-4d6e-89fe-c82cf3b3382d"/>
</producedTypes>
<name>CatalogFormCompliant</name>
<synonym>
<key>en</key>
<value>Catalog form compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogFormCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogFormCompliant.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>
<defaultObjectForm>Catalog.CatalogFormCompliant.Form.ItemForm</defaultObjectForm>
<forms uuid="3d4ae384-792d-49df-bfb6-b17510f1bf0c">
<name>ItemForm</name>
<synonym>
<key>en</key>
<value>Item form</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Object</name>
<id>1</id>
<valueType>
<types>CatalogObject.CatalogFormCompliant</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="53196f2a-b8fd-49f3-b929-e7268acc4b23">
<producedTypes>
<objectType typeId="b7a052cd-c8d2-49b9-a43c-bd3f8bcc4b07" valueTypeId="1f66ae3e-b80b-4830-aacb-382f4be92b30"/>
<refType typeId="d7a154e2-c615-4122-b6eb-f8c3dcc0158d" valueTypeId="36c41485-956e-4709-87fc-017c5bbd946d"/>
<selectionType typeId="50f78946-9cc8-48ca-ae71-b3df75358941" valueTypeId="c6e8aaba-1e1d-4fc8-956b-eb3717bdeeb9"/>
<listType typeId="b8303edc-abd8-49f2-9cf2-2e238f56d98b" valueTypeId="a8d045f5-506a-4461-b59f-4fd0523159bf"/>
<managerType typeId="611aeec8-e29b-4002-89c9-b16ea192a8f8" valueTypeId="30c4ecca-6f8f-4e13-97db-72b38f387d1a"/>
</producedTypes>
<name>CatalogFormNonCompliant</name>
<synonym>
<key>en</key>
<value>Catalog form non compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogFormNonCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogFormNonCompliant.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>
<defaultObjectForm>Catalog.CatalogFormNonCompliant.Form.ItemForm</defaultObjectForm>
<forms uuid="2954e0ba-087f-4478-a780-c7d609428172">
<name>ItemForm</name>
<synonym>
<key>en</key>
<value>Item form</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Object</name>
<id>1</id>
<valueType>
<types>CatalogObject.CatalogFormNonCompliant</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="abda7415-233b-4265-9d2e-9a9a32d26496">
<producedTypes>
<objectType typeId="8451b3ee-6b3f-4355-a797-9ed955a62358" valueTypeId="a76faf7a-9cb9-4b46-b1ec-6a9c5c5ce7a9"/>
<refType typeId="ee19c001-8955-4b41-b98d-97c79db89349" valueTypeId="37719c61-7a62-49d7-b2a4-42581b734708"/>
<selectionType typeId="d06e8190-d6d4-4417-a2e9-cb0109f77d4b" valueTypeId="cad4bf07-d5e1-459f-a3a2-509116ac6570"/>
<listType typeId="7b2a5821-78c5-4e70-bbd9-5feb4619dc9b" valueTypeId="8919f2a2-f389-4bbb-ac6d-07145defea26"/>
<managerType typeId="cef2b803-c2c5-44b1-82ce-45c79e97778c" valueTypeId="be3979d9-76a1-44dc-85a2-3f8e0695b6f2"/>
</producedTypes>
<name>CatalogTabular</name>
<synonym>
<key>en</key>
<value>Catalog tabular</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogTabular.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogTabular.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>
<tabularSections uuid="1720b838-b5b0-45d1-8a36-5df7dce2eba1">
<producedTypes>
<objectType typeId="ab926791-b373-48d7-a125-9139951b4c2e" valueTypeId="794c3f48-5c05-4678-8b79-66d1fc19c2ff"/>
<rowType typeId="9b683940-e0bc-45b6-b74b-2d6f59d022a6" valueTypeId="6094e78d-6d3e-47a9-a3c7-3d094ede0e3f"/>
</producedTypes>
<name>TabularSection</name>
<synonym>
<key>en</key>
<value>Tabular section</value>
</synonym>
</tabularSections>
</mdclass:Catalog>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="0f0755fc-c39c-4227-9b34-9f321bead131">
<producedTypes>
<objectType typeId="4b084f3e-030f-4c1d-bcce-8a174231aefe" valueTypeId="0057ee63-64c8-4c04-979b-db882cabc034"/>
<refType typeId="4e0961fe-615f-4371-aeb2-0791803c08b1" valueTypeId="d28f1a1e-ae78-4b58-9b81-74289dc612d0"/>
<selectionType typeId="2f4a5997-6bd6-41e9-99ca-b7001bae1883" valueTypeId="c0ce2251-d91c-49c3-8ec9-f7d8d1cac2b0"/>
<listType typeId="d88c10f5-04b1-4784-a9f9-acb9dd0b38e5" valueTypeId="eac64b71-bfb3-453b-93d5-f53bcd23cafa"/>
<managerType typeId="e39677bf-9e13-4100-9b29-9a07b6d549ba" valueTypeId="d0586a5d-cf0f-4bc6-9590-e8586358c2ae"/>
</producedTypes>
<name>CatalogTabularNonCompliant</name>
<synonym>
<key>en</key>
<value>Catalog tabular non compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogTabularNonCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogTabularNonCompliant.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>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="38dab78e-6e3b-452f-bd45-5d3a3dfe283d">
<producedTypes>
<objectType typeId="c8df1924-ad9b-46be-9081-0656dffdd05c" valueTypeId="5b9824e5-007e-4c20-8b9c-a66bbf28b61d"/>
<refType typeId="efa4a495-82db-4d88-bc3e-363dab87c2fe" valueTypeId="46e74f07-6001-448e-87c6-34181220f84d"/>
<selectionType typeId="7247f425-828c-4861-b40b-c4f486a29e22" valueTypeId="420915f3-4e9f-4328-b80a-d4143353a63b"/>
<listType typeId="0205040a-1738-4f4a-a32a-7b20885cb7bf" valueTypeId="0804dad9-de10-4872-9932-56ae99f1a349"/>
<managerType typeId="3f62e1be-157f-4e1f-ab57-b1a4878be38a" valueTypeId="3610d4cf-4e5c-449e-9b9e-1babe28f0b73"/>
</producedTypes>
<name>CatalogTemplateCompliant</name>
<synonym>
<key>en</key>
<value>Catalog template compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogTemplateCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogTemplateCompliant.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>
<templates uuid="55b2708b-6fec-49fd-98de-639fb1513f3e">
<name>Template</name>
<synonym>
<key>en</key>
<value>Template</value>
</synonym>
</templates>
</mdclass:Catalog>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>en</defaultLanguage>
<languageInfo>
<id>en</id>
<code>English</code>
<description>English</description>
</languageInfo>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</document>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="be3619d8-8e42-438b-8bfd-55ddebad8d11">
<producedTypes>
<objectType typeId="7e92e64c-699f-457c-afde-bbc2e9c48c17" valueTypeId="819d6e2d-0d3e-4aca-8aea-02e2f325c850"/>
<refType typeId="2f106a26-e65f-4967-944d-f3faec1cb064" valueTypeId="a59cf910-7ca0-467b-9f70-60022fa104db"/>
<selectionType typeId="9dda1621-7dd8-45d0-88ec-648fbd4c13b7" valueTypeId="c0c9167e-e912-4d69-9187-2d0b0a1a0c1a"/>
<listType typeId="469e2ca0-3399-4c25-ba5b-21b7dcc9b0e1" valueTypeId="d505baf9-d8ff-45a8-9c63-302eac58f3b7"/>
<managerType typeId="aae39d84-cd09-4f33-b009-c55a1e680fdf" valueTypeId="0faca196-ebb5-413e-8d85-a42448d6dbdc"/>
</producedTypes>
<name>CatalogTemplateNonCompliant</name>
<synonym>
<key>en</key>
<value>Catalog template non compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Catalog.CatalogTemplateNonCompliant.StandardAttribute.Code</inputByString>
<inputByString>Catalog.CatalogTemplateNonCompliant.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>
<templates uuid="873847e1-1eb0-4160-84d2-a250d43cdc21">
<name>Template</name>
<synonym>
<key>en</key>
<value>Template</value>
</synonym>
</templates>
</mdclass:Catalog>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>en</defaultLanguage>
<languageInfo>
<id>en</id>
<code>English</code>
<description>English</description>
</languageInfo>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</document>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="74135936-eb47-4430-bb3d-e57b700485ae">
<name>Compliant</name>
<synonym>
<key>en</key>
<value>Compliant</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,3 @@
Procedure Complient()
EndProcedure
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="340dc114-4e96-40a3-93d1-bdbfad398e85">
<name>ExtensionObjectNamePrefixCheck</name>
<synonym>
<key>en</key>
<value>Extension object name prefix check</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0c3823ef-7f1d-421d-a463-117a551859ea"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="538e0a17-2bab-4868-8fb7-fe2fe6e2ec9d"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="cdbc3715-1025-440e-8614-50650d727198"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="e3155842-404a-47f7-8b88-fa6e68ff0211"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="43eb7f4e-81f6-4303-9e0d-57f539190ffe"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="313219ca-682f-4842-b68c-ead9dfc1867b"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="aa2f6f11-60fc-474d-b1dd-579f71adb1b5"/>
<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="49c6118f-6405-4621-9b53-6180a71602e3">
<name>English</name>
<synonym>
<key>en</key>
<value>English</value>
</synonym>
<languageCode>en</languageCode>
</languages>
<commonModules>CommonModule.Compliant</commonModules>
<catalogs>Catalog.Catalog</catalogs>
<catalogs>Catalog.CatalogFormCompliant</catalogs>
<catalogs>Catalog.CatalogTemplateCompliant</catalogs>
<catalogs>Catalog.CatalogFormNonCompliant</catalogs>
<catalogs>Catalog.CatalogTemplateNonCompliant</catalogs>
<catalogs>Catalog.CatalogTabular</catalogs>
<catalogs>Catalog.CatalogTabularNonCompliant</catalogs>
<catalogs>Catalog.CatalogCommand</catalogs>
<catalogs>Catalog.CatalogCommandNonCompliant</catalogs>
<documents>Document.Document</documents>
<documents>Document.DocumentNonCompliant</documents>
</mdclass:Configuration>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,56 @@
<?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="b06b524e-97dd-4db4-abbd-0dbe864ef3e9">
<producedTypes>
<objectType typeId="7baaaa53-a30a-45bb-a238-e3e32803a8be" valueTypeId="edcd31ab-84c0-48a9-8b26-4c5e1980f8e7"/>
<refType typeId="de4d2f4d-9906-416f-9b33-955deb7b8d43" valueTypeId="03cff808-e0b1-4224-85db-8d5c1afa24d6"/>
<selectionType typeId="a451ef62-86c5-4942-9aae-0adc9712fc86" valueTypeId="26498fa3-d9cd-42c1-b13b-772d78a95655"/>
<listType typeId="79c350e6-fc78-448d-9335-c645aed678af" valueTypeId="64541864-3886-4256-a24f-120769a70534"/>
<managerType typeId="1854a729-965f-4ee4-9e22-8f0ff58de0c4" valueTypeId="35174587-5e86-4548-b5e6-a64fc376b7e3"/>
</producedTypes>
<name>Document</name>
<synonym>
<key>en</key>
<value>Document</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Document.Document.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>
<tabularSections uuid="242826bc-562f-40e5-800a-1ed1e82699ff">
<producedTypes>
<objectType typeId="b5d222ad-78f7-4710-8efa-f17e842f72c4" valueTypeId="70e18f3f-31fe-4104-a4c7-1c38c41b87fe"/>
<rowType typeId="4c6597db-45a8-4375-98ad-f91ffbb8c62c" valueTypeId="b37f7a26-23b9-4d46-b795-3fb11719076a"/>
</producedTypes>
<name>TabularSection</name>
<synonym>
<key>en</key>
<value>Tabular section</value>
</synonym>
<attributes uuid="9d0937dd-b40d-4aaf-8da0-3201ec8ecaa4">
<name>Attribute</name>
<synonym>
<key>en</key>
<value>Attribute</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
</mdclass:Document>
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="38352939-5b1b-478c-9c45-cc0e02de5e76">
<producedTypes>
<objectType typeId="32e560bf-da03-4737-ac83-1b58c3acd6a9" valueTypeId="0616bde8-1445-43b2-8218-42e42ad8d026"/>
<refType typeId="dd5eb426-8cf3-415e-a9c5-796395a94c09" valueTypeId="ef5ebdd1-eb20-4eea-9fbc-a2ce59a211e6"/>
<selectionType typeId="186406cb-d1f7-46fc-bf17-6773b2882bd1" valueTypeId="07faa43a-d05a-42da-ac9e-ed24259ccf40"/>
<listType typeId="112143dc-1709-4cfb-b879-a1e7210a12f1" valueTypeId="88acb680-ee5f-4b30-b404-006e704ab99a"/>
<managerType typeId="bc812b20-891f-4045-9cad-01a3dfe3d8f3" valueTypeId="ab4d1229-d678-4c0d-b9e9-533a79783e07"/>
</producedTypes>
<name>DocumentNonCompliant</name>
<synonym>
<key>en</key>
<value>Document non compliant</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<inputByString>Document.DocumentNonCompliant.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>
<tabularSections uuid="590fd3f6-dbda-4072-a51c-70a3ebc417b7">
<producedTypes>
<objectType typeId="178a18fa-87cb-4570-aafd-3cf34f6133cf" valueTypeId="695719a4-fe15-4482-8a0b-fb02a384125d"/>
<rowType typeId="62fa3442-c1dc-4e54-b36e-2775f4cf4632" valueTypeId="11cfb007-190b-469d-a694-5c106ee1138e"/>
</producedTypes>
<name>TabularSection</name>
<synonym>
<key>en</key>
<value>Tabular section</value>
</synonym>
</tabularSections>
</mdclass:Document>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ExtensionObjectNamePrefixCheck_Extension</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.V8ExtensionNature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19
Base-Project: ExtensionObjectNamePrefixCheck
@@ -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" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="bde50b37-0a2d-4096-9a7f-baf10d7500de" extendedConfigurationObject="eaa962f1-66b1-419e-bbd1-dd90ae2e3108">
<producedTypes>
<objectType typeId="770dacf7-d940-43ed-b0ff-6510a8860796" valueTypeId="474ded7d-1103-47c2-83e1-871c6114471b"/>
<refType typeId="b8a1c30e-110f-46f7-8721-2090dd1653f5" valueTypeId="3735d2f4-d21c-4559-b13c-01dc57ff59c1"/>
<selectionType typeId="2785e75a-ff8d-4fa5-a053-d3fcce3c471e" valueTypeId="08a4fb44-d707-450e-9806-4549bcfc85c9"/>
<listType typeId="b5c77b55-abe2-4c91-bcb7-b151f41bfbcf" valueTypeId="e76a02e6-f952-4ea4-a807-2235fa5faa0d"/>
<managerType typeId="d02cf261-294c-4c34-8970-5549aa8a52f4" valueTypeId="797a8878-91f2-42c7-8839-353667ffd94c"/>
</producedTypes>
<name>Catalog</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<attributes uuid="42f89a27-3152-43ed-b3c0-0ef22d7e2ea4" extendedConfigurationObject="8c62a8fb-96df-4267-ba95-8dc2b253c8af">
<name>Attribute</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicFeatureExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<typeExtension>
<types>
<state>Checked</state>
<type>String</type>
</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</typeExtension>
</extension>
</attributes>
<attributes uuid="5afd03f7-ab00-44a0-b7bd-b2be63c36855">
<name>A1_Attribute</name>
<synonym>
<key>en</key>
<value>Attribute</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</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>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="3d3277a7-8935-4281-8132-615fe6932a02" extendedConfigurationObject="76352e82-5469-41ff-a858-5e5dd1262122">
<producedTypes>
<objectType typeId="fea5da61-2054-4b50-bc43-54d3f43ff476" valueTypeId="aeb0eda5-0388-4bc2-8e9c-9fbe98a2ae95"/>
<refType typeId="d466c20d-4cc7-4166-8975-d07ab9707b51" valueTypeId="9133ff5f-9737-4620-9026-41a814502f63"/>
<selectionType typeId="072043f7-7508-4778-82e1-f57f6fb80bf4" valueTypeId="0a28f691-d0ff-47d3-aa6b-df3395c6855c"/>
<listType typeId="910f9c69-0aa9-499e-8c37-97ee90b9321a" valueTypeId="3326d8ff-7d29-4704-8a8a-49bbe617c790"/>
<managerType typeId="6dcc246c-e4a2-46a8-a460-3776328c8739" valueTypeId="556b1935-a9ce-4df5-8689-f3e23f8fbeb6"/>
</producedTypes>
<name>CatalogCommand</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<commands uuid="15ff1147-803c-4891-8c72-479663324eb2" extendedConfigurationObject="3498ff36-7fcb-415b-b8d9-ee547304ee08">
<name>Command</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicCommandExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<group>Checked</group>
</extension>
<group>ActionsPanelTools</group>
</commands>
<commands uuid="0f0c5f15-e771-48b5-9cf7-6782a1e48ff9">
<name>Ext1_Command</name>
<synonym>
<key>en</key>
<value>Command</value>
</synonym>
<group>ActionsPanelTools</group>
<representation>Auto</representation>
</commands>
</mdclass:Catalog>
@@ -0,0 +1,7 @@
&AtClient
Procedure CommandProcessing(CommandParameter, CommandExecuteParameters)
//TODO: Paste handler content.
//FormParameters = New Structure("", );
//OpenForm("Catalog.Catalog.ListForm", FormParameters, CommandExecuteParameters.Source, CommandExecuteParameters.Uniqueness, CommandExecuteParameters.Window, CommandExecuteParameters.URL);
EndProcedure
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="9c30368c-f1c6-444d-ae64-1f3e416cef6c" extendedConfigurationObject="3a2d846c-3e64-468f-9318-31a2d48d1713">
<producedTypes>
<objectType typeId="d413d1f7-8378-4aa0-81b1-7f44473d3103" valueTypeId="fb3da9f8-194d-4574-ba2b-973d064d4587"/>
<refType typeId="e627b37a-53ec-483f-9a56-49047a2ff4ad" valueTypeId="a484a58d-a2d4-499a-b114-a6147f59b754"/>
<selectionType typeId="3404e132-0412-4890-9d6e-f61c580bc746" valueTypeId="a67cfa43-7778-44ef-b49b-2cfd9c1ca892"/>
<listType typeId="7e51641b-4aab-4899-92ae-7502610d9efe" valueTypeId="cd31dcd0-2cfe-4260-a8d1-992e25fb9334"/>
<managerType typeId="bfb499de-dedc-4e9c-ba86-6c2c50dc88ca" valueTypeId="31c2afc4-5a2d-426a-81df-da62123037bd"/>
</producedTypes>
<name>CatalogCommandNonCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<commands uuid="28fc07dc-e4ec-4704-87cd-d62c68ae9a1a">
<name>C1_Command</name>
<synonym>
<key>en</key>
<value>C1 command</value>
</synonym>
<group>ActionsPanelTools</group>
<representation>Auto</representation>
</commands>
</mdclass:Catalog>
@@ -0,0 +1,7 @@
&AtClient
Procedure CommandProcessing(CommandParameter, CommandExecuteParameters)
//TODO: Paste handler content.
//FormParameters = New Structure("", );
//OpenForm("Catalog.Catalog.ListForm", FormParameters, CommandExecuteParameters.Source, CommandExecuteParameters.Uniqueness, CommandExecuteParameters.Window, CommandExecuteParameters.URL);
EndProcedure
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="3b85eda4-5a0c-4a2a-8abc-daad3be842c0" extendedConfigurationObject="fa1c0985-93c8-4cff-8af5-0b5a3aff8439">
<producedTypes>
<objectType typeId="1804cc1c-4f00-439a-b767-3fcb24abd025" valueTypeId="f5e9887f-e144-4416-a3f1-b93cf8320b73"/>
<refType typeId="fdd1ffdb-ad61-4bde-ad67-ec2d4c97b64e" valueTypeId="1dc76645-45fd-43cd-8c24-4403d43abc2d"/>
<selectionType typeId="f5a03cb1-13f7-433e-bb3a-dde0247e35e9" valueTypeId="cb726be4-aa5a-4efb-aee3-69d76d0b960d"/>
<listType typeId="1eb0e4c0-8b6d-4cd4-afe7-5466f2088458" valueTypeId="bfa829da-5942-4f25-b048-c9baa73bfc00"/>
<managerType typeId="1a890a3c-1120-42ba-90ba-6394cf6897e1" valueTypeId="4a23bf0f-3049-4df8-af0f-451e1695fd61"/>
</producedTypes>
<name>CatalogFormCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<defaultObjectForm>Extended</defaultObjectForm>
</extension>
<defaultObjectForm>Catalog.CatalogFormCompliant.Form.Ext1_ItemForm</defaultObjectForm>
<forms uuid="35377a9c-655c-4002-a28e-b71a479fd777" extendedConfigurationObject="3d4ae384-792d-49df-bfb6-b17510f1bf0c">
<name>ItemForm</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicFormExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<form>Extended</form>
</extension>
</forms>
<forms uuid="568b8e92-3e37-44bb-9add-3a534f65e0c5">
<name>Ext1_ItemForm</name>
<synonym>
<key>en</key>
<value>Item form</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Object</name>
<id>1</id>
<valueType>
<types>CatalogObject.CatalogFormCompliant</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="489b0c32-4916-49ca-a30a-d35d10322c80" extendedConfigurationObject="53196f2a-b8fd-49f3-b929-e7268acc4b23">
<producedTypes>
<objectType typeId="c3479723-6e1d-4832-aa80-adae0fda4f34" valueTypeId="4a18cdcd-347d-4874-8975-1c539785aea3"/>
<refType typeId="de6db0be-ccc3-4ff5-a2df-5ed939f3c16e" valueTypeId="ee4093ec-4d82-4452-b09b-386397eed858"/>
<selectionType typeId="25bbc3f2-820a-4eb6-8e36-6831213a62c4" valueTypeId="d921d6bf-82c8-4a20-b92f-9521924b7fa2"/>
<listType typeId="20eab6f5-c4bb-488e-ad24-ddbc8af2d810" valueTypeId="073c7e23-ffe5-4489-acca-d8cea7b25384"/>
<managerType typeId="18626318-8631-4307-a639-8bceed55380c" valueTypeId="370781c8-6ac4-4a77-bdba-8726927b7242"/>
</producedTypes>
<name>CatalogFormNonCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<defaultObjectForm>Extended</defaultObjectForm>
</extension>
<defaultObjectForm>Catalog.CatalogFormNonCompliant.Form.NonPref_ItemForm</defaultObjectForm>
<forms uuid="7b1bde03-7321-4106-a5c4-d15de68849aa" extendedConfigurationObject="2954e0ba-087f-4478-a780-c7d609428172">
<name>ItemForm</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicFormExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<form>Extended</form>
</extension>
</forms>
<forms uuid="e68a4308-c381-4e3e-8d76-96f83ca13dc3">
<name>NonPref_ItemForm</name>
<synonym>
<key>en</key>
<value>Non pref item form</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormField">
<name>Code</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Code</segments>
</dataPath>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Object.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>LockOwnerWindow</windowOpeningMode>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Object</name>
<id>1</id>
<valueType>
<types>CatalogObject.CatalogFormNonCompliant</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<savedData>true</savedData>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:CatalogFormExtInfo"/>
</form:Form>
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="ec69d626-56ac-40e2-ab9a-11dcac9c7435" extendedConfigurationObject="abda7415-233b-4265-9d2e-9a9a32d26496">
<producedTypes>
<objectType typeId="0db2c7a8-7698-4473-941c-de08f798a20d" valueTypeId="a61c3617-1fbd-4059-9333-84597699373a"/>
<refType typeId="495fc578-b60c-4483-819f-225cbd00c530" valueTypeId="76a61fe5-c5fa-426c-9429-4c0e6264d995"/>
<selectionType typeId="2b63b696-6a48-4fe0-b4e1-c62a06bc3ef7" valueTypeId="09d80e84-80eb-4040-8698-e50509d56228"/>
<listType typeId="72ae5f4a-6a5d-4ccd-a42d-1460461ad27a" valueTypeId="a0a4fef0-e8ae-4407-9773-a0a5f195edce"/>
<managerType typeId="ee7c45e4-90a8-44fb-83ff-f933f8750de6" valueTypeId="f52842d6-c88d-4fe3-b31f-9f119017e109"/>
</producedTypes>
<name>CatalogTabular</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<tabularSections uuid="70ec2283-7d4a-471e-99f9-ff3b132cf5dc" extendedConfigurationObject="1720b838-b5b0-45d1-8a36-5df7dce2eba1">
<producedTypes>
<objectType typeId="86577c45-1391-46c4-a092-4318eb640f05" valueTypeId="63f67dc0-f612-4c00-87a4-19aa9d663af5"/>
<rowType typeId="25c25121-9821-40e4-9349-df10e61fff82" valueTypeId="09e48890-0f90-4285-a94a-4395961855af"/>
</producedTypes>
<name>TabularSection</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:MdObjectExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
</tabularSections>
<tabularSections uuid="615a1981-69ad-4e1b-af69-4e73aad7baad">
<producedTypes>
<objectType typeId="a73ca4cc-7f66-446a-a8f8-b0318b36069f" valueTypeId="b48ee926-f613-4c11-b85f-d05338cb5875"/>
<rowType typeId="344805f4-9b99-4666-b2cf-4e65017df623" valueTypeId="c7b7a4ca-f199-4ae0-8621-feddace62767"/>
</producedTypes>
<name>Ext1_TabularSection</name>
<synonym>
<key>en</key>
<value>Tabular section</value>
</synonym>
</tabularSections>
</mdclass:Catalog>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="5f4e82ed-ba1e-4d74-93d8-1322fe809ad3" extendedConfigurationObject="0f0755fc-c39c-4227-9b34-9f321bead131">
<producedTypes>
<objectType typeId="c3bb863d-7a1b-4b1e-8b9c-c5f8df51c3ac" valueTypeId="47445004-43fd-4f39-9dd5-f96aa0ee0dc8"/>
<refType typeId="dc7d6d31-c49a-49af-bb77-8aae01683568" valueTypeId="571af73a-8f8c-4811-8a33-785edc78ca2b"/>
<selectionType typeId="8f15a34e-5397-49ec-84da-406d8be95c75" valueTypeId="f17e5ffa-5148-4efa-8231-44995ff32a10"/>
<listType typeId="7cdfc285-def3-44dc-a769-6696bf580529" valueTypeId="a03f40be-96bf-4827-b66b-5e04288abf66"/>
<managerType typeId="d4aa36ed-adb2-4726-a0eb-cb52809c1ac3" valueTypeId="bfdce639-e4b4-4f88-b148-514fdb21d8c8"/>
</producedTypes>
<name>CatalogTabularNonCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<tabularSections uuid="167b538c-77e9-43b0-b7c7-70657756984b">
<producedTypes>
<objectType typeId="729e902e-45db-4f5b-9e48-ac9dba333c83" valueTypeId="65912a86-27f5-4088-8aa6-d6fb6ecd88c7"/>
<rowType typeId="69711a08-e29b-4f15-abc3-0a50046fe8e9" valueTypeId="a483022d-f112-4343-816d-fdf74452b20e"/>
</producedTypes>
<name>T1_TabularSection</name>
<synonym>
<key>en</key>
<value>T1 tabular section</value>
</synonym>
</tabularSections>
</mdclass:Catalog>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="596e88d3-b4b5-47db-9935-21106e68946c" extendedConfigurationObject="38dab78e-6e3b-452f-bd45-5d3a3dfe283d">
<producedTypes>
<objectType typeId="fb0e8b4a-bf5a-4002-b6bc-9135a131f6d9" valueTypeId="f4439c9a-8afe-4ad5-a27e-89cc8a5e4142"/>
<refType typeId="b3e0feec-4d09-44fb-98fa-54db3dc0dd0c" valueTypeId="3bd93d27-2b87-4830-ab52-9327f01d7113"/>
<selectionType typeId="e00a849c-6ef6-4c80-8aeb-1b942fc56a59" valueTypeId="b4328396-54d3-4c70-a71d-526283c93a1e"/>
<listType typeId="2da98bb6-98ec-4dac-8ab0-0af1910c7857" valueTypeId="ef583a99-8480-4db7-8451-2d4207c389fb"/>
<managerType typeId="c4e2cc84-0fc4-4675-9fc8-ffb063e41e46" valueTypeId="33a81b94-c27c-44a8-93b1-0092c9f5928f"/>
</producedTypes>
<name>CatalogTemplateCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<templates uuid="482ee84f-9042-4266-b18e-03daf6ba9802" extendedConfigurationObject="55b2708b-6fec-49fd-98de-639fb1513f3e">
<name>Template</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicTemplateExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<template>Extended</template>
</extension>
</templates>
<templates uuid="b286753f-a6c4-454c-8a6c-2e9564abc470">
<name>Ext1_Template</name>
<synonym>
<key>en</key>
<value>Template</value>
</synonym>
</templates>
</mdclass:Catalog>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>#</defaultLanguage>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</document>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>en</defaultLanguage>
<languageInfo>
<id>en</id>
<code>English</code>
<description>English</description>
</languageInfo>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
<baseSheet>
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>en</defaultLanguage>
<languageInfo>
<id>en</id>
<code>English</code>
<description>English</description>
</languageInfo>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</baseSheet>
<extensionMethod>Merge</extensionMethod>
</document>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="615d7736-55c0-401c-973d-de83e4587927" extendedConfigurationObject="be3619d8-8e42-438b-8bfd-55ddebad8d11">
<producedTypes>
<objectType typeId="5c2fabff-9675-4a5e-bcf0-83563601a160" valueTypeId="85fefc47-b2b9-414f-b046-6120f930a77a"/>
<refType typeId="1e1a3de1-ce4e-453b-8148-5c01495b006e" valueTypeId="34d8800b-b0ee-4e32-ac4a-e368d8aa0ec1"/>
<selectionType typeId="913361ac-8d07-46fe-b2bf-83297e696e0e" valueTypeId="87472478-c953-4b34-906d-8502d4538261"/>
<listType typeId="747e1172-afb7-4dfc-8619-04c88e0a13d8" valueTypeId="cd7b00e1-2ec6-4d07-bc9a-1adc3beff5b3"/>
<managerType typeId="dd7b7057-cfe4-418c-892f-d38dd1da910e" valueTypeId="2685ee20-1566-4640-8262-219e6e6ee988"/>
</producedTypes>
<name>CatalogTemplateNonCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<templates uuid="b957e3f8-b1fa-470d-8e60-b947d131f61a" extendedConfigurationObject="873847e1-1eb0-4160-84d2-a250d43cdc21">
<name>Template</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicTemplateExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<template>Extended</template>
</extension>
</templates>
<templates uuid="c3bb7ecb-71e3-41bd-8daa-024bca4eca1f">
<name>T1_Template</name>
<synonym>
<key>en</key>
<value>T1 template</value>
</synonym>
</templates>
</mdclass:Catalog>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>#</defaultLanguage>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</document>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>#</defaultLanguage>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
<baseSheet>
<languageSettings>
<currentLanguage>en</currentLanguage>
<defaultLanguage>#</defaultLanguage>
</languageSettings>
<columns>
<size>0</size>
</columns>
<templateMode>true</templateMode>
</baseSheet>
<extensionMethod>Merge</extensionMethod>
</document>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="cfb4816d-e5ec-4650-8aef-05fabc150919" extendedConfigurationObject="74135936-eb47-4430-bb3d-e57b700485ae">
<name>Compliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CommonModuleExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<module>Extended</module>
<global>Checked</global>
<clientManagedApplication>Checked</clientManagedApplication>
<server>Checked</server>
<externalConnection>Checked</externalConnection>
<serverCall>Checked</serverCall>
<clientOrdinaryApplication>Checked</clientOrdinaryApplication>
</extension>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9b381625-c73d-493a-9cbb-c96a033b374f">
<name>Ext1_Compliant</name>
<synonym>
<key>en</key>
<value>Complient</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="636bf7b0-272e-4630-8486-897c53aacc10">
<name>NonCompliant</name>
<synonym>
<key>en</key>
<value>Non compliant</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="8ee9e922-3826-4fdb-969a-b4a81c5ce56e">
<name>ExtensionObjectNamePrefixCheck_Extension</name>
<synonym>
<key>en</key>
<value>Extension object name prefix check extension</value>
</synonym>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:ConfigurationExtension">
<defaultRunMode>Checked</defaultRunMode>
<usePurposes>Checked</usePurposes>
<commandInterface>Extended</commandInterface>
<mainSectionCommandInterface>Extended</mainSectionCommandInterface>
<interfaceCompatibilityMode>Checked</interfaceCompatibilityMode>
<compatibilityMode>Checked</compatibilityMode>
<defaultStyle>Extended</defaultStyle>
<defaultRoles>Extended</defaultRoles>
</extension>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="d2419fd2-5e95-4404-a051-20af516c6eac"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4f06a989-e9ee-4576-b37d-e409efc80290"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="2cb46693-2dd5-4797-951d-55b179b89290"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="652aa577-2231-4293-a756-39ef77c5f4cb"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="7f7db1b6-a872-4de5-baef-9183a177b1ba"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="28bf35b7-122e-497b-910d-7258fa245b76"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="b9808964-a589-4e54-8e54-f2fc57512a28"/>
<keepMappingToExtendedConfigurationObjectsByIDs>true</keepMappingToExtendedConfigurationObjectsByIDs>
<namePrefix>Ext1_</namePrefix>
<configurationExtensionCompatibilityMode>8.3.19</configurationExtensionCompatibilityMode>
<configurationExtensionPurpose>Customization</configurationExtensionPurpose>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<compatibilityMode>8.3.19</compatibilityMode>
<commonModules>CommonModule.Compliant</commonModules>
<commonModules>CommonModule.Ext1_Compliant</commonModules>
<commonModules>CommonModule.NonCompliant</commonModules>
<catalogs>Catalog.Catalog</catalogs>
<catalogs>Catalog.CatalogFormCompliant</catalogs>
<catalogs>Catalog.CatalogFormNonCompliant</catalogs>
<catalogs>Catalog.CatalogTemplateCompliant</catalogs>
<catalogs>Catalog.CatalogTemplateNonCompliant</catalogs>
<catalogs>Catalog.CatalogCommand</catalogs>
<catalogs>Catalog.CatalogCommandNonCompliant</catalogs>
<catalogs>Catalog.CatalogTabular</catalogs>
<catalogs>Catalog.CatalogTabularNonCompliant</catalogs>
<documents>Document.Document</documents>
<documents>Document.DocumentNonCompliant</documents>
</mdclass:Configuration>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,59 @@
<?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" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="8178b09f-92be-458f-bc57-6f51998fa576" extendedConfigurationObject="b06b524e-97dd-4db4-abbd-0dbe864ef3e9">
<producedTypes>
<objectType typeId="c1fee696-9c60-4d53-86a2-6b4af6578613" valueTypeId="883a1f58-e374-4244-afde-332ee5972608"/>
<refType typeId="fbfe0aa5-b23f-4c42-937a-d9443350ee8e" valueTypeId="4b1896de-22a7-4cfe-beb7-bc33357a1135"/>
<selectionType typeId="57b4a395-c5ec-48fb-8978-cf795534aee1" valueTypeId="586dc6d6-517d-4b0b-b5bf-703296fa7b11"/>
<listType typeId="a7658662-c946-46c6-a2bf-6ad7c662a6cd" valueTypeId="bf325525-4b7e-4303-87d2-ac2d46f097db"/>
<managerType typeId="010e07e5-a27c-4d9b-b319-5ed82b2fd252" valueTypeId="b04d4716-6c08-431b-b263-c6efd9069614"/>
</producedTypes>
<name>Document</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:DocumentExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<tabularSections uuid="40452360-36dc-4f30-a571-9ff83726027a" extendedConfigurationObject="242826bc-562f-40e5-800a-1ed1e82699ff">
<producedTypes>
<objectType typeId="f1ed95b4-0c4e-4b1a-bc0d-c4e44621e6ca" valueTypeId="b1e35057-1125-45ea-841c-869b6f79c8f9"/>
<rowType typeId="5d015d4d-7c63-43cf-967f-1bc8a89efc4b" valueTypeId="35445e9b-18eb-475b-b4cc-38b2f69d7e83"/>
</producedTypes>
<name>TabularSection</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:MdObjectExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<attributes uuid="0a335190-b7c0-4173-acfd-9becca86a741" extendedConfigurationObject="9d0937dd-b40d-4aaf-8da0-3201ec8ecaa4">
<name>Attribute</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicFeatureExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<typeExtension>
<types>
<state>Checked</state>
<type>String</type>
</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</typeExtension>
</extension>
</attributes>
<attributes uuid="16fe0607-1f17-463c-badf-4a9ed6a36eb1">
<name>Ext1_Attribute</name>
<synonym>
<key>en</key>
<value>Attribute</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
</mdclass:Document>
@@ -0,0 +1,43 @@
<?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" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="3a472d1b-c16d-4776-ba2e-401007afb935" extendedConfigurationObject="38352939-5b1b-478c-9c45-cc0e02de5e76">
<producedTypes>
<objectType typeId="f50f347c-2479-4351-a7c4-62b4322aa6b8" valueTypeId="e3105b63-51e5-4187-8721-a3af7f437ced"/>
<refType typeId="3de2f7d2-1478-46d7-a990-c4820bf95b3a" valueTypeId="4ab2d679-827a-43f1-b6e7-dff4960d7279"/>
<selectionType typeId="c816bbb5-5033-4dcd-b571-354209a796aa" valueTypeId="cade63ac-6b16-4631-86a9-763552de5e26"/>
<listType typeId="b149caef-e2bd-44c4-8b1f-0f312406d16f" valueTypeId="07dbee53-7d99-49e6-a069-85eb2e9debc2"/>
<managerType typeId="8264714c-3763-491e-8b52-85fb0bedbf38" valueTypeId="7289e4a5-2174-4036-bb20-37b4878fad1f"/>
</producedTypes>
<name>DocumentNonCompliant</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:DocumentExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<tabularSections uuid="0b21d8df-7d40-468a-ab59-c5f319d9cf04" extendedConfigurationObject="590fd3f6-dbda-4072-a51c-70a3ebc417b7">
<producedTypes>
<objectType typeId="40f86338-a992-421d-bee6-57d25ec3edc1" valueTypeId="c4fcc8cc-4f38-4715-91ba-dd11fd44708b"/>
<rowType typeId="8eb37496-42c0-4512-8085-8414d173260c" valueTypeId="ad87cced-af5e-4d24-a48a-b8b842afeb0c"/>
</producedTypes>
<name>TabularSection</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:MdObjectExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<attributes uuid="1a0208dd-2514-4331-aeeb-4b13ff8c3075">
<name>T1_Attribute</name>
<synonym>
<key>en</key>
<value>T1 attribute</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>10</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections>
</mdclass:Document>