You've already forked v8-code-style
mirror of
https://github.com/1C-Company/v8-code-style.git
synced 2026-05-17 01:25:30 +02:00
Merge pull request #1515 from alonthedark/feature/issue-399-GoTo-operator-not-support-in-webclient
Feature/issue 399 go to operator not support in webclient
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# Unsupported Goto operator
|
||||
|
||||
Do not use the GoTo operator in common modules with the "Client (managed application)" flag selected,
|
||||
command modules, and client code of managed form modules as this method is not supported in the web client.
|
||||
|
||||
## Noncompliant Code Example
|
||||
|
||||
If ChartOfCalculationTypes = Object.ChartOfCalculationTypes Then
|
||||
|
||||
GoTo ~ChartOfCalculationTypes;
|
||||
|
||||
EndIf;
|
||||
|
||||
## Compliant Solution:
|
||||
|
||||
If ChartOfCalculationTypes = Object.ChartOfCalculationTypes Then
|
||||
|
||||
ProcessChartOfCalculationTypes();
|
||||
|
||||
EndIf;
|
||||
|
||||
## See
|
||||
|
||||
[GoTo operator](https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_Development_Standards/Code_conventions/Using_1C_Enterprise_language_structures/GoTo_operator/?language=en)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Ограничение на использование оператора Перейти
|
||||
|
||||
В коде на встроенном языке не рекомендуется использовать оператор Перейти, так как необдуманное использование
|
||||
данного оператора приводит к получению запутанных, плохо структурированных модулей, по тексту которых затруднительно
|
||||
понять порядок исполнения и взаимозависимость фрагментов. Вместо оператора Перейти рекомендуется использовать
|
||||
другие конструкции встроенного языка.
|
||||
Запрещается использовать оператор Перейти в общих модулях с признаком
|
||||
"Клиент (управляемое приложение)", модулях команд и в клиентском коде модулей управляемых форм, так как данный метод
|
||||
не поддерживается платформой 1С:Предприятие в режиме веб-клиента.
|
||||
|
||||
## Неправильно
|
||||
|
||||
Например, неправильно:
|
||||
|
||||
Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
|
||||
|
||||
Перейти ~ПланВидовРасчета;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
## Правильно
|
||||
|
||||
Например, правельно:
|
||||
|
||||
Если ПланВидовРасчета = Объект.ПланВидовРасчета Тогда
|
||||
|
||||
ОбработатьПланВидовРасчета();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
## См.
|
||||
|
||||
- [Ограничение на использование оператора Перейти](https://its.1c.ru/db/v8std#content:547:hdoc:2)
|
||||
@@ -0,0 +1,20 @@
|
||||
# Присвоение переменной самой себе
|
||||
|
||||
Присвоение переменной самой себе не имеет смысла и обычно указывает на ошибку.
|
||||
|
||||
## Неправильно
|
||||
|
||||
Например, неправильно:
|
||||
|
||||
П1 = "";
|
||||
П1 = П1;
|
||||
|
||||
## Правильно
|
||||
|
||||
Например, правельно:
|
||||
|
||||
П1 = "";
|
||||
|
||||
## См.
|
||||
|
||||
- [Присвоение переменной самой себе](https://1c-syntax.github.io/bsl-language-server/diagnostics/SelfAssign/)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Self assigne variable
|
||||
|
||||
Assigning a variable to itself is meaningless and usually indicates an error.
|
||||
|
||||
## Noncompliant Code Example
|
||||
|
||||
P1 = "";
|
||||
P1 = P1;
|
||||
|
||||
## Compliant Solution
|
||||
|
||||
P1 = "";
|
||||
|
||||
+8
@@ -31,12 +31,19 @@ import com.e1c.v8codestyle.bsl.check.NotSupportGotoOperatorWebCheck;
|
||||
public class NotSupportGotoOperatorCheckTest
|
||||
extends AbstractSingleModuleTestBase
|
||||
{
|
||||
private static final String PROJECT_NAME = "NotSupportGotoOperatorCheckTest";
|
||||
|
||||
public NotSupportGotoOperatorCheckTest()
|
||||
{
|
||||
super(NotSupportGotoOperatorWebCheck.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTestConfigurationName()
|
||||
{
|
||||
return PROJECT_NAME;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test not support goto operator.
|
||||
*
|
||||
@@ -47,6 +54,7 @@ public class NotSupportGotoOperatorCheckTest
|
||||
{
|
||||
updateModule(FOLDER_RESOURCE + "not-support-goto-operator.bsl");
|
||||
|
||||
|
||||
List<Marker> markers = getModuleMarkers();
|
||||
assertEquals(1, markers.size());
|
||||
Marker marker = markers.get(0);
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>StructureModule</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
|
||||
<nature>com._1c.g5.v8.dt.core.V8ConfigurationNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
Manifest-Version: 1.0
|
||||
Runtime-Version: 8.3.19
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6cbbf814-18db-453c-92ed-054a8f310cdc">
|
||||
<name>CommonModule</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Common module</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="da3da622-85c7-4a68-9cb7-0ee5aa7448e7">
|
||||
<name>StructureModule</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Structure module</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="11fab9f4-1ac8-4b90-974c-148dd1f1ee29"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="23524e35-34a7-4bc8-94d1-c314704aad64"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="bf5898bf-f470-4416-bbdf-78425a7ed95d"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="b1d7c42c-2468-422c-aae9-22ca0f17d470"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="95b2fb6a-d0b0-4bba-933f-f25846ff134c"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="212dac74-8939-4083-bd96-464aef7f5c0a"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="536422e3-5396-4bae-99a5-bdb058bfc993"/>
|
||||
<configurationExtensionCompatibilityMode>8.3.20</configurationExtensionCompatibilityMode>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
<functionality>
|
||||
<use>true</use>
|
||||
</functionality>
|
||||
<functionality>
|
||||
<functionality>OSBackup</functionality>
|
||||
<use>true</use>
|
||||
</functionality>
|
||||
</usedMobileApplicationFunctionalities>
|
||||
<defaultLanguage>Language.English</defaultLanguage>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<objectAutonumerationMode>NotAutoFree</objectAutonumerationMode>
|
||||
<modalityUseMode>DontUse</modalityUseMode>
|
||||
<synchronousPlatformExtensionAndAddInCallUseMode>DontUse</synchronousPlatformExtensionAndAddInCallUseMode>
|
||||
<compatibilityMode>8.3.20</compatibilityMode>
|
||||
<languages uuid="52ec6aa9-b177-434c-b409-1c456749c996">
|
||||
<name>English</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>English</value>
|
||||
</synonym>
|
||||
<languageCode>en</languageCode>
|
||||
</languages>
|
||||
<commonModules>CommonModule.CommonModule</commonModules>
|
||||
<eventSubscriptions>EventSubscription.EventSubscription</eventSubscriptions>
|
||||
<catalogs>Catalog.CatalogInRegion</catalogs>
|
||||
<catalogs>Catalog.CatalogInRegionWrongMethod</catalogs>
|
||||
<catalogs>Catalog.CatalogInWrongRegion</catalogs>
|
||||
</mdclass:Configuration>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
|
||||
Reference in New Issue
Block a user