diff --git a/CHANGELOG.md b/CHANGELOG.md
index af73c757..bb44ec27 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@
#### Код модулей
+- Проверка на использование оператора Перейти (Goto) в коде модулей
#### Запросы
diff --git a/bundles/com.e1c.v8codestyle.bsl/markdown/ru/use-goto-operator.md b/bundles/com.e1c.v8codestyle.bsl/markdown/ru/use-goto-operator.md
new file mode 100644
index 00000000..84b1bb9c
--- /dev/null
+++ b/bundles/com.e1c.v8codestyle.bsl/markdown/ru/use-goto-operator.md
@@ -0,0 +1,31 @@
+# Используется оператор Перейти
+
+В коде на встроенном языке не рекомендуется использовать оператор Перейти,
+так как необдуманное использование данного оператора приводит к получению запутанных,
+плохо структурированных модулей, по тексту которых затруднительно понять порядок
+исполнения и взаимозависимость фрагментов. Вместо оператора Перейти рекомендуется использовать
+другие конструкции встроенного языка.
+
+## Неправильно
+
+```bsl
+Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
+
+ Перейти ~ПланВидовРасчета;
+
+КонецЕсли;
+```
+
+## Правильно
+
+```bsl
+Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
+
+ ОбработатьПланВидовРасчета();
+
+КонецЕсли;
+```
+
+## См.
+
+- [Ограничение на использование оператора Перейти](https://its.1c.ru/db/v8std#content:547:hdoc:1)
\ No newline at end of file
diff --git a/bundles/com.e1c.v8codestyle.bsl/markdown/use-goto-operator.md b/bundles/com.e1c.v8codestyle.bsl/markdown/use-goto-operator.md
new file mode 100644
index 00000000..65d2d065
--- /dev/null
+++ b/bundles/com.e1c.v8codestyle.bsl/markdown/use-goto-operator.md
@@ -0,0 +1,30 @@
+# Goto operator use
+
+Avoid using the GoTo operator in 1C:Enterprise language code as its use can result
+in complicated and ill-structured modules. It is difficult to understand the execution
+sequence and interrelation of its snippets. Instead of the GoTo operator, use other statements
+of 1C:Enterprise language.
+
+## Noncompliant Code Example
+
+```bsl
+If ChartOfCalculationTypes = Object.ChartOfCalculationTypes Then
+
+ GoTo ChartOfCalculationTypes;
+
+EndIf;
+```
+
+## Compliant Solution
+
+```bsl
+If ChartOfCalculationTypes = Object.ChartOfCalculationTypes Then
+
+ ProcessChartOfCalculationTypes();
+
+EndIf;
+```
+
+## See
+
+- [Restrictions on using Go operator](https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_Development_Standards/Code_conventions/Using_1C_Enterprise_language_structures/Restrictions_on_using_Go_operator/?language=en)
\ No newline at end of file
diff --git a/bundles/com.e1c.v8codestyle.bsl/plugin.xml b/bundles/com.e1c.v8codestyle.bsl/plugin.xml
index 7d684c47..a16d976a 100644
--- a/bundles/com.e1c.v8codestyle.bsl/plugin.xml
+++ b/bundles/com.e1c.v8codestyle.bsl/plugin.xml
@@ -347,6 +347,10 @@
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.DeprecatedProcedureOutsideDeprecatedRegionCheck">
+
+
diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/Messages.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/Messages.java
index 2846ab91..9952c55e 100644
--- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/Messages.java
+++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/Messages.java
@@ -338,6 +338,14 @@ final class Messages
public static String RollbackTransactionCheck_Transactions_is_broken_des;
+ public static String UseGotoOperatorCheck_description;
+
+ public static String UseGotoOperatorCheck_title;
+
+ public static String UseGotoOperatorCheck_Use_Goto_operator;
+
+ public static String UseGotoOperatorCheck_Use_Label_with_Goto_operator;
+
public static String UseNonRecommendedMethods_description;
public static String UseNonRecommendedMethods_message;
diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/UseGotoOperatorCheck.java b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/UseGotoOperatorCheck.java
new file mode 100644
index 00000000..56b2db3a
--- /dev/null
+++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/UseGotoOperatorCheck.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (C) 2023, 1C-Soft LLC and others.
+ *
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * 1C-Soft LLC - initial API and implementation
+ *******************************************************************************/
+
+package com.e1c.v8codestyle.bsl.check;
+
+import static com._1c.g5.v8.dt.bsl.model.BslPackage.Literals.BLOCK;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import com._1c.g5.v8.dt.bsl.model.Block;
+import com._1c.g5.v8.dt.bsl.model.GotoStatement;
+import com._1c.g5.v8.dt.bsl.model.LabeledStatement;
+import com._1c.g5.v8.dt.bsl.model.Statement;
+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.bsl.BslPlugin;
+
+/**
+ * The check on use Goto operator
+ * @author Vadim Goncharov
+ */
+public class UseGotoOperatorCheck
+ extends BasicCheck
+{
+
+ private static final String CHECK_ID = "use-goto-operator"; //$NON-NLS-1$
+
+ public UseGotoOperatorCheck()
+ {
+ super();
+ }
+
+ @Override
+ public String getCheckId()
+ {
+ return CHECK_ID;
+ }
+
+ @Override
+ protected void configureCheck(CheckConfigurer builder)
+ {
+ builder.title(Messages.UseGotoOperatorCheck_title)
+ .description(Messages.UseGotoOperatorCheck_description)
+ .complexity(CheckComplexity.NORMAL)
+ .severity(IssueSeverity.MAJOR)
+ .issueType(IssueType.CODE_STYLE)
+ .extension(new StandardCheckExtension(547, getCheckId(), BslPlugin.PLUGIN_ID))
+ .module()
+ .checkedObjectType(BLOCK);
+ }
+
+ @Override
+ protected void check(Object object, ResultAcceptor resultAcceptor, ICheckParameters parameters,
+ IProgressMonitor monitor)
+ {
+
+ if (object instanceof Block)
+ {
+ Block block = (Block)object;
+ for (Statement st : block.allStatements())
+ {
+ if (monitor.isCanceled())
+ {
+ return;
+ }
+
+ if (st instanceof GotoStatement)
+ {
+ resultAcceptor.addIssue(Messages.UseGotoOperatorCheck_Use_Goto_operator, st);
+ }
+
+ if (st instanceof LabeledStatement)
+ {
+ resultAcceptor.addIssue(Messages.UseGotoOperatorCheck_Use_Label_with_Goto_operator, st);
+ }
+
+ }
+ }
+
+ }
+
+}
diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages.properties b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages.properties
index 191f58d7..1bbb1caa 100644
--- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages.properties
+++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages.properties
@@ -28,12 +28,6 @@ AccessibilityAtClientInObjectModuleCheck_description = Method or variable access
AccessibilityAtClientInObjectModuleCheck_title = Method or variable accessible AtClient
-CachedPublicCheck_Description=Cached public method
-
-CachedPublicCheck_Issue=Not recommended to use cached public method
-
-CachedPublicCheck_Title=Cached public method
-
AttachableEventHandlerNameCheck_Description = Programmatically added event handler name should match pattern
AttachableEventHandlerNameCheck_Event_handler_name_pattern = Event handler name pattern
@@ -42,6 +36,20 @@ AttachableEventHandlerNameCheck_Message = Programmatically added event handler n
AttachableEventHandlerNameCheck_Title = Attachable event handler name
+BeginTransactionCheck_Begin_transaction_is_incorrect = Begin transaction is incorrect
+
+BeginTransactionCheck_Executable_code_between_begin_transaction_and_try = There should be no executable code between begin transaction and try
+
+BeginTransactionCheck_Try_must_be_after_begin = Try-catch must be after begin transaction
+
+BeginTransactionCheck_Try_was_not_found_after_calling_begin = The try operator was not found after calling begin transaction
+
+CachedPublicCheck_Description = Cached public method
+
+CachedPublicCheck_Issue = Not recommended to use cached public method
+
+CachedPublicCheck_Title = Cached public method
+
CanonicalPragmaCheck_Pragma_0_is_not_written_canonically_correct_spelling_is_1 = Annotation {0} is not written canonically, correct spelling is {1}
CanonicalPragmaCheck_description = Check pragma is written canonically
@@ -54,59 +62,45 @@ ChangeAndValidateInsteadOfAroundCheck_description = Checks that pragma &ChangeAn
ChangeAndValidateInsteadOfAroundCheck_title = Use pragma &ChangeAndValidate instead of &Around
-CommitTransactionCheck_Commit_transaction_must_be_in_try_catch=Commit transaction must be in a try-catch
+CommitTransactionCheck_Commit_transaction_must_be_in_try_catch = Commit transaction must be in a try-catch
-CommitTransactionCheck_No_begin_transaction_for_commit_transaction=There is no begin transaction for commit transaction
+CommitTransactionCheck_No_begin_transaction_for_commit_transaction = There is no begin transaction for commit transaction
-RollbackTransactionCheck_No_begin_transaction_for_rollback_transaction=There is no begin transaction for rollback transaction
+CommitTransactionCheck_No_rollback_transaction_for_begin_transaction = There is no rollback transaction for begin transaction
-RollbackTransactionCheck_No_commit_transaction_for_begin_transaction=There is no commit transaction for begin transaction
+CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception = There should be no executable code between commit transaction and exception
-CommitTransactionCheck_No_rollback_transaction_for_begin_transaction=There is no rollback transaction for begin transaction
+CommitTransactionCheck_Transaction_contains_empty_except = The transaction contains an empty exception block
-CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception=There should be no executable code between commit transaction and exception
+CommitTransactionCheck_Transactions_is_broken = Commit transaction is incorrect
-RollbackTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback=There should be no executable code between exception and rollback transaction
+CommitTransactionCheck_Transactions_is_broken_des = Commit transaction must be in a try-catch, there should be no executable code between commit transaction and exception, there is no begin transaction for commit transaction, there is no rollback transaction for begin transaction.
-BeginTransactionCheck_Executable_code_between_begin_transaction_and_try=There should be no executable code between begin transaction and try
+CommonModuleMissingApiCheck_Description = Programming interface
-CommitTransactionCheck_Transaction_contains_empty_except=The transaction contains an empty exception block
+CommonModuleMissingApiCheck_Issue = Common module does not contain a programming interface
-CommitTransactionCheck_Transactions_is_broken=Commit transaction is incorrect
+CommonModuleMissingApiCheck_Title = Programming interface
-CommitTransactionCheck_Transactions_is_broken_des=Commit transaction must be in a try-catch, there should be no executable code between commit transaction and exception, there is no begin transaction for commit transaction, there is no rollback transaction for begin transaction.
+CommonModuleNamedSelfReferenceCheck_description = Excessive named self reference
-BeginTransactionCheck_Begin_transaction_is_incorrect=Begin transaction is incorrect
+CommonModuleNamedSelfReferenceCheck_issue = Excessive named self reference
-BeginTransactionCheck_Try_must_be_after_begin=Try-catch must be after begin transaction
+CommonModuleNamedSelfReferenceCheck_title = Excessive named self reference in common module
-BeginTransactionCheck_Try_was_not_found_after_calling_begin=The try operator was not found after calling begin transaction
+ConsecutiveEmptyLines_Description = Consecutive empty lines
-CommonModuleMissingApiCheck_Description=Programming interface
+ConsecutiveEmptyLines_Parameter_title = Maximum number of empty lines
-CommonModuleMissingApiCheck_Issue=Common module does not contain a programming interface
+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}
-CommonModuleMissingApiCheck_Title=Programming interface
+ConsecutiveEmptyLines_Title = Consecutive empty lines
-CommonModuleNamedSelfReferenceCheck_description=Excessive named self reference
+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
-CommonModuleNamedSelfReferenceCheck_issue=Excessive named self reference
+DeprecatedProcedureOutsideDeprecatedRegionCheck_description = Deprecated procedure (function) should be placed in the Deprecated region of the Public region in a common module area
-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
-
-DeprecatedProcedureOutsideDeprecatedRegionCheck_title=Deprecated procedure (function) is outside deprecated region
+DeprecatedProcedureOutsideDeprecatedRegionCheck_title = Deprecated procedure (function) is outside deprecated region
EmptyExceptStatementCheck_description = Empty except statement
@@ -138,50 +132,37 @@ EventHandlerBooleanParamCheck_description = Use event handler boolean parameter
EventHandlerBooleanParamCheck_title = Use event handler boolean parameter
-ReadingAttributesFromDataBaseCheck_Message=Allow field access with composite non reference type
+ExportMethodInCommandFormModuleCheck_CheckClientMethodForm = Check the client method of the form
-ReadingAttributesFromDataBaseCheck_Description=Reading single object attribute from the database
+ExportMethodInCommandFormModuleCheck_CheckServerMethodForm = Check the server method of the form
-ReadingAttributesFromDataBaseCheck_Issue__0=When the {0} is read from the reference, the entire object is imported from the database
+ExportMethodInCommandFormModuleCheck_ExludeMethodNamePattern = Exclude method name pattern
-ReadingAttributesFromDataBaseCheck_Title=Reading single object attribute from the database
+ExportMethodInCommandFormModuleCheck_Notify_description_methods = Comma-separated list of excluded notification method names
-RedundantExportCheck_Escess_title=Redundant Export keyword
+ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_des = Do not embed export procedures and functions in modules of commands and forms. You cannot address such modules from external code, so embedded export procedures and functions become dysfunctional.
-RedundantExportCheck_Excess_description=Checks the modules contain unused export procedures and functions. The check searches for all references to the method, so it can take a long time.
+ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_result = Do not embed export procedures and functions in modules of commands and forms. You cannot address such modules from external code, so embedded export procedures and functions become dysfunctional.
-RedundantExportCheck_Exclude_title=Comma-separated list of excluded region names
+ExportMethodInCommandModule_Do_not_use_export_method_in_commands_module = Restrictions on the use of export procedures and functions
-RedundantExportCheck_Unused_export_method__0=Unused export method "{0}"
+ExportVariableInObjectModuleCheck_Description = Use of an export variable is not recommended
-ExportMethodInCommandFormModuleCheck_CheckClientMethodForm=Check the client method of the form
-ExportMethodInCommandFormModuleCheck_CheckServerMethodForm=Check the server method of the form
-ExportMethodInCommandFormModuleCheck_ExludeMethodNamePattern=Exclude method name pattern
-ExportMethodInCommandFormModuleCheck_Notify_description_methods=Comma-separated list of excluded notification method names
+ExportVariableInObjectModuleCheck_Issue = It's not recommended to use the export variable in the object module
-ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_des=Do not embed export procedures and functions in modules of commands and forms. You cannot address such modules from external code, so embedded export procedures and functions become dysfunctional.
+ExportVariableInObjectModuleCheck_Title = Use of an export variable is not recommended
-ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_result=Do not embed export procedures and functions in modules of commands and forms. You cannot address such modules from external code, so embedded export procedures and functions become dysfunctional.
+ExtensionMethodPrefixCheck_Description = The procedure (function) in the module of the extension object does not have a prefix corresponding to the prefix of the extension itself
-ExportMethodInCommandModule_Do_not_use_export_method_in_commands_module=Restrictions on the use of export procedures and functions
+ExtensionMethodPrefixCheck_Ext_method__0__should_have__1__prefix = The method "{0}" should have "{1}" prefix
-ExportVariableInObjectModuleCheck_Description=Use of an export variable is not recommended
+ExtensionMethodPrefixCheck_Title = Extension method does not have extension prefix
-ExportVariableInObjectModuleCheck_Issue=It's not recommended to use the export variable in the object module
+ExtensionVariablePrefixCheck_Description = The variable in the module of the extension object does not have a prefix corresponding to the prefix of the extension itself
-ExportVariableInObjectModuleCheck_Title=Use of an export variable is not recommended
+ExtensionVariablePrefixCheck_Title = Extension variable does not have extension prefix
-ExtensionVariablePrefixCheck_Description=The variable in the module of the extension object does not have a prefix corresponding to the prefix of the extension itself
-
-ExtensionVariablePrefixCheck_Title=Extension variable does not have extension prefix
-
-ExtensionVariablePrefixCheck_Variable_0_should_have_1_prefix=The variable "{0}" should have "{1}" prefix
-
-ExtensionMethodPrefixCheck_Description=The procedure (function) in the module of the extension object does not have a prefix corresponding to the prefix of the extension itself
-
-ExtensionMethodPrefixCheck_Ext_method__0__should_have__1__prefix=The method "{0}" should have "{1}" prefix
-
-ExtensionMethodPrefixCheck_Title=Extension method does not have extension prefix
+ExtensionVariablePrefixCheck_Variable_0_should_have_1_prefix = The variable "{0}" should have "{1}" prefix
FormModuleMissingPragmaCheck_Missing_compilation_directives = Missing compilation directives
@@ -195,37 +176,37 @@ FormModulePragmaCheck_description = Use form module compilation pragma
FormModulePragmaCheck_title = Use form module compilation pragma
-FormSelfReferenceOutdatedCheck_Description="ThisObject" should be used instead of outdated "ThisForm"
+FormSelfReferenceOutdatedCheck_Description = "ThisObject" should be used instead of outdated "ThisForm"
-FormSelfReferenceOutdatedCheck_Issue="ThisObject" should be used instead of outdated "ThisForm"
+FormSelfReferenceOutdatedCheck_Issue = "ThisObject" should be used instead of outdated "ThisForm"
-FormSelfReferenceOutdatedCheck_Title=Outdated alias used
+FormSelfReferenceOutdatedCheck_Title = Outdated alias used
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_description=Program invocation of form event handler
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_description = Program invocation of form event handler
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_result=Program invocation of form event handler
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_result = Program invocation of form event handler
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_title=Program invocation of form event handler
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_title = Program invocation of form event handler
-IsInRoleCheck_Exception_Roles=Untested roles
+IsInRoleCheck_Exception_Roles = Untested roles
-IsInRoleCheck_Use_AccessRight=Use the AccessRight() function instead of IsInRole()
+IsInRoleCheck_Use_AccessRight = Use the AccessRight() function instead of IsInRole()
-IsInRoleCheck_Use_AccessRight_instead_IsInRole=Use the AccessRight() function instead of IsInRole()
+IsInRoleCheck_Use_AccessRight_instead_IsInRole = Use the AccessRight() function instead of IsInRole()
-IsInRoleCheck_Using_IsInRole=Using "IsInRole" method
+IsInRoleCheck_Using_IsInRole = Using "IsInRole" method
-LockOutOfTry_Checks_for_init_of_the_data_lock=Checks for initialization of the data lock. If the creation of a lock is found, the call of the Lock() method is checked, and the call must be in a try.
+LockOutOfTry_Checks_for_init_of_the_data_lock = Checks for initialization of the data lock. If the creation of a lock is found, the call of the Lock() method is checked, and the call must be in a try.
-LockOutOfTry_Lock_out_of_try=Lock out of Try
+LockOutOfTry_Lock_out_of_try = Lock out of Try
-LockOutOfTry_Method_lock_out_of_try=Method Lock() out of try block
+LockOutOfTry_Method_lock_out_of_try = Method Lock() out of try block
-ManagerModuleNamedSelfReferenceCheck_description=Excessive named self reference
+ManagerModuleNamedSelfReferenceCheck_description = Excessive named self reference
-ManagerModuleNamedSelfReferenceCheck_issue=Excessive named self reference
+ManagerModuleNamedSelfReferenceCheck_issue = Excessive named self reference
-ManagerModuleNamedSelfReferenceCheck_title=Excessive named self reference in manager module
+ManagerModuleNamedSelfReferenceCheck_title = Excessive named self reference in manager module
MethodTooManyPramsCheck_Max_parameters = Max parameters
@@ -257,24 +238,84 @@ ModuleEmptyMethodCheck_Exclude_method_name_pattern_title = Exclude method name p
ModuleEmptyMethodCheck_Title = Empty method check
-ModuleStructureTopRegionCheck_Check_duplicates_of_standard_regions=Check duplicates of standard regions
+ModuleStructureEventFormRegionsCheck_Description = Checks the region of form event handlers for methods related only to handlers
-ModuleStructureTopRegionCheck_Check_order_of_standard_regions=Check order of standard regions
+ModuleStructureEventFormRegionsCheck_Event_method__0__can_not_be_placed_in_the_region__1 = Method "{0}" can not be placed in the "{1}" region
+
+ModuleStructureEventFormRegionsCheck_Event_method__0__should_be_placed_in_the_region__1 = The event method "{0}" should be placed in the "{1}" region
+
+ModuleStructureEventFormRegionsCheck_Excluded_method_names = Comma-separated list of excluded command event method names
+
+ModuleStructureEventFormRegionsCheck_Multilevel_nesting_of_regions = Allow multilevel nesting of regions
+
+ModuleStructureEventFormRegionsCheck_Title = Checks the region of form event handlers for methods related only to handlers
+
+ModuleStructureEventRegionsCheck_Description = Checks the region of event handlers for the existence of methods related only to handlers
+
+ModuleStructureEventRegionsCheck_Event_handler__0__not_region__1 = The event handler "{0}" should be placed in the "{1}" region
+
+ModuleStructureEventRegionsCheck_Only_event_methods__0 = Only event methods can be placed in the "{0}" region
+
+ModuleStructureEventRegionsCheck_Title = Checks the region of event handlers for the existence of methods related only to handlers
+
+ModuleStructureInitCodeInRegion_Description = Initialize code should be placed in the Initialize region
+
+ModuleStructureInitCodeInRegion_Issue__0 = Initialize code should be placed in the {0} region
+
+ModuleStructureInitCodeInRegion_Title = Initialize code is in the correct region
+
+ModuleStructureMethodInRegionCheck_Description = Checks that the method is outside the standard region, and suggests placing the method in one of the standard regions for the current type of module
+
+ModuleStructureMethodInRegionCheck_Method_should_be_placed_in_one_of_the_standard_regions = The method "{0}" should be placed in one of the standard regions: {1}
+
+ModuleStructureMethodInRegionCheck_Multilevel_nesting_of_regions = Allow multilevel nesting of regions
+
+ModuleStructureMethodInRegionCheck_Only_export = Only export methods can be placed in the "{0}" region
+
+ModuleStructureMethodInRegionCheck_Title = Method is outside a standard region
+
+ModuleStructureTopRegionCheck_Check_duplicates_of_standard_regions = Check duplicates of standard regions
+
+ModuleStructureTopRegionCheck_Check_order_of_standard_regions = Check order of standard regions
+
+ModuleStructureTopRegionCheck_Exclude_region_name = Comma-separated list of excluded region names
+
+ModuleStructureTopRegionCheck_Region_has_duplicate = Region has duplicate
+
+ModuleStructureTopRegionCheck_Region_has_the_wrong_order = 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_description = Check that the regions on top of the module structure matches with the standard
ModuleStructureTopRegionCheck_error_message = Module structure region is not on top
-ModuleStructureTopRegionCheck_Exclude_region_name=Comma-separated list of excluded region names
-
-ModuleStructureTopRegionCheck_Region_has_duplicate=Region has duplicate
-
-ModuleStructureTopRegionCheck_Region_has_the_wrong_order=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_title = Module structure top region
+ModuleStructureVariablesInRegionCheck_Description = Variable declaration should be placed in the variable declaration region
+
+ModuleStructureVariablesInRegionCheck_Issue__0 = Variable declaration should be placed in the {0} region
+
+ModuleStructureVariablesInRegionCheck_Title = Variable declaration is in the correct region
+
+ModuleUndefinedFunctionCheck_Description = Undefined function
+
+ModuleUndefinedFunctionCheck_Title = Undefined function
+
+ModuleUndefinedFunction_msg = Function "{0}" is not defined
+
+ModuleUndefinedMethodCheck_Description = Undefined function or procedure
+
+ModuleUndefinedMethodCheck_Title = Undefined method
+
+ModuleUndefinedMethod_msg = Procedure or function "{0}" is not defined
+
+ModuleUndefinedVariableCheck_Description = Undefined variable
+
+ModuleUndefinedVariableCheck_Title = Undefined variable
+
+ModuleUndefinedVariable_msg = Variable "{0}" is not defined
+
ModuleUnusedLocalVariableCheck_Description = Unused module local variable check
ModuleUnusedLocalVariableCheck_Probably_variable_not_initilized_yet__0 = Probably local variable "{0}" has not been initialized yet
@@ -291,59 +332,17 @@ ModuleUnusedMethodCheck_Title = Unused method check
ModuleUnusedMethodCheck_Unused_method__0 = Unused method "{0}"
-ModuleStructureEventFormRegionsCheck_Description=Checks the region of form event handlers for methods related only to handlers
+NewColorCheck_Use_style_elements = To change the design, you should use style elements, and not set specific values directly in the controls
-ModuleStructureEventFormRegionsCheck_Event_method__0__can_not_be_placed_in_the_region__1=Method "{0}" can not be placed in the "{1}" region
+NewColorCheck_Use_style_elements_not_specific_values = To change the design, you should use style elements, and not set specific values directly in the controls. This is required in order for similar controls to look the same in all forms where they occur.
-ModuleStructureEventFormRegionsCheck_Event_method__0__should_be_placed_in_the_region__1=The event method "{0}" should be placed in the "{1}" region
+NewColorCheck_Using_new_color = Using the "New Color" construction
-ModuleStructureEventFormRegionsCheck_Excluded_method_names=Comma-separated list of excluded command event method names
+NewFontCheck_Description = To change the font you should use style elements
-ModuleStructureEventFormRegionsCheck_Multilevel_nesting_of_regions=Allow multilevel nesting of regions
+NewFontCheck_Issue = To change the font you should use style elements
-ModuleStructureEventFormRegionsCheck_Title=Checks the region of form event handlers for methods related only to handlers
-
-ModuleStructureEventRegionsCheck_Description=Checks the region of event handlers for the existence of methods related only to handlers
-
-ModuleStructureEventRegionsCheck_Event_handler__0__not_region__1=The event handler "{0}" should be placed in the "{1}" region
-
-ModuleStructureEventRegionsCheck_Only_event_methods__0=Only event methods can be placed in the "{0}" region
-
-ModuleStructureEventRegionsCheck_Title=Checks the region of event handlers for the existence of methods related only to handlers
-
-ModuleStructureInitCodeInRegion_Description=Initialize code should be placed in the Initialize region
-
-ModuleStructureInitCodeInRegion_Issue__0=Initialize code should be placed in the {0} region
-
-ModuleStructureInitCodeInRegion_Title=Initialize code is in the correct region
-
-ModuleStructureMethodInRegionCheck_Description=Checks that the method is outside the standard region, and suggests placing the method in one of the standard regions for the current type of module
-
-ModuleStructureMethodInRegionCheck_Method_should_be_placed_in_one_of_the_standard_regions=The method "{0}" should be placed in one of the standard regions: {1}
-
-ModuleStructureMethodInRegionCheck_Multilevel_nesting_of_regions=Allow multilevel nesting of regions
-
-ModuleStructureMethodInRegionCheck_Only_export=Only export methods can be placed in the "{0}" region
-
-ModuleStructureMethodInRegionCheck_Title=Method is outside a standard region
-
-ModuleStructureVariablesInRegionCheck_Description=Variable declaration should be placed in the variable declaration region
-
-ModuleStructureVariablesInRegionCheck_Issue__0=Variable declaration should be placed in the {0} region
-
-ModuleStructureVariablesInRegionCheck_Title=Variable declaration is in the correct region
-
-NewColorCheck_Use_style_elements=To change the design, you should use style elements, and not set specific values directly in the controls
-
-NewColorCheck_Use_style_elements_not_specific_values=To change the design, you should use style elements, and not set specific values directly in the controls. This is required in order for similar controls to look the same in all forms where they occur.
-
-NewColorCheck_Using_new_color=Using the "New Color" construction
-
-NewFontCheck_Description=To change the font you should use style elements
-
-NewFontCheck_Issue=To change the font you should use style elements
-
-NewFontCheck_Title=Using the "New Font" construction
+NewFontCheck_Title = Using the "New Font" construction
NotifyDescriptionToServerProcedureCheck_Notify_description_procedure_should_be_export = Notify description procedure should exist and be export
@@ -381,25 +380,47 @@ QueryInLoop_description = Check query in loop
QueryInLoop_title = Query in loop
+ReadingAttributesFromDataBaseCheck_Description = Reading single object attribute from the database
+
+ReadingAttributesFromDataBaseCheck_Issue__0 = When the {0} is read from the reference, the entire object is imported from the database
+
+ReadingAttributesFromDataBaseCheck_Message = Allow field access with composite non reference type
+
+ReadingAttributesFromDataBaseCheck_Title = Reading single object attribute from the database
+
+RedundantExportCheck_Escess_title = Redundant Export keyword
+
+RedundantExportCheck_Excess_description = Checks the modules contain unused export procedures and functions. The check searches for all references to the method, so it can take a long time.
+
+RedundantExportCheck_Exclude_title = Comma-separated list of excluded region names
+
+RedundantExportCheck_Unused_export_method__0 = Unused export method "{0}"
+
RegionEmptyCheck_Region_is_empty = Region is empty
RegionEmptyCheck_description = Check that module region is empty
RegionEmptyCheck_title = Region is empty
-RollbackTransactionCheck_Rollback_transaction_must_be_in_try_catch=Rollback transaction must be in a try-catch
+RollbackTransactionCheck_No_begin_transaction_for_rollback_transaction = There is no begin transaction for rollback transaction
-RollbackTransactionCheck_Transactions_is_broken=Rollback transaction is incorrect
+RollbackTransactionCheck_No_commit_transaction_for_begin_transaction = There is no commit transaction for begin transaction
-RollbackTransactionCheck_Transactions_is_broken_des=Rollback transaction must be in a try-catch, there should be no executable code between exception and rollback transaction, there is no begin transaction for rollback transaction, there is no commit transaction for begin transaction.
+RollbackTransactionCheck_Rollback_transaction_must_be_in_try_catch = Rollback transaction must be in a try-catch
-SelfReferenceCheck_check_only_existing_form_properties=Check only existing form properties
+RollbackTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback = There should be no executable code between exception and rollback transaction
-SelfReferenceCheck_Description=Excessive usage of self reference (when referencing method, property or attribute)
+RollbackTransactionCheck_Transactions_is_broken = Rollback transaction is incorrect
-SelfReferenceCheck_Title=Excessive self reference
+RollbackTransactionCheck_Transactions_is_broken_des = Rollback transaction must be in a try-catch, there should be no executable code between exception and rollback transaction, there is no begin transaction for rollback transaction, there is no commit transaction for begin transaction.
-SelfReferenceCheck_Issue=Excessive usage of self reference (when referencing method, property or attribute)
+SelfReferenceCheck_Description = Excessive usage of self reference (when referencing method, property or attribute)
+
+SelfReferenceCheck_Issue = Excessive usage of self reference (when referencing method, property or attribute)
+
+SelfReferenceCheck_Title = Excessive self reference
+
+SelfReferenceCheck_check_only_existing_form_properties = Check only existing form properties
ServerExecutionSafeModeCheck_description = Safe mode is not enabled when calling "Execute" or "Eval'
@@ -417,6 +438,14 @@ StructureCtorTooManyKeysCheck_description = Check structure constructor has too
StructureCtorTooManyKeysCheck_title = Structure constructor has too many keys
+UseGotoOperatorCheck_Use_Goto_operator=Use Goto operator
+
+UseGotoOperatorCheck_Use_Label_with_Goto_operator=Use Label with Goto operator
+
+UseGotoOperatorCheck_description = Use Goto operator
+
+UseGotoOperatorCheck_title = Use Goto operator
+
UseNonRecommendedMethods_description = Using non-recommended methods
UseNonRecommendedMethods_message = Using non-recommended method
@@ -424,15 +453,3 @@ UseNonRecommendedMethods_message = Using non-recommended method
UseNonRecommendedMethods_parameter = List of non-recommended methods
UseNonRecommendedMethods_title = Using non-recommended methods
-
-ModuleUndefinedVariableCheck_Title = Undefined variable
-ModuleUndefinedVariableCheck_Description = Undefined variable
-ModuleUndefinedVariable_msg = Variable "{0}" is not defined
-
-ModuleUndefinedMethodCheck_Title = Undefined method
-ModuleUndefinedMethodCheck_Description = Undefined function or procedure
-
-ModuleUndefinedFunctionCheck_Title = Undefined function
-ModuleUndefinedFunctionCheck_Description = Undefined function
-ModuleUndefinedFunction_msg = Function "{0}" is not defined
-ModuleUndefinedMethod_msg = Procedure or function "{0}" is not defined
diff --git a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages_ru.properties b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages_ru.properties
index 432a1ec3..53aced68 100644
--- a/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages_ru.properties
+++ b/bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/messages_ru.properties
@@ -36,11 +36,19 @@ AttachableEventHandlerNameCheck_Message = Программно добавлен
AttachableEventHandlerNameCheck_Title = Имя подключаемого обработчика события
-CachedPublicCheck_Description=Кэширование интерфейсного метода
+BeginTransactionCheck_Begin_transaction_is_incorrect = Нарушена схема работы с "НачатьТранзакцию()"
-CachedPublicCheck_Issue=Не рекомендуется кэшировать программный интерфейс
+BeginTransactionCheck_Executable_code_between_begin_transaction_and_try = Между "НачатьТранзакцию()" и "Попытка" есть исполняемый код
-CachedPublicCheck_Title=Кэширование интерфейсного метода
+BeginTransactionCheck_Try_must_be_after_begin = После начала транзакции не найден оператор "Попытка"
+
+BeginTransactionCheck_Try_was_not_found_after_calling_begin = Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
+
+CachedPublicCheck_Description = Кэширование интерфейсного метода
+
+CachedPublicCheck_Issue = Не рекомендуется кэшировать программный интерфейс
+
+CachedPublicCheck_Title = Кэширование интерфейсного метода
CanonicalPragmaCheck_Pragma_0_is_not_written_canonically_correct_spelling_is_1 = Аннотация {0} написана не канонически, правильное написание {1}
@@ -54,59 +62,43 @@ ChangeAndValidateInsteadOfAroundCheck_description = Проверяет, что
ChangeAndValidateInsteadOfAroundCheck_title = Используется аннотация &ИзменениеИКонтроль вместо &Вместо
-CommitTransactionCheck_Commit_transaction_must_be_in_try_catch=Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
+CommitTransactionCheck_Commit_transaction_must_be_in_try_catch = Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение"
-CommitTransactionCheck_No_begin_transaction_for_commit_transaction=Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
+CommitTransactionCheck_No_begin_transaction_for_commit_transaction = Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()"
-CommitTransactionCheck_No_begin_transaction_for_rollback_transaction=Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
+CommitTransactionCheck_No_begin_transaction_for_rollback_transaction = Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()"
-CommitTransactionCheck_No_rollback_transaction_for_begin_transaction=Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
+CommitTransactionCheck_No_rollback_transaction_for_begin_transaction = Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
-CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception=Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
+CommitTransactionCheck_Should_be_no_executable_code_between_commit_and_exception = Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение
-CommitTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback=Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
+CommitTransactionCheck_Should_be_no_executable_code_between_exception_and_rollback = Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение
-BeginTransactionCheck_Executable_code_between_begin_transaction_and_try=Между "НачатьТранзакцию()" и "Попытка" есть исполняемый код
+CommitTransactionCheck_Transaction_contains_empty_except = Транзакция содержит пустой блок Исключение
-BeginTransactionCheck_Try_was_not_found_after_calling_begin=Не найден оператор "Попытка" после вызова "НачатьТранзакцию()"
+CommitTransactionCheck_Transactions_is_broken = Нарушена схема работы с "ЗафиксироватьТранзакцию()"
-BeginTransactionCheck_Begin_transaction_is_incorrect=Нарушена схема работы с "НачатьТранзакцию()"
+CommitTransactionCheck_Transactions_is_broken_des = Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()". Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение.
-BeginTransactionCheck_Try_must_be_after_begin=После начала транзакции не найден оператор "Попытка"
+CommonModuleMissingApiCheck_Description = Программный интерфейс
-CommonModuleMissingApiCheck_Description=Программный интерфейс
+CommonModuleMissingApiCheck_Issue = Общий модуль не содержит программный интерфейс
-CommonModuleMissingApiCheck_Issue=Общий модуль не содержит программный интерфейс
+CommonModuleMissingApiCheck_Title = Программный интерфейс
-CommonModuleMissingApiCheck_Title=Программный интерфейс
+CommonModuleNamedSelfReferenceCheck_description = Избыточное обращение по собственному имени
-CommitTransactionCheck_Transaction_contains_empty_except=Транзакция содержит пустой блок Исключение
+CommonModuleNamedSelfReferenceCheck_issue = Избыточное обращение по собственному имени
-CommitTransactionCheck_Transactions_is_broken=Нарушена схема работы с "ЗафиксироватьТранзакцию()"
+CommonModuleNamedSelfReferenceCheck_title = Избыточное обращение по собственному имени в общем модуле
-CommitTransactionCheck_Transactions_is_broken_des=Вызов "ЗафиксироватьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ЗафиксироватьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()". Между "ЗафиксироватьТранзакцию()" и "Исключение" есть исполняемый код, который может вызвать исключение.
+ConsecutiveEmptyLines_Description = Последовательно расположенные пустые строки
-CommitTransactionCheck_No_rollback_transaction_for_begin_transaction=Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ОтменитьТранзакцию()"
+ConsecutiveEmptyLines_Parameter_title = Максимальное количество последовательно расположенных пустых строк
-RollbackTransactionCheck_No_commit_transaction_for_begin_transaction=Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
+ConsecutiveEmptyLines_Sequence_of_empty_lines_between__0__and__1__is_greator_than__2 = Между строками {0} и {1} расположено больше {2} пустых строк
-RollbackTransactionCheck_Transactions_is_broken=Нарушена схема работы с "ОтменитьТранзакцию()"
-
-RollbackTransactionCheck_Transactions_is_broken_des=Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()". Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение.
-
-CommonModuleNamedSelfReferenceCheck_description=Избыточное обращение по собственному имени
-
-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=Последовательность пустых строк
+ConsecutiveEmptyLines_Title = Последовательность пустых строк
DeprecatedProcedureOutsideDeprecatedRegionCheck_Deprecated_function_out_of_deprecated_area = Устаревшую процедуру (функцию) "{0}" следует перенести в область общего модуля УстаревшиеПроцедурыИФункции, размещенную внутри области ПрограммныйИнтерфейс
@@ -144,53 +136,37 @@ EventHandlerBooleanParamCheck_description = Использование буле
EventHandlerBooleanParamCheck_title = Использование булевого параметра обработчика события
-ReadingAttributesFromDataBaseCheck_Message=Разрешить доступ к полю с составным не ссылочным типом
+ExportMethodInCommandFormModuleCheck_CheckClientMethodForm = Проверить клиентский метод формы
-ReadingAttributesFromDataBaseCheck_Description=Чтение отдельного реквизита объекта из базы данных
+ExportMethodInCommandFormModuleCheck_CheckServerMethodForm = Проверить серверный метод формы
-ReadingAttributesFromDataBaseCheck_Issue__0=При чтении атрибута {0} из ссылки, весь объект импортируется из базы данных
+ExportMethodInCommandFormModuleCheck_ExludeMethodNamePattern = Шаблон исключаемых имен методов
-ReadingAttributesFromDataBaseCheck_Title=Чтение отдельного реквизита объекта из базы данных
+ExportMethodInCommandFormModuleCheck_Notify_description_methods = Список исключаемых имен методов оповещения, разделенные запятой
-RedundantExportCheck_Escess_title= Избыточное ключевое слово Экспорт
+ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_des = Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.
-RedundantExportCheck_Excess_description=Проверка текстов модулей конфигурации на содержание неиспользуемые экспортные процедуры и функции. Проверка выполняет поиск всех ссылок на метод, поэтому может выполняться длительное время.
+ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_result = Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.
-RedundantExportCheck_Exclude_title=Список исключаемых имен областей, разделенных запятой
+ExportMethodInCommandModule_Do_not_use_export_method_in_commands_module = Ограничения на использование экспортных процедур и функций
-RedundantExportCheck_Unused_export_method__0=Неиспользуемый экспортный метод "{0}"
+ExportVariableInObjectModuleCheck_Description = Использование экспортной переменной не рекомендовано
-ExportMethodInCommandFormModuleCheck_CheckClientMethodForm=Проверить клиентский метод формы
+ExportVariableInObjectModuleCheck_Issue = Не рекомендуется использовать экспортную переменную в модуле объекта
-ExportMethodInCommandFormModuleCheck_CheckServerMethodForm=Проверить серверный метод формы
+ExportVariableInObjectModuleCheck_Title = Использование экспортной переменной не рекомендовано
-ExportMethodInCommandFormModuleCheck_ExludeMethodNamePattern=Шаблон исключаемых имен методов
+ExtensionMethodPrefixCheck_Description = Имя метода не содержит префикс расширения
-ExportMethodInCommandFormModuleCheck_Notify_description_methods=Список исключаемых имен методов оповещения, разделенные запятой
+ExtensionMethodPrefixCheck_Ext_method__0__should_have__1__prefix = Имя метода "{0}" должно содержать префикс "{1}"
-ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_des=Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.
+ExtensionMethodPrefixCheck_Title = Метод расширения не содержит в имени метода префикс расширения
-ExportMethodInCommandModule_Do_not_emded_export_method_in_modules_of_command_result=Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.
+ExtensionVariablePrefixCheck_Description = Переменная модуля расширения должна в имени содержать префикс расширения
-ExportMethodInCommandModule_Do_not_use_export_method_in_commands_module=Ограничения на использование экспортных процедур и функций
+ExtensionVariablePrefixCheck_Title = Переменная расширения должна содержать в имени префикс расширения
-ExportVariableInObjectModuleCheck_Description=Использование экспортной переменной не рекомендовано
-
-ExportVariableInObjectModuleCheck_Issue=Не рекомендуется использовать экспортную переменную в модуле объекта
-
-ExportVariableInObjectModuleCheck_Title=Использование экспортной переменной не рекомендовано
-
-ExtensionVariablePrefixCheck_Description=Переменная модуля расширения должна в имени содержать префикс расширения
-
-ExtensionVariablePrefixCheck_Title=Переменная расширения должна содержать в имени префикс расширения
-
-ExtensionVariablePrefixCheck_Variable_0_should_have_1_prefix=Переменная "{0}" должна иметь префикс "{1}"
-
-ExtensionMethodPrefixCheck_Description=Имя метода не содержит префикс расширения
-
-ExtensionMethodPrefixCheck_Ext_method__0__should_have__1__prefix=Имя метода "{0}" должно содержать префикс "{1}"
-
-ExtensionMethodPrefixCheck_Title=Метод расширения не содержит в имени метода префикс расширения
+ExtensionVariablePrefixCheck_Variable_0_should_have_1_prefix = Переменная "{0}" должна иметь префикс "{1}"
FormModuleMissingPragmaCheck_Missing_compilation_directives = Пропущена директива компиляции
@@ -204,37 +180,37 @@ FormModulePragmaCheck_description = Использование директив
FormModulePragmaCheck_title = Использование директив компиляции модуля формы
-FormSelfReferenceOutdatedCheck_Description=Следует использовать псевдоним "ЭтотОбъект" вместо устаревшего "ЭтаФорма"
+FormSelfReferenceOutdatedCheck_Description = Следует использовать псевдоним "ЭтотОбъект" вместо устаревшего "ЭтаФорма"
-FormSelfReferenceOutdatedCheck_Issue=Следует использовать псевдоним "ЭтотОбъект" вместо устаревшего "ЭтаФорма"
+FormSelfReferenceOutdatedCheck_Issue = Следует использовать псевдоним "ЭтотОбъект" вместо устаревшего "ЭтаФорма"
-FormSelfReferenceOutdatedCheck_Title=Использование устаревшего псевдонима
+FormSelfReferenceOutdatedCheck_Title = Использование устаревшего псевдонима
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_description=Программный вызов обработчика события формы
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_description = Программный вызов обработчика события формы
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_result=Программный вызов обработчика события формы
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_result = Программный вызов обработчика события формы
-InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_title=Программный вызов обработчика события формы
+InvocationFormEventHandlerCheck_Program_invocation_of_form_event_handler_title = Программный вызов обработчика события формы
IsInRoleCheck_Exception_Roles = Непроверяемые роли
IsInRoleCheck_Use_AccessRight = Следует использовать метод "ПравоДоступа" вместо "РольДоступна"
-IsInRoleCheck_Using_IsInRole = Использован не рекомендованный метод "РольДоступна"
-
IsInRoleCheck_Use_AccessRight_instead_IsInRole = Используйте функцию "ПравоДоступа()" вместо "РольДоступна()"
-LockOutOfTry_Checks_for_init_of_the_data_lock=Правило проверяет наличие инициализации блокировки данных. В случае если найдено создание блокировки, проверяется вызов метода "Заблокировать()", при этом вызов должен быть в попытке.
+IsInRoleCheck_Using_IsInRole = Использован не рекомендованный метод "РольДоступна"
-LockOutOfTry_Lock_out_of_try=Метод Заблокировать() вне блока Попытка-Исключение
+LockOutOfTry_Checks_for_init_of_the_data_lock = Правило проверяет наличие инициализации блокировки данных. В случае если найдено создание блокировки, проверяется вызов метода "Заблокировать()", при этом вызов должен быть в попытке.
-LockOutOfTry_Method_lock_out_of_try=Метод Заблокировать() вне блока Попытка-Исключение
+LockOutOfTry_Lock_out_of_try = Метод Заблокировать() вне блока Попытка-Исключение
-ManagerModuleNamedSelfReferenceCheck_description=Избыточное обращение по собственному имени
+LockOutOfTry_Method_lock_out_of_try = Метод Заблокировать() вне блока Попытка-Исключение
-ManagerModuleNamedSelfReferenceCheck_issue=Избыточное обращение по собственному имени
+ManagerModuleNamedSelfReferenceCheck_description = Избыточное обращение по собственному имени
-ManagerModuleNamedSelfReferenceCheck_title=Избыточное обращение по собственному имени в модуле менеджера
+ManagerModuleNamedSelfReferenceCheck_issue = Избыточное обращение по собственному имени
+
+ManagerModuleNamedSelfReferenceCheck_title = Избыточное обращение по собственному имени в модуле менеджера
MethodTooManyPramsCheck_Max_parameters = Максимум параметров
@@ -266,45 +242,81 @@ ModuleEmptyMethodCheck_Exclude_method_name_pattern_title = Шаблон искл
ModuleEmptyMethodCheck_Title = Проверка пустых методов
+ModuleStructureEventFormRegionsCheck_Description = Проверяет методы области обработчиков событий формы относящиеся только к обработчикам
+
+ModuleStructureEventFormRegionsCheck_Event_method__0__can_not_be_placed_in_the_region__1 = Метод "{0}" не следует размещать в области "{1}"
+
+ModuleStructureEventFormRegionsCheck_Event_method__0__should_be_placed_in_the_region__1 = Обработчик события "{0}" следует разместить в области "{1}"
+
+ModuleStructureEventFormRegionsCheck_Excluded_method_names = Исключение имена методов, разделенные запятой
+
+ModuleStructureEventFormRegionsCheck_Multilevel_nesting_of_regions = Разрешить многоуровневое вложение областей
+
+ModuleStructureEventFormRegionsCheck_Title = Проверяет методы области обработчиков событий формы относящиеся только к обработчикам
+
+ModuleStructureEventRegionsCheck_Description = Проверяет область обработчиков событий на наличие методов относящихся только к обработчикам
+
+ModuleStructureEventRegionsCheck_Event_handler__0__not_region__1 = Обработчик событий "{0}" следует разместить в область "{1}"
+
+ModuleStructureEventRegionsCheck_Only_event_methods__0 = В области ''{0}'' следует размещать только обработчики событий
+
+ModuleStructureEventRegionsCheck_Title = Проверяет область обработчиков событий на наличие методов относящихся только к обработчикам
+
+ModuleStructureInitCodeInRegion_Description = Код инициализации следует расположить в области инициализации
+
+ModuleStructureInitCodeInRegion_Issue__0 = Код инициализации следует расположить в области {0}
+
+ModuleStructureInitCodeInRegion_Title = Код инициализации расположен не в правильной области
+
+ModuleStructureMethodInRegionCheck_Description = Проверяет что метод находится вне области, и предлагает поместить метод в одну из стандартных для текущего типа модуля область
+
+ModuleStructureMethodInRegionCheck_Method_should_be_placed_in_one_of_the_standard_regions = Метод "{0}" необходимо разместить в одной из верхнеуровневых областей: {1}
+
+ModuleStructureMethodInRegionCheck_Multilevel_nesting_of_regions = Разрешить многоуровневое вложение областей
+
+ModuleStructureMethodInRegionCheck_Title = Метод вне области
+
+ModuleStructureTopRegionCheck_Check_duplicates_of_standard_regions = Дубли стандартных областей
+
+ModuleStructureTopRegionCheck_Check_order_of_standard_regions = Порядок стандартных областей
+
+ModuleStructureTopRegionCheck_Exclude_region_name = Список имен областей исключений, разделенный запятой
+
+ModuleStructureTopRegionCheck_Region_has_duplicate = Дублирование стандартной области
+
+ModuleStructureTopRegionCheck_Region_has_the_wrong_order = Неправильный порядок стандартной области
+
+ModuleStructureTopRegionCheck_Region_is_not_standard_for_current_type_of_module = Область не стандартная для текущего типа модуля
+
ModuleStructureTopRegionCheck_description = Проверить, что области верхнего уровня структуры модуля соответствуют стандарту
ModuleStructureTopRegionCheck_error_message = Стандартная область структуры модуля является вложенной
ModuleStructureTopRegionCheck_title = Стандартная область структуры модуля верхнеуровневая
-ModuleStructureTopRegionCheck_Check_duplicates_of_standard_regions=Дубли стандартных областей
+ModuleStructureVariablesInRegionCheck_Description = Объявление переменной должно быть помещено в область объявления переменной
-ModuleStructureTopRegionCheck_Check_order_of_standard_regions=Порядок стандартных областей
+ModuleStructureVariablesInRegionCheck_Issue__0 = Объявление переменной должно быть помещено в область {0}
-ModuleStructureTopRegionCheck_Exclude_region_name=Список имен областей исключений, разделенный запятой
+ModuleStructureVariablesInRegionCheck_Title = Объявление переменных расположено в правильной области
-ModuleStructureTopRegionCheck_Region_has_duplicate=Дублирование стандартной области
+ModuleUndefinedFunctionCheck_Description = Функция не определена
-ModuleStructureTopRegionCheck_Region_has_the_wrong_order=Неправильный порядок стандартной области
+ModuleUndefinedFunctionCheck_Title = Функция не определена
-ModuleStructureTopRegionCheck_Region_is_not_standard_for_current_type_of_module=Область не стандартная для текущего типа модуля
+ModuleUndefinedFunction_msg = Функция "{0}" не определена
-ModuleStructureEventFormRegionsCheck_Multilevel_nesting_of_regions = Разрешить многоуровневое вложение областей
+ModuleUndefinedMethodCheck_Description = Функция или процедура не определена
-ModuleStructureMethodInRegionCheck_Multilevel_nesting_of_regions = Разрешить многоуровневое вложение областей
+ModuleUndefinedMethodCheck_Title = Метод не определен
-ModuleStructureMethodInRegionCheck_Title = Метод вне области
+ModuleUndefinedMethod_msg = Процедура или функция "{0}" не определена
-ModuleStructureMethodInRegionCheck_Description = Проверяет что метод находится вне области, и предлагает поместить метод в одну из стандартных для текущего типа модуля область
+ModuleUndefinedVariableCheck_Description = Переменная не определена
-ModuleStructureMethodInRegionCheck_Method_should_be_placed_in_one_of_the_standard_regions = Метод "{0}" необходимо разместить в одной из верхнеуровневых областей: {1}
+ModuleUndefinedVariableCheck_Title = Переменная не определена
-ModuleStructureInitCodeInRegion_Description=Код инициализации следует расположить в области инициализации
-
-ModuleStructureInitCodeInRegion_Issue__0=Код инициализации следует расположить в области {0}
-
-ModuleStructureInitCodeInRegion_Title=Код инициализации расположен не в правильной области
-
-ModuleStructureVariablesInRegionCheck_Description=Объявление переменной должно быть помещено в область объявления переменной
-
-ModuleStructureVariablesInRegionCheck_Issue__0=Объявление переменной должно быть помещено в область {0}
-
-ModuleStructureVariablesInRegionCheck_Title=Объявление переменных расположено в правильной области
+ModuleUndefinedVariable_msg = Переменная "{0}" не определена
ModuleUnusedLocalVariableCheck_Description = Проверка модуля на наличие неиспользуемых локальных переменных
@@ -322,35 +334,17 @@ ModuleUnusedMethodCheck_Title = Проверка неиспользуемых м
ModuleUnusedMethodCheck_Unused_method__0 = Неиспользуемый метод "{0}"
-ModuleStructureEventFormRegionsCheck_Description=Проверяет методы области обработчиков событий формы относящиеся только к обработчикам
+NewColorCheck_Use_style_elements = Для изменения оформления следует использовать элементы стиля, а не задавать конкретные значения непосредственно в элементах управления
-ModuleStructureEventFormRegionsCheck_Event_method__0__can_not_be_placed_in_the_region__1=Метод "{0}" не следует размещать в области "{1}"
+NewColorCheck_Use_style_elements_not_specific_values = Для изменения оформления следует использовать элементы стиля, а не задавать конкретные значения непосредственно в элементах управления. Это требуется для того, чтобы аналогичные элементы управления выглядели одинаково во всех формах, где они встречаются.
-ModuleStructureEventFormRegionsCheck_Event_method__0__should_be_placed_in_the_region__1=Обработчик события "{0}" следует разместить в области "{1}"
+NewColorCheck_Using_new_color = Использование конструкции "Новый Цвет"
-ModuleStructureEventFormRegionsCheck_Excluded_method_names=Исключение имена методов, разделенные запятой
+NewFontCheck_Description = Для изменения шрифта следует использовать элементы стиля
-ModuleStructureEventFormRegionsCheck_Title=Проверяет методы области обработчиков событий формы относящиеся только к обработчикам
+NewFontCheck_Issue = Для изменения шрифта следует использовать элементы стиля
-ModuleStructureEventRegionsCheck_Only_event_methods__0 = В области ''{0}'' следует размещать только обработчики событий
-
-ModuleStructureEventRegionsCheck_Description=Проверяет область обработчиков событий на наличие методов относящихся только к обработчикам
-
-ModuleStructureEventRegionsCheck_Event_handler__0__not_region__1=Обработчик событий "{0}" следует разместить в область "{1}"
-
-ModuleStructureEventRegionsCheck_Title=Проверяет область обработчиков событий на наличие методов относящихся только к обработчикам
-
-NewFontCheck_Description=Для изменения шрифта следует использовать элементы стиля
-
-NewFontCheck_Issue=Для изменения шрифта следует использовать элементы стиля
-
-NewFontCheck_Title=Использование конструкции "Новый Шрифт"
-
-NewColorCheck_Use_style_elements=Для изменения оформления следует использовать элементы стиля, а не задавать конкретные значения непосредственно в элементах управления
-
-NewColorCheck_Use_style_elements_not_specific_values=Для изменения оформления следует использовать элементы стиля, а не задавать конкретные значения непосредственно в элементах управления. Это требуется для того, чтобы аналогичные элементы управления выглядели одинаково во всех формах, где они встречаются.
-
-NewColorCheck_Using_new_color=Использование конструкции "Новый Цвет"
+NewFontCheck_Title = Использование конструкции "Новый Шрифт"
NotifyDescriptionToServerProcedureCheck_Notify_description_procedure_should_be_export = Процедура описания оповещения должна существовать и быть экспортной
@@ -388,21 +382,43 @@ QueryInLoop_description = Проверка запрос в цикле
QueryInLoop_title = Запрос в цикле
+ReadingAttributesFromDataBaseCheck_Description = Чтение отдельного реквизита объекта из базы данных
+
+ReadingAttributesFromDataBaseCheck_Issue__0 = При чтении атрибута {0} из ссылки, весь объект импортируется из базы данных
+
+ReadingAttributesFromDataBaseCheck_Message = Разрешить доступ к полю с составным не ссылочным типом
+
+ReadingAttributesFromDataBaseCheck_Title = Чтение отдельного реквизита объекта из базы данных
+
+RedundantExportCheck_Escess_title = Избыточное ключевое слово Экспорт
+
+RedundantExportCheck_Excess_description = Проверка текстов модулей конфигурации на содержание неиспользуемые экспортные процедуры и функции. Проверка выполняет поиск всех ссылок на метод, поэтому может выполняться длительное время.
+
+RedundantExportCheck_Exclude_title = Список исключаемых имен областей, разделенных запятой
+
+RedundantExportCheck_Unused_export_method__0 = Неиспользуемый экспортный метод "{0}"
+
RegionEmptyCheck_Region_is_empty = Область пустая
RegionEmptyCheck_description = Проверяет что область модуля пустая
RegionEmptyCheck_title = Область пустая
-RollbackTransactionCheck_Rollback_transaction_must_be_in_try_catch=Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
+RollbackTransactionCheck_No_commit_transaction_for_begin_transaction = Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()"
-SelfReferenceCheck_check_only_existing_form_properties=Проверять только существующие свойства в форме
+RollbackTransactionCheck_Rollback_transaction_must_be_in_try_catch = Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение"
-SelfReferenceCheck_Description=Избыточное обращение внутри модуля через псевдоним "ЭтотОбъект" (к методу, свойству или реквизиту)
+RollbackTransactionCheck_Transactions_is_broken = Нарушена схема работы с "ОтменитьТранзакцию()"
-SelfReferenceCheck_Title=Избыточное использование псевдонима "ЭтотОбъект"
+RollbackTransactionCheck_Transactions_is_broken_des = Вызов "ОтменитьТранзакцию()" находится вне конструкции "Попытка... Исключение". Отсутствует вызов "НачатьТранзакцию()", хотя вызываются "ОтменитьТранзакцию()". Для вызова "НачатьТранзакцию()" отсутствует парный вызов "ЗафиксироватьТранзакцию()". Между "Исключение" и "ОтменитьТранзакцию()" есть исполняемый код, который может вызвать исключение.
-SelfReferenceCheck_Issue=Избыточное обращение внутри модуля через псевдоним "ЭтотОбъект" (к методу, свойству или реквизиту)
+SelfReferenceCheck_Description = Избыточное обращение внутри модуля через псевдоним "ЭтотОбъект" (к методу, свойству или реквизиту)
+
+SelfReferenceCheck_Issue = Избыточное обращение внутри модуля через псевдоним "ЭтотОбъект" (к методу, свойству или реквизиту)
+
+SelfReferenceCheck_Title = Избыточное использование псевдонима "ЭтотОбъект"
+
+SelfReferenceCheck_check_only_existing_form_properties = Проверять только существующие свойства в форме
ServerExecutionSafeModeCheck_description = Отсутствует включение безопасного режима перед вызовом метода "Выполнить" или "Вычислить"
@@ -420,6 +436,14 @@ StructureCtorTooManyKeysCheck_description = Проверка конструкт
StructureCtorTooManyKeysCheck_title = Конструктор структуры содержит слишком много ключей
+UseGotoOperatorCheck_Use_Goto_operator_in_code = Использован оператор Перейти
+
+UseGotoOperatorCheck_Use_Label_with_Goto_operator_in_code = Использована Метка вместе с оператором Перейти
+
+UseGotoOperatorCheck_description = Использован оператор Перейти
+
+UseGotoOperatorCheck_title = Использован оператор Перейти
+
UseNonRecommendedMethods_description = Использование не рекомендованных методов
UseNonRecommendedMethods_message = Используется не рекомендуемый метод
@@ -427,14 +451,3 @@ UseNonRecommendedMethods_message = Используется не рекомен
UseNonRecommendedMethods_parameter = Список дополнительных не рекомендуемых методов для проверки
UseNonRecommendedMethods_title = Использование не рекомендуемых методов
-
-ModuleUndefinedVariableCheck_Title = Переменная не определена
-ModuleUndefinedVariableCheck_Description = Переменная не определена
-ModuleUndefinedVariable_msg = Переменная "{0}" не определена
-
-ModuleUndefinedMethodCheck_Title = Метод не определен
-ModuleUndefinedMethodCheck_Description = Функция или процедура не определена
-ModuleUndefinedFunctionCheck_Title = Функция не определена
-ModuleUndefinedFunctionCheck_Description = Функция не определена
-ModuleUndefinedFunction_msg = Функция "{0}" не определена
-ModuleUndefinedMethod_msg = Процедура или функция "{0}" не определена
diff --git a/tests/com.e1c.v8codestyle.bsl.itests/resources/use-goto-operator.bsl b/tests/com.e1c.v8codestyle.bsl.itests/resources/use-goto-operator.bsl
new file mode 100644
index 00000000..8ee4a6a0
--- /dev/null
+++ b/tests/com.e1c.v8codestyle.bsl.itests/resources/use-goto-operator.bsl
@@ -0,0 +1,16 @@
+Процедура ТестоваяПроцедура1()
+
+ Перейти ~КудаПерейти;
+
+ ~МеткаПервая:
+ ТестоваяПеременная = 1;
+
+ ТестоваяПроцедура2()
+
+КонецПроцедуры
+
+Процедура ТестоваяПроцедура2()
+
+ //Какой-то код...
+
+КонецПроцедуры
\ No newline at end of file
diff --git a/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/UseGotoOperatorCheckTest.java b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/UseGotoOperatorCheckTest.java
new file mode 100644
index 00000000..e5918b4a
--- /dev/null
+++ b/tests/com.e1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/UseGotoOperatorCheckTest.java
@@ -0,0 +1,50 @@
+package com.e1c.v8codestyle.bsl.check.itests;
+
+import static org.junit.Assert.assertEquals;
+
+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.UseGotoOperatorCheck;
+
+/**
+ * Tests for {@link UseGotoOperatorCheck} check.
+ *
+ * @author Vadim Goncharov
+ */
+public class UseGotoOperatorCheckTest
+ extends AbstractSingleModuleTestBase
+{
+
+ public UseGotoOperatorCheckTest()
+ {
+ super(UseGotoOperatorCheck.class);
+ }
+
+
+ /**
+ * Test the module use goto operator and labeled statement.
+ *
+ * @throws Exception the exception
+ */
+ @Test
+ public void testUseGotoOperator() throws Exception
+ {
+
+ updateModule(FOLDER_RESOURCE + "use-goto-operator.bsl");
+
+ List markers = getModuleMarkers();
+ assertEquals(2, markers.size());
+
+ Marker marker = markers.get(0);
+ assertEquals("3", marker.getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY));
+
+ marker = markers.get(1);
+ assertEquals("5", marker.getExtraInfo().get(IExtraInfoKeys.TEXT_EXTRA_INFO_LINE_KEY));
+
+ }
+
+}