+ обработка

This commit is contained in:
Dmitry Belyaev 2018-09-27 11:08:19 +03:00
parent a3795d9b0f
commit 714217efb7
Signed by: b4tman
GPG Key ID: 014E87EC54B77673
4 changed files with 423 additions and 0 deletions

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" 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:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
<ExternalDataProcessor uuid="8ace805c-d02e-4499-8aaa-8607cb8f89f3">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>100f73f4-fdd0-4f5b-916b-6f7bf15f4e36</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.КопированиеДвижений_БП3" category="Object">
<xr:TypeId>e67d6277-c75d-4d2a-8a02-6fc0b61dcf4d</xr:TypeId>
<xr:ValueId>f0995e17-06ce-44c8-a40d-e3850a375e3a</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>КопированиеДвижений_БП3</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Копирование движений (БП 3)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<DefaultForm>ExternalDataProcessor.КопированиеДвижений_БП3.Form.Форма</DefaultForm>
<AuxiliaryForm/>
</Properties>
<ChildObjects>
<TabularSection uuid="2d76117e-b60b-4ec3-8c82-2b7294a9f7c9">
<InternalInfo>
<xr:GeneratedType name="DataProcessorTabularSection.КопированиеДвижений_БП3.Состав" category="TabularSection">
<xr:TypeId>8a4bb28c-87a8-4233-9b13-a0d7af776833</xr:TypeId>
<xr:ValueId>51960148-0dd9-4e82-bbae-ff9f5cadbf0b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorTabularSectionRow.КопированиеДвижений_БП3.Состав" category="TabularSectionRow">
<xr:TypeId>48269f54-1a68-4469-891d-0597dea43ae5</xr:TypeId>
<xr:ValueId>8ba3d589-2b6f-4c68-aa66-be5d2dbe90fc</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Состав</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Состав</v8:content>
</v8:item>
</Synonym>
<Comment/>
<ToolTip/>
<FillChecking>DontCheck</FillChecking>
<StandardAttributes>
<xr:StandardAttribute name="LineNumber">
<xr:LinkByType/>
<xr:FillChecking>DontCheck</xr:FillChecking>
<xr:MultiLine>false</xr:MultiLine>
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
<xr:CreateOnInput>Auto</xr:CreateOnInput>
<xr:MaxValue xsi:nil="true"/>
<xr:ToolTip/>
<xr:ExtendedEdit>false</xr:ExtendedEdit>
<xr:Format/>
<xr:ChoiceForm/>
<xr:QuickChoice>Auto</xr:QuickChoice>
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
<xr:EditFormat/>
<xr:PasswordMode>false</xr:PasswordMode>
<xr:DataHistory>Use</xr:DataHistory>
<xr:MarkNegatives>false</xr:MarkNegatives>
<xr:MinValue xsi:nil="true"/>
<xr:Synonym/>
<xr:Comment/>
<xr:FullTextSearch>Use</xr:FullTextSearch>
<xr:ChoiceParameterLinks/>
<xr:FillValue xsi:nil="true"/>
<xr:Mask/>
<xr:ChoiceParameters/>
</xr:StandardAttribute>
</StandardAttributes>
</Properties>
<ChildObjects>
<Attribute uuid="82bc0a1e-9cc9-41ca-b02f-8f91792c87da">
<Properties>
<Name>Источник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Источник</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:TypeSet>cfg:DocumentRef</v8:TypeSet>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>ShowError</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="5d2e9c5b-286b-46b2-92df-459c5f714e28">
<Properties>
<Name>Приемник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Приемник</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:DocumentRef.ОперацияБух</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<Form>Форма</Form>
</ChildObjects>
</ExternalDataProcessor>
</MetaDataObject>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" 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:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
<Form uuid="32cb29fd-9236-4007-9162-3207a0e850a4">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" 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:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаСкопировать" id="23">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.Скопировать</CommandName>
<ExtendedTooltip name="ФормаСкопироватьРасширеннаяПодсказка" id="24"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ChildItems>
<Table name="Состав" id="1">
<Representation>List</Representation>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>Объект.Состав</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="СоставКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СоставКоманднаяПанель" id="3"/>
<ExtendedTooltip name="СоставРасширеннаяПодсказка" id="4"/>
<SearchStringAddition name="СоставСтрокаПоиска" id="5">
<AdditionSource>
<Item>Состав</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СоставСтрокаПоискаКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="СоставСтрокаПоискаРасширеннаяПодсказка" id="7"/>
</SearchStringAddition>
<ViewStatusAddition name="СоставСостояниеПросмотра" id="8">
<AdditionSource>
<Item>Состав</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СоставСостояниеПросмотраКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="СоставСостояниеПросмотраРасширеннаяПодсказка" id="10"/>
</ViewStatusAddition>
<SearchControlAddition name="СоставУправлениеПоиском" id="11">
<AdditionSource>
<Item>Состав</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СоставУправлениеПоискомКонтекстноеМеню" id="12"/>
<ExtendedTooltip name="СоставУправлениеПоискомРасширеннаяПодсказка" id="13"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="СоставНомерСтроки" id="14">
<DataPath>Объект.Состав.LineNumber</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СоставНомерСтрокиКонтекстноеМеню" id="15"/>
<ExtendedTooltip name="СоставНомерСтрокиРасширеннаяПодсказка" id="16"/>
</LabelField>
<InputField name="СоставИсточник" id="17">
<DataPath>Объект.Состав.Источник</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СоставИсточникКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="СоставИсточникРасширеннаяПодсказка" id="19"/>
</InputField>
<InputField name="СоставПриемник" id="20">
<DataPath>Объект.Состав.Приемник</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СоставПриемникКонтекстноеМеню" id="21"/>
<ExtendedTooltip name="СоставПриемникРасширеннаяПодсказка" id="22"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:ExternalDataProcessorObject.КопированиеДвижений_БП3</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</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:item>
</ToolTip>
<Action>Скопировать</Action>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,150 @@

&НаКлиенте
Процедура Скопировать(Команда)
СкопироватьНаСервере();
КонецПроцедуры
&НаСервере
Процедура СкопироватьНаСервере()
Для Каждого ТекСтр Из Объект.Состав Цикл
СкопироватьДвиженияДокумента(ТекСтр.Источник.ПолучитьОбъект(), ТекСтр.Приемник);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СкопироватьСубконто(Источник, Приемник, ИмяСвойства)
Если Не (ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Источник, ИмяСвойства)
И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Приемник, ИмяСвойства)) Тогда
Возврат;
КонецЕсли;
Для Каждого Тек Из Источник[ИмяСвойства] Цикл
Приемник[ИмяСвойства].Вставить(Тек.Ключ, Тек.Значение);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СкопироватьДвижения_РС(ДИсточник, Приемник, ИмяРегистра)
Если Ложь Тогда
ДИсточник = РегистрыСведений.АдресныеОбъекты.СоздатьНаборЗаписей();
КонецЕсли;
ДПриемник = Приемник.Движения[ИмяРегистра];
ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор");
Для Каждого ТекСтр Из ДИсточник Цикл
НовСтр = ДПриемник.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор");
КонецЦикла;
ДПриемник.Записать();
КонецПроцедуры
&НаСервере
Процедура СкопироватьДвижения_РН(ДИсточник, Приемник, ИмяРегистра)
Если Ложь Тогда
ДИсточник = РегистрыНакопления.БухгалтерскиеВзаиморасчетыССотрудниками.СоздатьНаборЗаписей();
КонецЕсли;
ДПриемник = Приемник.Движения[ИмяРегистра];
ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор");
Для Каждого ТекСтр Из ДИсточник Цикл
НовСтр = ДПриемник.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор");
КонецЦикла;
ДПриемник.Записать();
КонецПроцедуры
&НаСервере
Процедура СкопироватьДвижения_РБ(ДИсточник, Приемник, ИмяРегистра)
Если Ложь Тогда
ДИсточник = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
КонецЕсли;
ДПриемник = Приемник.Движения[ИмяРегистра];
ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор");
Для Каждого ТекСтр Из ДИсточник Цикл
НовСтр = ДПриемник.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор");
СкопироватьСубконто(ТекСтр, НовСтр, "Субконто");
СкопироватьСубконто(ТекСтр, НовСтр, "СубконтоДт");
СкопироватьСубконто(ТекСтр, НовСтр, "СубконтоКт");
КонецЦикла;
ДПриемник.Записать();
КонецПроцедуры
&НаСервере
Процедура СкопироватьДвижения_РР(ДИсточник, Приемник, ИмяРегистра)
Если Ложь Тогда
ДИсточник = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей();
КонецЕсли;
ДПриемник = Приемник.Движения[ИмяРегистра];
ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор");
Для Каждого ТекСтр Из ДИсточник Цикл
НовСтр = ДПриемник.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор");
КонецЦикла;
ДПриемник.Записать();
КонецПроцедуры
&НаСервере
Процедура СкопироватьДвиженияДокумента(Источник, Приемник)
Если Приемник.Пустая() Тогда
Операция = Документы.ОперацияБух.СоздатьДокумент();
Иначе
Операция = Приемник.ПолучитьОбъект();
КонецЕсли;
Операция.ОбменДанными.Загрузка = Истина;
ЗаполнитьЗначенияСвойств(Операция, Источник,, "Ссылка,Номер,ВерсияДанных,Движения,ДополнительныеСвойства,ОбменДанными,Проведен");
Попытка
Операция.Записать(РежимЗаписиДокумента.Запись);
Исключение;
КонецПопытки;
Приемник = Операция.Ссылка;
Для Каждого ТекКолекцияДвижений Из Источник.Движения Цикл
мИмяРегистра = СтрРазделить(ТекКолекцияДвижений.Метаданные().ПолноеИмя(), ".", Ложь);
ТипРегистра = мИмяРегистра[0];
ИмяРегистра = мИмяРегистра[1];
Если НЕ ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Операция.Движения, ИмяРегистра) Тогда
Продолжить;
КонецЕсли;
ТекКолекцияДвижений.Прочитать();
ТаблицаРегистров = "";
Если "РегистрНакопления" = ТипРегистра Тогда
ТаблицаРегистров = "ТаблицаРегистровНакопления";
СкопироватьДвижения_РН(ТекКолекцияДвижений, Операция, ИмяРегистра);
ИначеЕсли "РегистрСведений" = ТипРегистра Тогда
ТаблицаРегистров = "ТаблицаРегистровСведений";
СкопироватьДвижения_РС(ТекКолекцияДвижений, Операция, ИмяРегистра);
ИначеЕсли "РегистрБухгалтерии" = ТипРегистра Тогда
СкопироватьДвижения_РБ(ТекКолекцияДвижений, Операция, ИмяРегистра);
ИначеЕсли "РегистрРасчета" = ТипРегистра Тогда
СкопироватьДвижения_РР(ТекКолекцияДвижений, Операция, ИмяРегистра);
КонецЕсли;
Если НЕ ПустаяСтрока(ТаблицаРегистров) И 0 < ТекКолекцияДвижений.Количество() Тогда
НовСтр = Операция[ТаблицаРегистров].Добавить();
НовСтр.Имя = ИмяРегистра;
КонецЕсли;
КонецЦикла;
КонецПроцедуры