Skip to content

Commit f44025f

Browse files
authored
Merge pull request #463 from 1c-syntax/feature/newFeatures240705
Доработки 240705
2 parents 3f03187 + 1109c78 commit f44025f

File tree

50 files changed

+426
-139
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+426
-139
lines changed

src/main/java/com/github/_1c_syntax/bsl/mdo/BusinessProcess.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,12 @@ public class BusinessProcess implements ReferenceObject {
9999
@Default
100100
MultiLanguageString explanation = MultiLanguageString.EMPTY;
101101

102+
/**
103+
* Ссылка на задачу
104+
*/
105+
@Default
106+
MdoReference task = MdoReference.EMPTY;
107+
102108
@Override
103109
public List<MD> getChildren() {
104110
return children.getOrCompute();

src/main/java/com/github/_1c_syntax/bsl/mdo/FilterCriterion.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ public class FilterCriterion implements MDObject, ModuleOwner, CommandOwner, For
9292
* Свое
9393
*/
9494

95+
/**
96+
* Состав критерия
97+
*/
98+
@Singular("addContent")
99+
List<MdoReference> content;
100+
95101
/**
96102
* Пояснение
97103
*/

src/main/java/com/github/_1c_syntax/bsl/mdo/Sequence.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,18 @@ public class Sequence implements MDObject, AttributeOwner, ModuleOwner {
7272
* Свое
7373
*/
7474

75+
/**
76+
* Измерения
77+
*/
7578
@Singular("dimension")
7679
List<Dimension> dimensions;
7780

81+
/**
82+
* Документы
83+
*/
84+
@Singular("addDocuments")
85+
List<MdoReference> documents;
86+
7887
/*
7988
* Для AttributeOwner
8089
*/

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.Collections;
3838
import java.util.List;
3939
import java.util.Objects;
40+
import java.util.stream.Collectors;
4041

4142
/**
4243
* Служебный класс для хранения контекста при "сборке" объекта при чтении из файла
@@ -114,13 +115,16 @@ private void setValueChildren() {
114115
var children = childrenNames.parallelStream()
115116
.map(fullName -> (MD) mdReader.read(fullName))
116117
.filter(Objects::nonNull)
117-
.toList();
118+
.collect(Collectors.toMap(md -> md.getMdoReference().getMdoRef(), md -> md));
118119

119-
children.forEach((MD child) -> {
120+
// после обработки порядок нарушился, необходимо его соблюсти
121+
childrenNames.forEach((String name) -> {
122+
var child = children.get(name);
123+
if (child != null) {
120124
var fieldName = child.getMdoType().getName();
121125
setValue(fieldName, child);
122126
setValue(CHILD_FILED_NAME, child);
123127
}
124-
);
128+
});
125129
}
126130
}

src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest.java

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import org.junit.jupiter.params.aggregator.ArgumentsAccessor;
3737
import org.junit.jupiter.params.provider.CsvSource;
3838

39+
import java.util.List;
40+
3941
import static org.assertj.core.api.Assertions.assertThat;
4042

4143

@@ -211,7 +213,7 @@ void testFullMdclasses(ArgumentsAccessor argumentsAccessor) {
211213
@ParameterizedTest
212214
@CsvSource(
213215
{
214-
"false, mdclasses_ext",
216+
"false, mdclasses_ext"
215217
}
216218
)
217219
void testFullExt(ArgumentsAccessor argumentsAccessor) {
@@ -227,6 +229,9 @@ void testFullExt(ArgumentsAccessor argumentsAccessor) {
227229
// проверка состава дочерних
228230
checkChildrenExt(cf);
229231

232+
// проверка порядок
233+
checkChildrenOrder(cf);
234+
230235
assertThat(cf.getPlainChildren())
231236
.hasSize(147)
232237
.allMatch(md -> md.getSupportVariant().equals(SupportVariant.NONE));
@@ -241,6 +246,21 @@ void testFullExt(ArgumentsAccessor argumentsAccessor) {
241246
.isEmpty();
242247
}
243248

249+
@ParameterizedTest
250+
@CsvSource(
251+
{
252+
"true, mdclasses_ext, _edt"
253+
}
254+
)
255+
void testFullExtEdt(ArgumentsAccessor argumentsAccessor) {
256+
var mdc = MDTestUtils.readConfiguration(argumentsAccessor, false);
257+
assertThat(mdc).isInstanceOf(ConfigurationExtension.class);
258+
var cf = (ConfigurationExtension) mdc;
259+
260+
// проверка порядок
261+
checkChildrenOrder(cf);
262+
}
263+
244264
@ParameterizedTest
245265
@CsvSource(
246266
{
@@ -878,4 +898,98 @@ private static void checkChildrenExt(ConfigurationExtension cf) {
878898
cf.getExternalDataSources().size());
879899
}
880900

901+
private static void checkChildrenOrder(ConfigurationExtension cf) {
902+
var ordered = List.of("Language.Русский",
903+
"Subsystem.ПерваяПодсистема",
904+
"Subsystem.ПерваяПодсистема1",
905+
"StyleItem.ЭлементСтиля1",
906+
"StyleItem.ЭлементСтиля2",
907+
"Style.Стиль1",
908+
"Style.Стиль2",
909+
"CommonPicture.ОбщаяКартинка1",
910+
"CommonPicture.ОбщаяКартинка2",
911+
"SessionParameter.ПараметрСеанса1",
912+
"SessionParameter.ПараметрСеанса2",
913+
"Role.Роль1",
914+
"Role.Роль2",
915+
"CommonTemplate.Макет",
916+
"CommonTemplate.Макет1",
917+
"FilterCriterion.КритерийОтбора1",
918+
"FilterCriterion.КритерийОтбора2",
919+
"CommonModule.ПростойОбщийМодуль",
920+
"CommonModule.ОбщийМодульВызовСервера",
921+
"CommonModule.ОбщийМодульПовтИспВызов",
922+
"CommonModule.ОбщийМодульПовтИспСеанс",
923+
"CommonModule.ОбщийМодульПолныйеПрава",
924+
"CommonModule.ПростойОбщийМодуль1",
925+
"CommonModule.ОбщийМодульВызовСервера1",
926+
"CommonModule.ОбщийМодульПовтИспВызов1",
927+
"CommonModule.ОбщийМодульПовтИспСеанс1",
928+
"CommonAttribute.ОбщийРеквизит1",
929+
"ExchangePlan.ПланОбмена1",
930+
"ExchangePlan.ПланОбмена2",
931+
"XDTOPackage.ПакетXDTO1",
932+
"XDTOPackage.ПакетXDTO2",
933+
"WebService.WebСервис1",
934+
"WebService.WebСервис2",
935+
"HTTPService.HTTPСервис1",
936+
"HTTPService.HTTPСервис2",
937+
"WSReference.WSСсылка1",
938+
"WSReference.WSСсылка2",
939+
"EventSubscription.ПодпискаНаСобытие1",
940+
"ScheduledJob.РегламентноеЗадание1",
941+
"SettingsStorage.ХранилищеНастроек1",
942+
"FunctionalOption.ФункциональнаяОпция1",
943+
"FunctionalOption.ФункциональнаяОпция2",
944+
"FunctionalOptionsParameter.ПараметрФункциональныхОпций1",
945+
"FunctionalOptionsParameter.ПараметрФункциональныхОпций2",
946+
"DefinedType.ОпределяемыйТип1",
947+
"CommonCommand.ОбщаяКоманда1",
948+
"CommonCommand.ОбщаяКоманда2",
949+
"CommandGroup.ГруппаКоманд1",
950+
"CommandGroup.ГруппаКоманд2",
951+
"Constant.Константа1",
952+
"Constant.Константа2",
953+
"CommonForm.Форма",
954+
"CommonForm.Форма1",
955+
"Catalog.Справочник1",
956+
"Catalog.Справочник2",
957+
"Document.Документ1",
958+
"Document.Документ2",
959+
"DocumentNumerator.НумераторДокументов1",
960+
"Sequence.Последовательность1",
961+
"DocumentJournal.ЖурналДокументов1",
962+
"Enum.Перечисление1",
963+
"Enum.Перечисление2",
964+
"Report.Отчет1",
965+
"Report.Отчет2",
966+
"DataProcessor.Обработка1",
967+
"DataProcessor.Обработка2",
968+
"InformationRegister.РегистрСведений1",
969+
"InformationRegister.РегистрСведений2",
970+
"InformationRegister.РегистрСведений3",
971+
"InformationRegister.РегистрСведений4",
972+
"AccumulationRegister.РегистрНакопления1",
973+
"AccumulationRegister.РегистрНакопления2",
974+
"ChartOfCharacteristicTypes.ПланВидовХарактеристик1",
975+
"ChartOfCharacteristicTypes.ПланВидовХарактеристик2",
976+
"ChartOfAccounts.ПланСчетов1",
977+
"ChartOfAccounts.ПланСчетов2",
978+
"AccountingRegister.РегистрБухгалтерии1",
979+
"AccountingRegister.РегистрБухгалтерии2",
980+
"ChartOfCalculationTypes.ПланВидовРасчета1",
981+
"ChartOfCalculationTypes.ПланВидовРасчета2",
982+
"CalculationRegister.РегистрРасчета2",
983+
"CalculationRegister.РегистрРасчета1",
984+
"BusinessProcess.БизнесПроцесс1",
985+
"Task.Задача1");
986+
987+
assertThat(cf.getChildren()).hasSize(ordered.size());
988+
989+
for (int i = 0; i < cf.getChildren().size(); i++) {
990+
var original = cf.getChildren().get(i);
991+
var fixture = ordered.get(i);
992+
assertThat(fixture).isEqualTo(original.getMdoReference().getMdoRef());
993+
}
994+
}
881995
}

src/test/resources/ext/designer/mdclasses/src/cf/FilterCriteria/КритерийОтбора1.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@
1717
<Comment/>
1818
<Type/>
1919
<UseStandardCommands>true</UseStandardCommands>
20-
<Content/>
20+
<Content>
21+
<xr:Item xsi:type="xr:MDObjectRef">Document.Документ1.Attribute.Реквизит1</xr:Item>
22+
<xr:Item xsi:type="xr:MDObjectRef">Document.Документ1.Attribute.Реквизит2</xr:Item>
23+
</Content>
2124
<DefaultForm/>
2225
<AuxiliaryForm/>
2326
<ListPresentation/>

src/test/resources/ext/designer/mdclasses/src/cf/Sequences/Последовательность1.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<MoveBoundaryOnPosting>Move</MoveBoundaryOnPosting>
2323
<Documents>
2424
<xr:Item xsi:type="xr:MDObjectRef">Document.Документ1</xr:Item>
25+
<xr:Item xsi:type="xr:MDObjectRef">Document.Документ2</xr:Item>
2526
</Documents>
2627
<RegisterRecords/>
2728
<DataLockControlMode>Managed</DataLockControlMode>

src/test/resources/ext/designer/mdclasses_ext/src/cf/Configuration.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@
137137
<AccountingRegister>РегистрБухгалтерии2</AccountingRegister>
138138
<ChartOfCalculationTypes>ПланВидовРасчета1</ChartOfCalculationTypes>
139139
<ChartOfCalculationTypes>ПланВидовРасчета2</ChartOfCalculationTypes>
140-
<CalculationRegister>РегистрРасчета1</CalculationRegister>
141140
<CalculationRegister>РегистрРасчета2</CalculationRegister>
141+
<CalculationRegister>РегистрРасчета1</CalculationRegister>
142142
<BusinessProcess>БизнесПроцесс1</BusinessProcess>
143143
<Task>Задача1</Task>
144144
</ChildObjects>

src/test/resources/ext/edt/mdclasses/configuration/src/FilterCriteria/КритерийОтбора1/КритерийОтбора1.mdo

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@
77
<name>КритерийОтбора1</name>
88
<type/>
99
<useStandardCommands>true</useStandardCommands>
10+
<content>Document.Документ1.Attribute.Реквизит1</content>
11+
<content>Document.Документ1.Attribute.Реквизит2</content>
1012
</mdclass:FilterCriterion>

src/test/resources/ext/edt/mdclasses/configuration/src/Sequences/Последовательность1/Последовательность1.mdo

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
</producedTypes>
88
<name>Последовательность1</name>
99
<documents>Document.Документ1</documents>
10+
<documents>Document.Документ2</documents>
1011
<dataLockControlMode>Managed</dataLockControlMode>
1112
<dimensions uuid="763b82dd-2fdb-4a02-a50b-3eb916c02d3d">
1213
<name>Измерение1</name>

0 commit comments

Comments
 (0)