1
0
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:
MaksimDzyuba
2025-11-25 09:15:56 +03:00
committed by GitHub
12 changed files with 183 additions and 0 deletions
@@ -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 = "";
@@ -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);
@@ -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>
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
@@ -0,0 +1,2 @@
Manifest-Version: 1.0
Runtime-Version: 8.3.19
@@ -0,0 +1,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>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>
@@ -0,0 +1,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>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>