diff --git a/КопированиеДвижений_БП3.xml b/КопированиеДвижений_БП3.xml new file mode 100644 index 0000000..363db0a --- /dev/null +++ b/КопированиеДвижений_БП3.xml @@ -0,0 +1,156 @@ + + + + + + c3831ec8-d8d5-4f93-8a22-f9bfae07327f + 100f73f4-fdd0-4f5b-916b-6f7bf15f4e36 + + + e67d6277-c75d-4d2a-8a02-6fc0b61dcf4d + f0995e17-06ce-44c8-a40d-e3850a375e3a + + + + КопированиеДвижений_БП3 + + + ru + Копирование движений (БП 3) + + + + ExternalDataProcessor.КопированиеДвижений_БП3.Form.Форма + + + + + + + 8a4bb28c-87a8-4233-9b13-a0d7af776833 + 51960148-0dd9-4e82-bbae-ff9f5cadbf0b + + + 48269f54-1a68-4469-891d-0597dea43ae5 + 8ba3d589-2b6f-4c68-aa66-be5d2dbe90fc + + + + Состав + + + ru + Состав + + + + + DontCheck + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + + + + + Источник + + + ru + Источник + + + + + cfg:DocumentRef + + false + + + + false + + false + false + + + false + + ShowError + Items + + + Auto + Auto + + + Auto + + + + + Приемник + + + ru + Приемник + + + + + cfg:DocumentRef.ОперацияБух + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + + + + +
Форма
+
+
+
\ No newline at end of file diff --git a/КопированиеДвижений_БП3/Forms/Форма.xml b/КопированиеДвижений_БП3/Forms/Форма.xml new file mode 100644 index 0000000..6ca9ac9 --- /dev/null +++ b/КопированиеДвижений_БП3/Forms/Форма.xml @@ -0,0 +1,22 @@ + + +
+ + Форма + + + ru + Форма + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/КопированиеДвижений_БП3/Forms/Форма/Ext/Form.xml b/КопированиеДвижений_БП3/Forms/Форма/Ext/Form.xml new file mode 100644 index 0000000..08aeda9 --- /dev/null +++ b/КопированиеДвижений_БП3/Forms/Форма/Ext/Form.xml @@ -0,0 +1,95 @@ + +
+ + + + + + + + List + true + true + true + Объект.Состав + + + + + + + Состав + SearchStringRepresentation + + + + + + + Состав + ViewStatusRepresentation + + + + + + + Состав + SearchControl + + + + + + + Объект.Состав.LineNumber + EnterOnInput + + + + + Объект.Состав.Источник + EnterOnInput + + + + + Объект.Состав.Приемник + EnterOnInput + + + + +
+
+ + + + cfg:ExternalDataProcessorObject.КопированиеДвижений_БП3 + + true + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Копировать</v8:content> + </v8:item> + + + + ru + Скопировать + + + Скопировать + + +
\ No newline at end of file diff --git a/КопированиеДвижений_БП3/Forms/Форма/Ext/Form/Module.bsl b/КопированиеДвижений_БП3/Forms/Форма/Ext/Form/Module.bsl new file mode 100644 index 0000000..59913ec --- /dev/null +++ b/КопированиеДвижений_БП3/Forms/Форма/Ext/Form/Module.bsl @@ -0,0 +1,150 @@ + +&НаКлиенте +Процедура Скопировать(Команда) + СкопироватьНаСервере(); +КонецПроцедуры + +&НаСервере +Процедура СкопироватьНаСервере() + Для Каждого ТекСтр Из Объект.Состав Цикл + СкопироватьДвиженияДокумента(ТекСтр.Источник.ПолучитьОбъект(), ТекСтр.Приемник); + КонецЦикла; +КонецПроцедуры + +&НаСервере +Процедура СкопироватьСубконто(Источник, Приемник, ИмяСвойства) + Если Не (ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Источник, ИмяСвойства) + И ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Приемник, ИмяСвойства)) Тогда + Возврат; + КонецЕсли; + + Для Каждого Тек Из Источник[ИмяСвойства] Цикл + Приемник[ИмяСвойства].Вставить(Тек.Ключ, Тек.Значение); + КонецЦикла; +КонецПроцедуры + +&НаСервере +Процедура СкопироватьДвижения_РС(ДИсточник, Приемник, ИмяРегистра) + Если Ложь Тогда + ДИсточник = РегистрыСведений.АдресныеОбъекты.СоздатьНаборЗаписей(); + КонецЕсли; + + ДПриемник = Приемник.Движения[ИмяРегистра]; + + ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор"); + + Для Каждого ТекСтр Из ДИсточник Цикл + НовСтр = ДПриемник.Добавить(); + ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор"); + КонецЦикла; + + ДПриемник.Записать(); +КонецПроцедуры + +&НаСервере +Процедура СкопироватьДвижения_РН(ДИсточник, Приемник, ИмяРегистра) + Если Ложь Тогда + ДИсточник = РегистрыНакопления.БухгалтерскиеВзаиморасчетыССотрудниками.СоздатьНаборЗаписей(); + КонецЕсли; + + ДПриемник = Приемник.Движения[ИмяРегистра]; + + ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор"); + + Для Каждого ТекСтр Из ДИсточник Цикл + НовСтр = ДПриемник.Добавить(); + ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор"); + КонецЦикла; + + ДПриемник.Записать(); +КонецПроцедуры + +&НаСервере +Процедура СкопироватьДвижения_РБ(ДИсточник, Приемник, ИмяРегистра) + Если Ложь Тогда + ДИсточник = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); + КонецЕсли; + + ДПриемник = Приемник.Движения[ИмяРегистра]; + + ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор"); + + Для Каждого ТекСтр Из ДИсточник Цикл + НовСтр = ДПриемник.Добавить(); + ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор"); + + СкопироватьСубконто(ТекСтр, НовСтр, "Субконто"); + СкопироватьСубконто(ТекСтр, НовСтр, "СубконтоДт"); + СкопироватьСубконто(ТекСтр, НовСтр, "СубконтоКт"); + КонецЦикла; + + ДПриемник.Записать(); +КонецПроцедуры + +&НаСервере +Процедура СкопироватьДвижения_РР(ДИсточник, Приемник, ИмяРегистра) + Если Ложь Тогда + ДИсточник = РегистрыРасчета[ИмяРегистра].СоздатьНаборЗаписей(); + КонецЕсли; + + ДПриемник = Приемник.Движения[ИмяРегистра]; + + ЗаполнитьЗначенияСвойств(ДПриемник.Отбор, ДИсточник.Отбор,,"Регистратор"); + + Для Каждого ТекСтр Из ДИсточник Цикл + НовСтр = ДПриемник.Добавить(); + ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр,,"Регистратор"); + КонецЦикла; + + ДПриемник.Записать(); +КонецПроцедуры + +&НаСервере +Процедура СкопироватьДвиженияДокумента(Источник, Приемник) + Если Приемник.Пустая() Тогда + Операция = Документы.ОперацияБух.СоздатьДокумент(); + Иначе + Операция = Приемник.ПолучитьОбъект(); + КонецЕсли; + + Операция.ОбменДанными.Загрузка = Истина; + + ЗаполнитьЗначенияСвойств(Операция, Источник,, "Ссылка,Номер,ВерсияДанных,Движения,ДополнительныеСвойства,ОбменДанными,Проведен"); + + Попытка + Операция.Записать(РежимЗаписиДокумента.Запись); + Исключение; + КонецПопытки; + + Приемник = Операция.Ссылка; + + Для Каждого ТекКолекцияДвижений Из Источник.Движения Цикл + мИмяРегистра = СтрРазделить(ТекКолекцияДвижений.Метаданные().ПолноеИмя(), ".", Ложь); + ТипРегистра = мИмяРегистра[0]; + ИмяРегистра = мИмяРегистра[1]; + + Если НЕ ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Операция.Движения, ИмяРегистра) Тогда + Продолжить; + КонецЕсли; + + ТекКолекцияДвижений.Прочитать(); + + ТаблицаРегистров = ""; + Если "РегистрНакопления" = ТипРегистра Тогда + ТаблицаРегистров = "ТаблицаРегистровНакопления"; + СкопироватьДвижения_РН(ТекКолекцияДвижений, Операция, ИмяРегистра); + ИначеЕсли "РегистрСведений" = ТипРегистра Тогда + ТаблицаРегистров = "ТаблицаРегистровСведений"; + СкопироватьДвижения_РС(ТекКолекцияДвижений, Операция, ИмяРегистра); + ИначеЕсли "РегистрБухгалтерии" = ТипРегистра Тогда + СкопироватьДвижения_РБ(ТекКолекцияДвижений, Операция, ИмяРегистра); + ИначеЕсли "РегистрРасчета" = ТипРегистра Тогда + СкопироватьДвижения_РР(ТекКолекцияДвижений, Операция, ИмяРегистра); + КонецЕсли; + + Если НЕ ПустаяСтрока(ТаблицаРегистров) И 0 < ТекКолекцияДвижений.Количество() Тогда + НовСтр = Операция[ТаблицаРегистров].Добавить(); + НовСтр.Имя = ИмяРегистра; + КонецЕсли; + КонецЦикла; +КонецПроцедуры \ No newline at end of file