1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-12-01 02:32:18 +02:00

#398 Реализована проверка на использование оператора Перейти

Реализована проверка на использование оператора "Перейти" в коде.
This commit is contained in:
Vadim Goncharov 2023-03-12 10:41:15 +03:00
parent f4095b1141
commit e9702bbf48
10 changed files with 574 additions and 308 deletions

View File

@ -16,6 +16,7 @@
#### Код модулей
- Проверка на использование оператора Перейти (Goto) в коде модулей
#### Запросы

View File

@ -0,0 +1,31 @@
# Используется оператор Перейти
В коде на встроенном языке не рекомендуется использовать оператор Перейти,
так как необдуманное использование данного оператора приводит к получению запутанных,
плохо структурированных модулей, по тексту которых затруднительно понять порядок
исполнения и взаимозависимость фрагментов. Вместо оператора Перейти рекомендуется использовать
другие конструкции встроенного языка.
## Неправильно
```bsl
Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
Перейти ~ПланВидовРасчета;
КонецЕсли;
```
## Правильно
```bsl
Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
ОбработатьПланВидовРасчета();
КонецЕсли;
```
## См.
- [Ограничение на использование оператора Перейти](https://its.1c.ru/db/v8std#content:547:hdoc:1)

View File

@ -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)

View File

@ -347,6 +347,10 @@
category="com.e1c.v8codestyle.bsl"
class="com.e1c.v8codestyle.internal.bsl.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.check.DeprecatedProcedureOutsideDeprecatedRegionCheck">
</check>
<check
category="com.e1c.v8codestyle.bsl.check"
class="com.e1c.v8codestyle.bsl.check.UseGotoOperatorCheck">
</check>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">

View File

@ -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;

View File

@ -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);
}
}
}
}
}

View File

@ -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

View File

@ -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}" не определена

View File

@ -0,0 +1,16 @@
Процедура ТестоваяПроцедура1()
Перейти ~КудаПерейти;
~МеткаПервая:
ТестоваяПеременная = 1;
ТестоваяПроцедура2()
КонецПроцедуры
Процедура ТестоваяПроцедура2()
//Какой-то код...
КонецПроцедуры

View File

@ -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<Marker> 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));
}
}