РК_ЗагрузкаОстатков 1.3.1.58: отборы и заполнение входящих данных.

Отметки складов/организаций, заполнение организаций через API, команда
«Заполнить входящие данные», подтверждение смены подключения; LF в выгрузке.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mihailkudravcev
2026-08-12 16:01:09 +03:00
parent 63f453a8b1
commit 383e4a7e1e
78 changed files with 676 additions and 201 deletions
@@ -19,4 +19,4 @@
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
</MetaDataObject>
@@ -175,4 +175,4 @@
<Action>ПеренестиВОтбор</Action>
</Command>
</Commands>
</Form>
</Form>
@@ -19,4 +19,4 @@
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
</MetaDataObject>
@@ -35,6 +35,9 @@
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ПодключениеКСтороннейБазеКонтекстноеМеню" id="31"/>
<ExtendedTooltip name="ПодключениеКСтороннейБазеРасширеннаяПодсказка" id="32"/>
<Events>
<Event name="OnChange">ПодключениеКСтороннейБазеПриИзменении</Event>
</Events>
</InputField>
<InputField name="ДатаОстатков" id="33">
<DataPath>Объект.ДатаОстатков</DataPath>
@@ -104,7 +107,15 @@
<DataPath>Объект.ВходящиеДанные</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ВходящиеДанныеКонтекстноеМеню" id="6"/>
<AutoCommandBar name="ВходящиеДанныеКоманднаяПанель" id="7"/>
<AutoCommandBar name="ВходящиеДанныеКоманднаяПанель" id="7">
<ChildItems>
<Button name="ВходящиеДанныеЗагрузитьОстатки" id="161">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗагрузитьОстатки</CommandName>
<ExtendedTooltip name="ВходящиеДанныеЗагрузитьОстаткиРасширеннаяПодсказка" id="162"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ВходящиеДанныеРасширеннаяПодсказка" id="8"/>
<SearchStringAddition name="ВходящиеДанныеСтрокаПоиска" id="9">
<AdditionSource>
@@ -283,88 +294,239 @@
</ToolTip>
<ExtendedTooltip name="ГруппаОтборРасширеннаяПодсказка" id="40"/>
<ChildItems>
<UsualGroup name="Склады" id="41">
<UsualGroup name="ГруппаДвеКолонки" id="135">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады внешней базы</v8:content>
<v8:content>Группа две колонки</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады</v8:content>
<v8:content>Группа две колонки</v8:content>
</v8:item>
</ToolTip>
<ExtendedTooltip name="СкладыРасширеннаяПодсказка" id="42"/>
<Group>AlwaysHorizontal</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДвеКолонкиРасширеннаяПодсказка" id="136"/>
<ChildItems>
<Table name="ОтборСкладовВнешнейБазы" id="43">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>ОтборСкладовВнешнейБазы</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ОтборСкладовВнешнейБазыКонтекстноеМеню" id="44"/>
<AutoCommandBar name="ОтборСкладовВнешнейБазыКоманднаяПанель" id="45">
<ChildItems>
<Button name="ОтборСкладовВнешнейБазыПодобратьСклады" id="65">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ПодобратьСклады</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыПодобратьСкладыРасширеннаяПодсказка" id="66"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыРасширеннаяПодсказка" id="46"/>
<SearchStringAddition name="ОтборСкладовВнешнейБазыСтрокаПоиска" id="47">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыСтрокаПоискаКонтекстноеМеню" id="48"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСтрокаПоискаРасширеннаяПодсказка" id="49"/>
</SearchStringAddition>
<ViewStatusAddition name="ОтборСкладовВнешнейБазыСостояниеПросмотра" id="50">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыСостояниеПросмотраКонтекстноеМеню" id="51"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСостояниеПросмотраРасширеннаяПодсказка" id="52"/>
</ViewStatusAddition>
<SearchControlAddition name="ОтборСкладовВнешнейБазыУправлениеПоиском" id="53">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыУправлениеПоискомКонтекстноеМеню" id="54"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыУправлениеПоискомРасширеннаяПодсказка" id="55"/>
</SearchControlAddition>
<UsualGroup name="Склады" id="41">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады внешней базы</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады</v8:content>
</v8:item>
</ToolTip>
<ExtendedTooltip name="СкладыРасширеннаяПодсказка" id="42"/>
<ChildItems>
<InputField name="ОтборСкладовВнешнейБазыНаименование" id="56">
<DataPath>ОтборСкладовВнешнейБазы.Наименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ОтборСкладовВнешнейБазыНаименованиеКонтекстноеМеню" id="57"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыНаименованиеРасширеннаяПодсказка" id="58"/>
</InputField>
<LabelField name="ОтборСкладовВнешнейБазыИдентификатор" id="59">
<DataPath>ОтборСкладовВнешнейБазы.Идентификатор</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ОтборСкладовВнешнейБазыИдентификаторКонтекстноеМеню" id="60"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыИдентификаторРасширеннаяПодсказка" id="61"/>
</LabelField>
<CheckBoxField name="ОтборСкладовВнешнейБазыОтметка" id="62">
<DataPath>ОтборСкладовВнешнейБазы.Отметка</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ОтборСкладовВнешнейБазыОтметкаКонтекстноеМеню" id="63"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыОтметкаРасширеннаяПодсказка" id="64"/>
</CheckBoxField>
<Table name="ОтборСкладовВнешнейБазы" id="43">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>ОтборСкладовВнешнейБазы</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ОтборСкладовВнешнейБазыКонтекстноеМеню" id="44">
<Autofill>false</Autofill>
<ChildItems>
<Button name="ОтборСкладовВнешнейБазыКонтекстноеМенюОтметить" id="163">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СкладыОтборОтметить</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыКонтекстноеМенюОтметитьРасширеннаяПодсказка" id="164"/>
</Button>
<Button name="ОтборСкладовВнешнейБазыКонтекстноеМенюСнятьОтметку" id="165">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СкладыОтборСнятьОтметку</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыКонтекстноеМенюСнятьОтметкуРасширеннаяПодсказка" id="166"/>
</Button>
</ChildItems>
</ContextMenu>
<AutoCommandBar name="ОтборСкладовВнешнейБазыКоманднаяПанель" id="45">
<ChildItems>
<Button name="ОтборСкладовВнешнейБазыПодобратьСклады" id="65">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗаполнитьСклады</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыПодобратьСкладыРасширеннаяПодсказка" id="66"/>
</Button>
<Button name="ОтборСкладовВнешнейБазыСкладыОтборОтметить" id="131">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СкладыОтборОтметить</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСкладыОтборОтметитьРасширеннаяПодсказка" id="132"/>
</Button>
<Button name="ОтборСкладовВнешнейБазыСкладыОтборСнятьОтметку" id="133">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.СкладыОтборСнятьОтметку</CommandName>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСкладыОтборСнятьОтметкуРасширеннаяПодсказка" id="134"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыРасширеннаяПодсказка" id="46"/>
<SearchStringAddition name="ОтборСкладовВнешнейБазыСтрокаПоиска" id="47">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыСтрокаПоискаКонтекстноеМеню" id="48"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСтрокаПоискаРасширеннаяПодсказка" id="49"/>
</SearchStringAddition>
<ViewStatusAddition name="ОтборСкладовВнешнейБазыСостояниеПросмотра" id="50">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыСостояниеПросмотраКонтекстноеМеню" id="51"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыСостояниеПросмотраРасширеннаяПодсказка" id="52"/>
</ViewStatusAddition>
<SearchControlAddition name="ОтборСкладовВнешнейБазыУправлениеПоиском" id="53">
<AdditionSource>
<Item>ОтборСкладовВнешнейБазы</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ОтборСкладовВнешнейБазыУправлениеПоискомКонтекстноеМеню" id="54"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыУправлениеПоискомРасширеннаяПодсказка" id="55"/>
</SearchControlAddition>
<ChildItems>
<CheckBoxField name="ОтборСкладовВнешнейБазыОтметка" id="62">
<DataPath>ОтборСкладовВнешнейБазы.Отметка</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ОтборСкладовВнешнейБазыОтметкаКонтекстноеМеню" id="63"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыОтметкаРасширеннаяПодсказка" id="64"/>
</CheckBoxField>
<InputField name="ОтборСкладовВнешнейБазыНаименование" id="56">
<DataPath>ОтборСкладовВнешнейБазы.Наименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ОтборСкладовВнешнейБазыНаименованиеКонтекстноеМеню" id="57"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыНаименованиеРасширеннаяПодсказка" id="58"/>
</InputField>
<LabelField name="ОтборСкладовВнешнейБазыИдентификатор" id="59">
<DataPath>ОтборСкладовВнешнейБазы.Идентификатор</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ОтборСкладовВнешнейБазыИдентификаторКонтекстноеМеню" id="60"/>
<ExtendedTooltip name="ОтборСкладовВнешнейБазыИдентификаторРасширеннаяПодсказка" id="61"/>
</LabelField>
</ChildItems>
</Table>
</ChildItems>
</Table>
</UsualGroup>
<UsualGroup name="Организации" id="137">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Организации внешней базы</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Организации</v8:content>
</v8:item>
</ToolTip>
<ExtendedTooltip name="ОрганизацииРасширеннаяПодсказка" id="138"/>
<ChildItems>
<Table name="ОтборОрганизацийВнешнейБазы" id="139">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>ОтборОрганизацийВнешнейБазы</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ОтборОрганизацийВнешнейБазыКонтекстноеМеню" id="140">
<Autofill>false</Autofill>
<ChildItems>
<Button name="ОтборОрганизацийВнешнейБазыКонтекстноеМенюОтметить" id="167">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОрганизацииОтборОтметить</CommandName>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыКонтекстноеМенюОтметитьРасширеннаяПодсказка" id="168"/>
</Button>
<Button name="ОтборОрганизацийВнешнейБазыКонтекстноеМенюСнятьОтметку" id="169">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОрганизацииОтборСнятьОтметку</CommandName>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыКонтекстноеМенюСнятьОтметкуРасширеннаяПодсказка" id="170"/>
</Button>
</ChildItems>
</ContextMenu>
<AutoCommandBar name="ОтборОрганизацийВнешнейБазыКоманднаяПанель" id="141">
<ChildItems>
<Button name="ОтборОрганизацийВнешнейБазыЗаполнитьОрганизации" id="171">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗаполнитьОрганизации</CommandName>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыЗаполнитьОрганизацииРасширеннаяПодсказка" id="172"/>
</Button>
<Button name="ОтборОрганизацийВнешнейБазыОрганизацииОтборОтметить" id="173">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОрганизацииОтборОтметить</CommandName>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыОрганизацииОтборОтметитьРасширеннаяПодсказка" id="174"/>
</Button>
<Button name="ОтборОрганизацийВнешнейБазыОрганизацииОтборСнятьОтметку" id="175">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОрганизацииОтборСнятьОтметку</CommandName>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыОрганизацииОтборСнятьОтметкуРасширеннаяПодсказка" id="176"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыРасширеннаяПодсказка" id="142"/>
<SearchStringAddition name="ОтборОрганизацийВнешнейБазыСтрокаПоиска" id="143">
<AdditionSource>
<Item>ОтборОрганизацийВнешнейБазы</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборОрганизацийВнешнейБазыСтрокаПоискаКонтекстноеМеню" id="144"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыСтрокаПоискаРасширеннаяПодсказка" id="145"/>
</SearchStringAddition>
<ViewStatusAddition name="ОтборОрганизацийВнешнейБазыСостояниеПросмотра" id="146">
<AdditionSource>
<Item>ОтборОрганизацийВнешнейБазы</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ОтборОрганизацийВнешнейБазыСостояниеПросмотраКонтекстноеМеню" id="147"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыСостояниеПросмотраРасширеннаяПодсказка" id="148"/>
</ViewStatusAddition>
<SearchControlAddition name="ОтборОрганизацийВнешнейБазыУправлениеПоиском" id="149">
<AdditionSource>
<Item>ОтборОрганизацийВнешнейБазы</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ОтборОрганизацийВнешнейБазыУправлениеПоискомКонтекстноеМеню" id="150"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыУправлениеПоискомРасширеннаяПодсказка" id="151"/>
</SearchControlAddition>
<ChildItems>
<CheckBoxField name="ОтборОрганизацийВнешнейБазыОтметка" id="158">
<DataPath>ОтборОрганизацийВнешнейБазы.Отметка</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ОтборОрганизацийВнешнейБазыОтметкаКонтекстноеМеню" id="159"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыОтметкаРасширеннаяПодсказка" id="160"/>
</CheckBoxField>
<InputField name="ОтборОрганизацийВнешнейБазыНаименование" id="152">
<DataPath>ОтборОрганизацийВнешнейБазы.Наименование</DataPath>
<EditMode>EnterOnInput</EditMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ОтборОрганизацийВнешнейБазыНаименованиеКонтекстноеМеню" id="153"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыНаименованиеРасширеннаяПодсказка" id="154"/>
</InputField>
<LabelField name="ОтборОрганизацийВнешнейБазыИдентификатор" id="155">
<DataPath>ОтборОрганизацийВнешнейБазы.Идентификатор</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ОтборОрганизацийВнешнейБазыИдентификаторКонтекстноеМеню" id="156"/>
<ExtendedTooltip name="ОтборОрганизацийВнешнейБазыИдентификаторРасширеннаяПодсказка" id="157"/>
</LabelField>
</ChildItems>
</Table>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
</ChildItems>
@@ -429,34 +591,95 @@
</Column>
</Columns>
</Attribute>
</Attributes>
<Commands>
<Command name="ПодобратьСклады" id="1">
<Attribute name="ОтборОрганизацийВнешнейБазы" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подобрать склады</v8:content>
<v8:content>Отбор организаций внешней базы</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueTable</v8:Type>
</Type>
<Columns>
<Column name="Наименование" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Наименование</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Column>
<Column name="Идентификатор" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Идентификатор</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:UUID</v8:Type>
</Type>
</Column>
<Column name="Отметка" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отметка</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
</Columns>
</Attribute>
<Attribute name="ПодключениеКСтороннейБазеПредыдущее" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подключение к сторонней базе предыдущее</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogRef.РК_НастройкиПодключенияКВнешнейБазе</v8:Type>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="ЗаполнитьСклады" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить склады</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подобрать склады</v8:content>
<v8:content>Заполнить склады</v8:content>
</v8:item>
</ToolTip>
<Action>ПодобратьСклады</Action>
<Action>ЗаполнитьСклады</Action>
</Command>
<Command name="ЗагрузитьОстатки" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить остатки</v8:content>
<v8:content>Заполнить входящие данные</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить остатки из исходной базы</v8:content>
<v8:content>Заполнить таблицу «Входящие данные» остатками из выбранного подключения (первичный анализ)</v8:content>
</v8:item>
</ToolTip>
<Action>ЗагрузитьОстатки</Action>
@@ -491,5 +714,96 @@
</ToolTip>
<Action>СоздатьДокументы</Action>
</Command>
<Command name="СкладыОтборОтметить" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отметить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады отбор отметить</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.CheckAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СкладыОтборОтметить</Action>
</Command>
<Command name="СкладыОтборСнятьОтметку" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Снять отметку</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Склады отбор снять отметку</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.UncheckAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СкладыОтборСнятьОтметку</Action>
</Command>
<Command name="ЗаполнитьОрганизации" id="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить организации</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заполнить организации из сторонней базы</v8:content>
</v8:item>
</ToolTip>
<Action>ЗаполнитьОрганизации</Action>
</Command>
<Command name="ОрганизацииОтборОтметить" id="8">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отметить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отметить выделенные организации</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.CheckAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОрганизацииОтборОтметить</Action>
</Command>
<Command name="ОрганизацииОтборСнятьОтметку" id="9">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Снять отметку</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Снять отметку с выделенных организаций</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.UncheckAll</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОрганизацииОтборСнятьОтметку</Action>
</Command>
</Commands>
</Form>
</Form>
@@ -1,5 +1,4 @@
#Область ОбработчикиСобытийФормы
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
@@ -10,6 +9,7 @@
Исключение
КонецПопытки;
КонецЕсли;
ПодключениеКСтороннейБазеПредыдущее = Объект.ПодключениеКСтороннейБазе;
Если Не ЗначениеЗаполнено(Объект.ДатаОстатков) Тогда
Объект.ДатаОстатков = КонецДня(НачалоМесяца(ТекущаяДатаСеанса()) - 1);
@@ -22,10 +22,48 @@
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ПодключениеКСтороннейБазеПриИзменении(Элемент)
Если Объект.ПодключениеКСтороннейБазе = ПодключениеКСтороннейБазеПредыдущее Тогда
Возврат;
КонецЕсли;
Если ОтборСкладовВнешнейБазы.Количество() = 0
И ОтборОрганизацийВнешнейБазы.Количество() = 0
И Объект.ВходящиеДанные.Количество() = 0 Тогда
ПодключениеКСтороннейБазеПредыдущее = Объект.ПодключениеКСтороннейБазе;
Возврат;
КонецЕсли;
Описание = Новый ОписаниеОповещения("ПодключениеКСтороннейБазеПослеВопроса", ЭтотОбъект);
ПоказатьВопрос(Описание,
"Смена подключения очистит отборы складов/организаций и входящие данные." + Символы.ПС
+ "Продолжить?",
РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ПодключениеКСтороннейБазеПослеВопроса(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ОчиститьДанныеВнешнейБазыНаКлиенте();
ПодключениеКСтороннейБазеПредыдущее = Объект.ПодключениеКСтороннейБазе;
Иначе
Объект.ПодключениеКСтороннейБазе = ПодключениеКСтороннейБазеПредыдущее;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПодобратьСклады(Команда)
Процедура ЗаполнитьСклады(Команда)
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
@@ -42,6 +80,44 @@
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОрганизации(Команда)
Если Не ЗначениеЗаполнено(Объект.ПодключениеКСтороннейБазе) Тогда
ПоказатьПредупреждение(, "Укажите подключение к сторонней базе");
Возврат;
КонецЕсли;
Попытка
ЗаполнитьОрганизацииНаСервере();
Исключение
ПоказатьПредупреждение(, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаОтбор;
КонецПроцедуры
&НаКлиенте
Процедура СкладыОтборОтметить(Команда)
УстановитьОтметкуВыделенныхСтрок("ОтборСкладовВнешнейБазы", Истина);
КонецПроцедуры
&НаКлиенте
Процедура СкладыОтборСнятьОтметку(Команда)
УстановитьОтметкуВыделенныхСтрок("ОтборСкладовВнешнейБазы", Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацииОтборОтметить(Команда)
УстановитьОтметкуВыделенныхСтрок("ОтборОрганизацийВнешнейБазы", Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацииОтборСнятьОтметку(Команда)
УстановитьОтметкуВыделенныхСтрок("ОтборОрганизацийВнешнейБазы", Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьОстатки(Команда)
@@ -61,7 +137,7 @@
Возврат;
КонецПопытки;
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаВходящиеДанные;
ПоказатьОповещениеПользователя("Загрузка остатков", , "Загружено строк: " + Формат(Количество, "ЧГ=0"));
ПоказатьОповещениеПользователя("Входящие данные", , "Заполнено строк: " + Формат(Количество, "ЧГ=0"));
КонецПроцедуры
@@ -69,7 +145,7 @@
Процедура Сопоставить(Команда)
Если Объект.ВходящиеДанные.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Сначала загрузите остатки");
ПоказатьПредупреждение(, "Сначала заполните входящие данные");
Возврат;
КонецЕсли;
@@ -140,30 +216,74 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура УстановитьОтметкуВыделенныхСтрок(ИмяТаблицы, Отметка)
ТаблицаФормы = Элементы[ИмяТаблицы];
ДанныеТаблицы = ЭтотОбъект[ИмяТаблицы];
Выделенные = ТаблицаФормы.ВыделенныеСтроки;
Если Выделенные.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Выделите строки в таблице");
Возврат;
КонецЕсли;
Для Каждого ИдентификаторСтроки Из Выделенные Цикл
СтрокаТЗ = ДанныеТаблицы.НайтиПоИдентификатору(ИдентификаторСтроки);
Если СтрокаТЗ <> Неопределено Тогда
СтрокаТЗ.Отметка = Отметка;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьДанныеВнешнейБазыНаКлиенте()
ОтборСкладовВнешнейБазы.Очистить();
ОтборОрганизацийВнешнейБазы.Очистить();
Объект.ВходящиеДанные.Очистить();
КонецПроцедуры
&НаСервере
Процедура ПодобратьСкладыНаСервере()
Ответ = РК_ОбменСВнешнейБазой.СписокСкладовВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
ЗаполнитьТаблицуОтбораИзОтветаAPI(ОтборСкладовВнешнейБазы, Ответ, "/v1/stock/warehouses");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОрганизацииНаСервере()
Ответ = РК_ОбменСВнешнейБазой.СписокОрганизацийВнешнейБазы(Объект.ПодключениеКСтороннейБазе);
ЗаполнитьТаблицуОтбораИзОтветаAPI(ОтборОрганизацийВнешнейБазы, Ответ, "/v1/stock/organizations");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьТаблицуОтбораИзОтветаAPI(ТаблицаОтбора, Ответ, ИмяЭндпоинта)
Строки = Неопределено;
Если ТипЗнч(Ответ) = Тип("Структура") Или ТипЗнч(Ответ) = Тип("Соответствие") Тогда
Строки = ЗначениеСвойстваОтвета(Ответ, "rows");
КонецЕсли;
Если ТипЗнч(Строки) <> Тип("Массив") Тогда
ВызватьИсключение "Некорректный ответ /v1/stock/warehouses";
ВызватьИсключение "Некорректный ответ " + ИмяЭндпоинта;
КонецЕсли;
БылиОтметки = Новый Соответствие;
Для Каждого Стр Из ОтборСкладовВнешнейБазы Цикл
Для Каждого Стр Из ТаблицаОтбора Цикл
БылиОтметки.Вставить(Строка(Стр.Идентификатор), Стр.Отметка);
КонецЦикла;
ОтборСкладовВнешнейБазы.Очистить();
ТаблицаОтбора.Очистить();
Для Каждого СтрокаAPI Из Строки Цикл
ГуидТекст = СокрЛП(Строка(ЗначениеСвойстваОтвета(СтрокаAPI, "guid")));
Если ПустаяСтрока(ГуидТекст) Тогда
Продолжить;
КонецЕсли;
НовСтр = ОтборСкладовВнешнейБазы.Добавить();
НовСтр = ТаблицаОтбора.Добавить();
НовСтр.Наименование = СокрЛП(Строка(ЗначениеСвойстваОтвета(СтрокаAPI, "name")));
Попытка
НовСтр.Идентификатор = Новый УникальныйИдентификатор(ГуидТекст);
@@ -185,12 +305,25 @@
СкладыGUID.Добавить(Строка(Стр.Идентификатор));
КонецЕсли;
КонецЦикла;
Если СкладыGUID.Количество() = 0 Тогда
ВызватьИсключение "Отметьте хотя бы один склад на закладке «Отбор»";
ОрганизацииGUID = Новый Массив;
Для Каждого Стр Из ОтборОрганизацийВнешнейБазы Цикл
Если Стр.Отметка Тогда
ОрганизацииGUID.Добавить(Строка(Стр.Идентификатор));
КонецЕсли;
КонецЦикла;
Если СкладыGUID.Количество() = 0 И ОрганизацииGUID.Количество() = 0 Тогда
ВызватьИсключение "Отметьте хотя бы один склад или организацию на закладке «Отбор»";
КонецЕсли;
Фильтры = Новый Структура;
Фильтры.Вставить("warehouses", СкладыGUID);
Если СкладыGUID.Количество() > 0 Тогда
Фильтры.Вставить("warehouses", СкладыGUID);
КонецЕсли;
Если ОрганизацииGUID.Количество() > 0 Тогда
Фильтры.Вставить("organizations", ОрганизацииGUID);
КонецЕсли;
Фильтры.Вставить("only_nonzero", Истина);
ВсеСтроки = Новый Массив;