1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-11-28 17:41:06 +02:00

Исправление ложного срабатывания проверки

This commit is contained in:
Dmitriy Marmyshev 2022-08-04 14:12:37 +03:00
parent 8b64491889
commit 7dd64a3462
10 changed files with 1471 additions and 24 deletions

View File

@ -27,6 +27,9 @@ Import-Package: com._1c.g5.v8.bm.core;version="[7.5.0,8.0.0)",
com._1c.g5.v8.dt.metadata.dbview;version="[4.0.0,5.0.0)",
com._1c.g5.v8.dt.metadata.mdclass;version="[8.0.0,9.0.0)",
com._1c.g5.v8.dt.platform.version;version="[2.14.0,3.0.0)",
com._1c.g5.v8.dt.ql.model;version="[4.0.0,5.0.0)",
com._1c.g5.v8.dt.ql.resource;version="[5.0.0,6.0.0)",
com._1c.g5.v8.dt.ql.typesystem;version="[5.0.0,6.0.0)",
com._1c.g5.wiring;version="[2.2.0,3.0.0)",
com._1c.g5.wiring.binder;version="[1.1.0,2.0.0)",
com.e1c.g5.v8.dt.check;version="[2.0.0,3.0.0)",

View File

@ -16,15 +16,20 @@ import static com._1c.g5.v8.dt.dcs.model.core.DcsPackage.Literals.LOCAL_STRING;
import static com._1c.g5.v8.dt.dcs.model.core.DcsPackage.Literals.PRESENTATION;
import static com._1c.g5.v8.dt.dcs.model.schema.DcsPackage.Literals.DATA_COMPOSITION_SCHEMA_DATA_SET_FIELD;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.DATA_ITEM__DATA_PATH;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.DATA_ITEM__TITLE_LOCATION;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.DYNAMIC_LIST_EXT_INFO;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.FORM;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.FORM_FIELD;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.FORM_FIELD__TYPE;
import static com._1c.g5.v8.dt.form.model.FormPackage.Literals.TITLED__TITLE;
import java.util.Set;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.EcoreUtil2;
import com._1c.g5.v8.bm.core.BmUriUtil;
import com._1c.g5.v8.bm.core.IBmObject;
@ -44,10 +49,21 @@ import com._1c.g5.v8.dt.form.model.FormElementTitleLocation;
import com._1c.g5.v8.dt.form.model.FormField;
import com._1c.g5.v8.dt.form.model.FormItem;
import com._1c.g5.v8.dt.form.model.FormItemContainer;
import com._1c.g5.v8.dt.form.model.ManagedFormFieldType;
import com._1c.g5.v8.dt.form.model.PropertyInfo;
import com._1c.g5.v8.dt.form.service.datasourceinfo.IDataSourceInfoAssociationService;
import com._1c.g5.v8.dt.mcore.DuallyNamedElement;
import com._1c.g5.v8.dt.mcore.NamedElement;
import com._1c.g5.v8.dt.metadata.dbview.DbViewElement;
import com._1c.g5.v8.dt.metadata.dbview.DbViewFieldFieldDef;
import com._1c.g5.v8.dt.metadata.mdclass.MdObject;
import com._1c.g5.v8.dt.ql.model.DbViewFieldFieldDefFromQuery;
import com._1c.g5.v8.dt.ql.model.QuerySchemaExpression;
import com._1c.g5.v8.dt.ql.model.QuerySchemaOperator;
import com._1c.g5.v8.dt.ql.model.QuerySchemaSelectQuery;
import com._1c.g5.v8.dt.ql.model.StarExpression;
import com._1c.g5.v8.dt.ql.resource.QlMapper;
import com._1c.g5.v8.dt.ql.typesystem.IDynamicDbViewFieldComputer;
import com.e1c.g5.v8.dt.check.CheckComplexity;
import com.e1c.g5.v8.dt.check.ICheckDefinition;
import com.e1c.g5.v8.dt.check.ICheckParameters;
@ -79,12 +95,19 @@ public class DynamicListItemTitleCheck
private final IDataSourceInfoAssociationService dataSourceInfoAssociationService;
private final QlMapper qlMapper;
private final IDynamicDbViewFieldComputer dynamicDbViewFieldComputer;
@Inject
public DynamicListItemTitleCheck(IV8ProjectManager v8ProjectManager,
IDataSourceInfoAssociationService dataSourceInfoAssociationService)
IDataSourceInfoAssociationService dataSourceInfoAssociationService, QlMapper qlMapper,
IDynamicDbViewFieldComputer dynamicDbViewFieldComputer)
{
this.v8ProjectManager = v8ProjectManager;
this.dataSourceInfoAssociationService = dataSourceInfoAssociationService;
this.qlMapper = qlMapper;
this.dynamicDbViewFieldComputer = dynamicDbViewFieldComputer;
}
@Override
@ -106,7 +129,7 @@ public class DynamicListItemTitleCheck
.extension(new DynamicListChangeExtension())
.topObject(FORM)
.containment(FORM_FIELD)
.features(TITLED__TITLE, DATA_ITEM__DATA_PATH);
.features(TITLED__TITLE, DATA_ITEM__DATA_PATH, DATA_ITEM__TITLE_LOCATION, FORM_FIELD__TYPE);
}
@Override
@ -115,7 +138,8 @@ public class DynamicListItemTitleCheck
{
FormField field = (FormField)object;
AbstractDataPath dataPath = field.getDataPath();
if (field.getTitleLocation() == FormElementTitleLocation.NONE || dataPath == null
if (field.getTitleLocation() == FormElementTitleLocation.NONE
|| field.getType() == ManagedFormFieldType.PICTURE_FIELD || dataPath == null
|| dataPath.getSegments().size() != 2 || dataPath.getObjects().size() != 2)
{
return;
@ -144,8 +168,9 @@ public class DynamicListItemTitleCheck
String segment = dataPath.getSegments().get(1);
DataPathReferredObject refObject = dataPath.getObjects().get(1);
EObject source = refObject.getObject();
PropertyInfo fieldAttribute = dataSourceInfoAssociationService.findPropertyInfo(form, dataPath, 1);
if (isSourceUnknownOrSegmentNotEquals(segment, source)
if (!isSourceKnownAndSegmentEquals(segment, source, fieldAttribute)
&& isDcsFieldTitleIsEmpty(custormQuery, segment, languageCode))
{
resultAceptor.addIssue(Messages.DynamicListItemTitleCheck_message, field, TITLED__TITLE);
@ -178,12 +203,89 @@ public class DynamicListItemTitleCheck
return title == null || languageCode != null && StringUtils.isBlank(title.get(languageCode));
}
private boolean isSourceUnknownOrSegmentNotEquals(String segment, EObject source)
private boolean isSourceKnownAndSegmentEquals(String segment, EObject source, PropertyInfo attribute)
{
return source == null
|| !(source instanceof NamedElement && segment.equalsIgnoreCase(((NamedElement)source).getName())
|| source instanceof DuallyNamedElement
&& segment.equalsIgnoreCase(((DuallyNamedElement)source).getNameRu()));
if (isNameEquals(source, segment))
{
return true;
}
if (attribute != null)
{
// no alias or alias is equals to table field name
if (isNameEquals(attribute.getSource(), segment))
{
Object querySource = attribute.getSource();
if (querySource instanceof DbViewFieldFieldDefFromQuery)
{
EObject mdObject = ((DbViewFieldFieldDefFromQuery)querySource).getMdObject();
return mdObject != null
&& isNameEquals(((DbViewFieldFieldDefFromQuery)querySource).getMdObject(), segment)
|| mdObject == null && isSelectAllQuery((DbViewFieldFieldDefFromQuery)querySource)
|| mdObject == null && isNameEquals(getSourceObject((EObject)querySource), segment);
}
return true;
}
}
return false;
}
private boolean isSelectAllQuery(DbViewFieldFieldDefFromQuery querySource)
{
QuerySchemaSelectQuery select = EcoreUtil2.getContainerOfType(querySource, QuerySchemaSelectQuery.class);
if (select == null)
{
return false;
}
for (QuerySchemaOperator operator : select.getOperators())
{
for (QuerySchemaExpression field : operator.getSelectFields())
{
if (field.getExpression() instanceof StarExpression)
{
return true;
}
}
}
return false;
}
private EObject getSourceObject(EObject object)
{
Set<EObject> sources = qlMapper.getSourceObjects(object);
for (EObject source : sources)
{
DbViewElement dbModel = null;
if (source instanceof QuerySchemaExpression)
{
dbModel = dynamicDbViewFieldComputer.computeDbView(((QuerySchemaExpression)source).getExpression());
}
else
{
dbModel = dynamicDbViewFieldComputer.computeDbView(source);
}
if (dbModel instanceof DbViewFieldFieldDef)
{
return dbModel;
}
if (dbModel != null && dbModel.getMdObject() != null)
{
return dbModel.getMdObject();
}
}
return null;
}
private boolean isNameEquals(Object object, String name)
{
return object instanceof MdObject && name.equalsIgnoreCase(((MdObject)object).getName())
|| object instanceof NamedElement && name.equalsIgnoreCase(((NamedElement)object).getName())
|| object instanceof DuallyNamedElement && name.equalsIgnoreCase(((DuallyNamedElement)object).getNameRu());
}
private boolean isDcsFieldTitleIsEmpty(DynamicListExtInfo custormQuery, String segment, String languageCode)

View File

@ -20,6 +20,8 @@ import org.eclipse.xtext.resource.IResourceServiceProvider;
import com._1c.g5.v8.dt.core.platform.IV8ProjectManager;
import com._1c.g5.v8.dt.form.service.FormItemInformationService;
import com._1c.g5.v8.dt.form.service.datasourceinfo.IDataSourceInfoAssociationService;
import com._1c.g5.v8.dt.ql.resource.QlMapper;
import com._1c.g5.v8.dt.ql.typesystem.IDynamicDbViewFieldComputer;
import com._1c.g5.wiring.AbstractServiceAwareModule;
/**
@ -48,6 +50,11 @@ public class ExternalDependenciesModule
bind(FormItemInformationService.class).toProvider(() -> rsp.get(FormItemInformationService.class));
bind(IV8ProjectManager.class).toService();
bind(IDataSourceInfoAssociationService.class).toService();
URI qlUri = URI.createURI("*.qldcs"); //$NON-NLS-1$
final IResourceServiceProvider qlRsp = IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(qlUri);
bind(QlMapper.class).toProvider(() -> qlRsp.get(QlMapper.class));
bind(IDynamicDbViewFieldComputer.class).toProvider(() -> qlRsp.get(IDynamicDbViewFieldComputer.class));
}
}

View File

@ -41,12 +41,55 @@ public class DynamicListItemTitleCheckTest
private static final String FQN_FORM = "Catalog.Products.Form.ListForm.Form";
private static final String FQN_FORM2 = "Catalog.Products.Form.ListFormSelectAll.Form";
private static final String FQN_FORM3 = "Catalog.Products.Form.ListFormPackage.Form";
@Override
protected String getTestConfigurationName()
{
return PROJECT_NAME;
}
/**
*
* Test the List.Ref is custom query field "Ref" and has title, that is correct
*
* @throws Exception the exception
*/
@Test
public void testFormListRefIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "Ref");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
* Test the List.DeletionMark is custom query field and has no title, that is incorrect
*
* @throws Exception the exception
*/
@Test
public void testFormListDeletionMarkIsIncorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "DeletionMark");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNotNull(marker);
}
/**
* Test the List.Code is custom query field and has no title, that is incorrect
*
@ -108,7 +151,7 @@ public class DynamicListItemTitleCheckTest
/**
*
* Test the List.Description is standard field "Description" and has no title, that is correct
* Test the List.Description is standard field "Description" with same alias and has no title, that is correct
*
* @throws Exception the exception
*/
@ -216,7 +259,7 @@ public class DynamicListItemTitleCheckTest
* @throws Exception the exception
*/
@Test
public void testFormListCorrectFieldIsIncorrect() throws Exception
public void testFormListSkuDescriptionIsIncorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM, getProject());
@ -229,6 +272,174 @@ public class DynamicListItemTitleCheckTest
assertNotNull(marker);
}
/**
*
* Test the List.Code is standard field "Code" and has no visible item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormSelectAllCodeIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM2, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "Code");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.Description is standard field "Description" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormSelectAllDescriptionIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM2, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "Description");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.DeletionMark is standard field "DeletionMark" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormSelectAllDeletionMarkIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM2, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "DeletionMark");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.SKU2 is MD field "SKU" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormSelectAllSKU2IsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM2, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "SKU2");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.Code is standard field "Code" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormPackageCodeIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM3, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "Code");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.Description is expression field "Description" of package and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormPackageDescriptionIsIncorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM3, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "Description");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNotNull(marker);
}
/**
*
* Test the List.DeletionMark is standard field "DeletionMark" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormPackageDeletionMarkIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM3, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "DeletionMark");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
/**
*
* Test the List.SKU is MD field "SKU" and has no item title,
* that is correct
*
* @throws Exception the exception
*/
@Test
public void testListFormPackageSKUIsCorrect() throws Exception
{
IBmObject object = getTopObjectByFqn(FQN_FORM3, getProject());
assertTrue(object instanceof Form);
Form form = (Form)object;
FormField item = getListItem(form, "SKU");
assertNotNull(item);
Marker marker = getFirstMarker(CHECK_ID, item, getProject());
assertNull(marker);
}
private FormField getListItem(Form form, String name) throws Exception
{
for (FormItem item : form.getItems())

View File

@ -52,6 +52,99 @@
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Ref</name>
<id>46</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.Ref</segments>
</dataPath>
<extendedTooltip>
<name>RefExtendedTooltip</name>
<id>48</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>RefContextMenu</name>
<id>47</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>DeletionMark</name>
<id>43</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.DeletionMark</segments>
</dataPath>
<extendedTooltip>
<name>DeletionMarkExtendedTooltip</name>
<id>45</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DeletionMarkContextMenu</name>
<id>44</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>Code</name>
<id>16</id>
@ -725,19 +818,17 @@
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>SELECT
Products.Ref,
Products.DeletionMark,
&quot;&quot; AS Code,
Products.SKU,
Products.Description AS Description,
Products.Description + &quot;&quot; + Products.SKU AS SkuDescription,
Products.Predefined AS MyPredefined,
Products.PredefinedDataName AS MyPredefined2
FROM
Catalog.Products
AS
Products</queryText>
<queryText>SELECT
Products.Ref,
CAST(Products.DeletionMark AS BOOLEAN) AS DeletionMark,
&quot;&quot; AS Code,
Products.Description AS Description,
Products.SKU,
Products.Description + &quot;&quot; + Products.SKU AS SkuDescription,
Products.Predefined AS MyPredefined,
Products.PredefinedDataName AS MyPredefined2
FROM
Catalog.Products AS Products</queryText>
<mainTable>Catalog.Products</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>b4d12cbc-d32f-4ace-9907-09877a23db83</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>34f52314-fd16-466c-8ce3-eee2390a24e9</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>d917900b-9ec2-4edc-be32-4e0fbe595324</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>0d330017-ec3a-4677-a2ae-a5529ee6d507</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,495 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form" xmlns:schema="http://g5.1c.ru/v8/dt/data-composition-system/schema">
<items xsi:type="form:FormGroup">
<name>ListSettingsComposerUserSettings</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>en</key>
<value>User settings group</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>ListSettingsComposerUserSettingsExtendedTooltip</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>List</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Code</name>
<id>16</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.Code</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>17</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>21</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>20</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>DeletionMark</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.DeletionMark</segments>
</dataPath>
<extendedTooltip>
<name>DeletionMarkExtendedTooltip</name>
<id>24</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DeletionMarkContextMenu</name>
<id>23</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>SKU</name>
<id>25</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.SKU</segments>
</dataPath>
<extendedTooltip>
<name>SKUExtendedTooltip</name>
<id>27</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>SKUContextMenu</name>
<id>26</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ListCommandBar</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListSearchString</name>
<id>7</id>
<extendedTooltip>
<name>ListSearchStringExtendedTooltip</name>
<id>9</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListSearchStringContextMenu</name>
<id>8</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<source>ListSearchString</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListViewStatus</name>
<id>10</id>
<extendedTooltip>
<name>ListViewStatusExtendedTooltip</name>
<id>12</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListViewStatusContextMenu</name>
<id>11</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>ListViewStatus</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListSearchControl</name>
<id>13</id>
<extendedTooltip>
<name>ListSearchControlExtendedTooltip</name>
<id>15</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListSearchControlContextMenu</name>
<id>14</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>ListSearchControl</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ListExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListContextMenu</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<fileDragMode>AsFileRef</fileDragMode>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>List.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<userSettingsGroup>ListSettingsComposerUserSettings</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>List</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>SELECT
Products.Ref,
Products.DeletionMark,
Products.Code,
CAST(Products.Description AS STRING(10)) AS Description,
Products.SKU,
Products.Predefined,
Products.PredefinedDataName
INTO TT
FROM
Catalog.Products AS Products
;
////////////////////////////////////////////////////////////////////////////////
SELECT
TT.Ref,
TT.Code,
TT.Description,
TT.DeletionMark,
TT.SKU,
TT.Predefined,
TT.PredefinedDataName
FROM
TT AS TT</queryText>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>53a074f4-5040-43cb-a40c-4d2077788865</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>7315e14b-1ae5-45c0-861d-89cc0d4b9dba</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>aa2ebbed-5790-4486-b32f-75bb0bd0d749</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>ceeafa1e-d8ce-49de-9ec7-8997a549698f</itemsUserSettingID>
</Settings>

View File

@ -0,0 +1,486 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form" xmlns:schema="http://g5.1c.ru/v8/dt/data-composition-system/schema">
<items xsi:type="form:FormGroup">
<name>ListSettingsComposerUserSettings</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>en</key>
<value>User settings group</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>ListSettingsComposerUserSettingsExtendedTooltip</name>
<id>2</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>List</name>
<id>3</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>Code</name>
<id>16</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.Code</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>CodeExtendedTooltip</name>
<id>18</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>CodeContextMenu</name>
<id>17</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Description</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.Description</segments>
</dataPath>
<extendedTooltip>
<name>DescriptionExtendedTooltip</name>
<id>21</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DescriptionContextMenu</name>
<id>20</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>DeletionMark</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.DeletionMark</segments>
</dataPath>
<extendedTooltip>
<name>DeletionMarkExtendedTooltip</name>
<id>24</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>DeletionMarkContextMenu</name>
<id>23</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>PictureField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:ImageFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<valuesPicture xsi:type="core:PictureRef">
<picture>StdPicture.AddToFavorites</picture>
</valuesPicture>
<fileDragMode>AsFileRef</fileDragMode>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>SKU2</name>
<id>25</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>List.SKU</segments>
</dataPath>
<extendedTooltip>
<name>SKUExtendedTooltip</name>
<id>27</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>SKUContextMenu</name>
<id>26</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>ListCommandBar</name>
<id>5</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListSearchString</name>
<id>7</id>
<extendedTooltip>
<name>ListSearchStringExtendedTooltip</name>
<id>9</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListSearchStringContextMenu</name>
<id>8</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<source>ListSearchString</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListViewStatus</name>
<id>10</id>
<extendedTooltip>
<name>ListViewStatusExtendedTooltip</name>
<id>12</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListViewStatusContextMenu</name>
<id>11</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>ListViewStatus</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<name>ListSearchControl</name>
<id>13</id>
<extendedTooltip>
<name>ListSearchControlExtendedTooltip</name>
<id>15</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListSearchControlContextMenu</name>
<id>14</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>ListSearchControl</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>ListExtendedTooltip</name>
<id>6</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ListContextMenu</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<useAlternationRowColor>true</useAlternationRowColor>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<fileDragMode>AsFileRef</fileDragMode>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>List.DefaultPicture</segments>
</rowPictureDataPath>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<userSettingsGroup>ListSettingsComposerUserSettings</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>FormCommandBar</name>
<id>-1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>true</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>List</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>SELECT
*
FROM
Catalog.Products
AS
Products</queryText>
<mainTable>Catalog.Products</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>

View File

@ -58,4 +58,22 @@
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="8de9695e-466f-4fab-ad62-5c954b4c55d5">
<name>ListFormSelectAll</name>
<synonym>
<key>en</key>
<value>List form select all</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="bade1a53-78b2-4daf-b024-8bf7acc2f0ba">
<name>ListFormPackage</name>
<synonym>
<key>en</key>
<value>List form package</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:Catalog>