diff --git a/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl
index 3fb74cec..0618ebe1 100644
--- a/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl
@@ -284,6 +284,11 @@
Менеджер = ЮТОбщий.Менеджер(ТипЗначения);
ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Менеджер];
+ ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипОбработкиОтчета(ТипЗначения) Тогда
+
+ Менеджер = ЮТОбщий.Менеджер(ТипЗначения);
+ ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Менеджер];
+
КонецЕсли;
КонецЕсли;
@@ -314,8 +319,10 @@
Если Описание <> Неопределено Тогда
Если Описание.ОписаниеТипа.Ссылочный Тогда
ТипОбъекта = Тип(СтрШаблон("%1Объект.%2", Описание.ОписаниеТипа.Имя, Описание.Имя));
- Иначе
+ ИначеЕсли Описание.ОписаниеТипа.Регистр Тогда
ТипОбъекта = Тип(СтрШаблон("%1НаборЗаписей.%2", Описание.ОписаниеТипа.Имя, Описание.Имя));
+ ИначеЕсли Описание.ОписаниеТипа.ОбработкаОтчет Тогда
+ ТипОбъекта = Тип(СтрШаблон("%1Объект.%2", Описание.ОписаниеТипа.Имя, Описание.Имя));
КонецЕсли;
Настройки.ТипыПерехватываемыхОбъектов.Вставить(ТипОбъекта, Истина);
@@ -711,9 +718,9 @@
Возврат СтатистикаВызововМетода;
КонецЕсли;
- Если Описание.ОписаниеТипа.Ссылочный Тогда
+ Если Описание.ОписаниеТипа.Ссылочный Или Описание.ОписаниеТипа.ОбработкаОтчет Тогда
ТипОбъекта = Тип(СтрШаблон("%1Объект.%2", Описание.ОписаниеТипа.Имя, Описание.Имя));
- Иначе
+ ИначеЕсли Описание.ОписаниеТипа.Регистр Тогда
ТипОбъекта = Тип(СтрШаблон("%1НаборЗаписей.%2", Описание.ОписаниеТипа.Имя, Описание.Имя));
КонецЕсли;
diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl
index 8662905b..41590d31 100644
--- a/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl
@@ -128,7 +128,9 @@
Возврат ОписаниеОбъект;
КонецЕсли;
- ДобавитьОписанияРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, ОписаниеОбъект.Реквизиты, "Ссылка, Период");
+ Если ОписаниеТипа.СтандартныеРеквизиты Тогда
+ ДобавитьОписанияРеквизитов(МетаданныеОбъекта.СтандартныеРеквизиты, ОписаниеОбъект.Реквизиты, "Ссылка, Период");
+ КонецЕсли;
Если ОписаниеТипа.Измерения Тогда
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.Измерения, ОписаниеОбъект.Реквизиты, Истина);
@@ -173,6 +175,9 @@
// * Конструктор - Строка
// * Группы - Булево
// * Ссылочный - Булево
+// * Регистр - Булево
+// * ОбработкаОтчет - Булево
+// * СтандартныеРеквизиты - Булево
// * Реквизиты - Булево
// * Измерения - Булево
// * Ресурсы - Булево
@@ -188,7 +193,12 @@
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
Типы = ЮТМетаданные.ТипыМетаданных();
- Возврат Типы[ЧастиИмени[0]];
+ Если Типы.Свойство(ЧастиИмени[0]) Тогда
+ Возврат Типы[ЧастиИмени[0]];
+ Иначе
+ Сообщение = СтрШаблон("Получение описания для '%1' не поддреживается, либо не реализовано", ЧастиИмени[0]);
+ ВызватьИсключение Сообщение;
+ КонецЕсли;
КонецФункции
@@ -212,6 +222,9 @@
Описание.Вставить("Ресурсы", Запись.Ресурсы = "+");
Описание.Вставить("РеквизитыАдресации", Запись.РеквизитыАдресации = "+");
Описание.Вставить("ТабличныеЧасти", Запись.ТабличныеЧасти = "+");
+ Описание.Вставить("СтандартныеРеквизиты", Запись.СтандартныеРеквизиты = "+");
+ Описание.Вставить("ОбработкаОтчет", Запись.Имя = "Обработка" ИЛИ Запись.Имя = "Отчет");
+ Описание.Вставить("Регистр", СтрНачинаетсяС(Запись.Имя, "Регистр"));
ТипыМетаданных.Вставить(Описание.Имя, Описание);
ТипыМетаданных.Вставить(Описание.ИмяКоллекции, Описание);
diff --git a/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl
index 7032d9d4..55349443 100644
--- a/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl
@@ -118,6 +118,16 @@
КонецФункции
+Функция ЭтоТипОбработкиОтчета(ТипЗначения) Экспорт
+
+ ПредставлениеТипа = ПредставлениеТипа(ТипЗначения);
+ СтрокаОбработка = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Record manager:", "Обработка объект:");
+ СтрокаОтчет = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Record manager:", "Отчет объект:");
+
+ Возврат СтрНайти(ПредставлениеТипа, СтрокаОбработка) > 0 ИЛИ СтрНайти(ПредставлениеТипа, СтрокаОтчет) > 0;
+
+КонецФункции
+
Функция ЭтоТипМенеджера(ТипЗначения) Экспорт
// TODO придумать другой способ определения типа
diff --git a/exts/yaxunit/src/CommonTemplates/ЮТОписаниеМетаданных/Template.txt b/exts/yaxunit/src/CommonTemplates/ЮТОписаниеМетаданных/Template.txt
index b8c822dd..a8b33dbb 100644
--- a/exts/yaxunit/src/CommonTemplates/ЮТОписаниеМетаданных/Template.txt
+++ b/exts/yaxunit/src/CommonTemplates/ЮТОписаниеМетаданных/Template.txt
@@ -1,17 +1,19 @@
# Описание свойств метаданных
-| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти |
-|------------------------|-------------------------|-----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|
-| Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + |
-| Документ | Документы | СоздатьДокумент | | + | + | | | | + |
-| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + |
-| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + |
-| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + |
-| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + |
-| РегистрСведений | РегистрыСведений | СоздатьМенеджерЗаписи | | | + | + | + | | |
-| РегистрНакопления | РегистрыНакопления | | | | + | + | + | | |
-| РегистрБухгалтерии | РегистрыБухгалтерии | | | | + | + | + | | |
-| РегистрРасчета | РегистрыРасчета | | | | + | + | + | | |
-| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + |
-| Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + |
-| Перечисление | Перечисления | | | + | | | | | |
+| Имя | ИмяКоллекции | Конструктор | Группы | Ссылочный | Реквизиты | Измерения | Ресурсы | РеквизитыАдресации | ТабличныеЧасти | СтандартныеРеквизиты |
+|------------------------|-------------------------|-----------------------|--------|-----------|-----------|-----------|---------|--------------------|----------------|----------------------|
+| Справочник | Справочники | СоздатьЭлемент | + | + | + | | | | + | + |
+| Документ | Документы | СоздатьДокумент | | + | + | | | | + | + |
+| ПланВидовХарактеристик | ПланыВидовХарактеристик | СоздатьЭлемент | + | + | + | | | | + | + |
+| ПланСчетов | ПланыСчетов | СоздатьСчет | | + | + | | | | + | + |
+| ПланВидовРасчета | ПланыВидовРасчета | СоздатьВидРасчета | | + | + | | | | + | + |
+| ПланОбмена | ПланыОбмена | СоздатьУзел | | + | + | | | | + | + |
+| РегистрСведений | РегистрыСведений | СоздатьМенеджерЗаписи | | | + | + | + | | | + |
+| РегистрНакопления | РегистрыНакопления | | | | + | + | + | | | + |
+| РегистрБухгалтерии | РегистрыБухгалтерии | | | | + | + | + | | | + |
+| РегистрРасчета | РегистрыРасчета | | | | + | + | + | | | + |
+| БизнесПроцесс | БизнесПроцессы | СоздатьБизнесПроцесс | | + | + | | | | + | + |
+| Задача | Задачи | СоздатьЗадачу | | + | + | | | + | + | + |
+| Перечисление | Перечисления | | | + | | | | | | + |
+| Отчет | Отчеты | | | | + | | | | + | |
+| Обработка | Обработки | | | | + | | | | + | |
diff --git a/tests/src/CommonModules/ОМ_Мокито/Module.bsl b/tests/src/CommonModules/ОМ_Мокито/Module.bsl
index 98dfc611..f919347a 100644
--- a/tests/src/CommonModules/ОМ_Мокито/Module.bsl
+++ b/tests/src/CommonModules/ОМ_Мокито/Module.bsl
@@ -32,6 +32,7 @@
.ДобавитьСерверныйТест("МокированиеЧерезСсылку")
.ДобавитьСерверныйТест("МокированиеЧерезОбъект")
.ДобавитьСерверныйТест("МокированиеМетодовРегистра")
+ .ДобавитьСерверныйТест("МокированиеМетодовОбработки")
;
КонецПроцедуры
@@ -341,6 +342,30 @@
КонецПроцедуры
+Процедура МокированиеМетодовОбработки() Экспорт
+
+ Обработка = Обработки.ПроведениеДокументов.Создать();
+ Обработка.ЗаполнитьСписок();
+ ЮТест.ОжидаетЧто(Обработка.СписокДокументов)
+ .Заполнено();
+
+ Мокито.Обучение(Обработки.ПроведениеДокументов)
+ .Когда("ЗаполнитьСписок").Пропустить()
+ .Прогон();
+
+ Обработка = Обработки.ПроведениеДокументов.Создать();
+
+ Обработка.ЗаполнитьСписок();
+
+ ЮТест.ОжидаетЧто(Обработка.СписокДокументов)
+ .НеЗаполнено("Не сработал перехват события настроенного через менеджер");
+
+ Мокито.Проверить(Обработка)
+ .КоличествоВызовов("ЗаполнитьСписок").Равно(1);
+ Мокито.Проверить(Обработки.ПроведениеДокументов)
+ .КоличествоВызовов("ЗаполнитьСписок").Равно(1);
+КонецПроцедуры
+
#КонецЕсли
Процедура Прогон_НакоплениеСтатистики(НакоплениеСтатистики) Экспорт
diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo
index caaa2999..dc9fefa6 100644
--- a/tests/src/Configuration/Configuration.mdo
+++ b/tests/src/Configuration/Configuration.mdo
@@ -54,5 +54,6 @@
Catalog.Встречи
Catalog.Товары
Document.ПриходТовара
+ DataProcessor.ПроведениеДокументов
InformationRegister.ЦеныТоваров
diff --git a/tests/src/DataProcessors/ПроведениеДокументов/ObjectModule.bsl b/tests/src/DataProcessors/ПроведениеДокументов/ObjectModule.bsl
new file mode 100644
index 00000000..3336a3f0
--- /dev/null
+++ b/tests/src/DataProcessors/ПроведениеДокументов/ObjectModule.bsl
@@ -0,0 +1,14 @@
+
+&Вместо("ЗаполнитьСписок")
+Процедура Расш1_ЗаполнитьСписок() Экспорт
+
+ ПараметрыМетода = Новый Массив();;
+
+ ПрерватьВыполнение = Ложь;
+ Мокито.АнализВызова(ЭтотОбъект, "ЗаполнитьСписок", ПараметрыМетода, ПрерватьВыполнение);
+
+ Если НЕ ПрерватьВыполнение Тогда
+ ПродолжитьВызов();
+ КонецЕсли;
+
+КонецПроцедуры
diff --git a/tests/src/DataProcessors/ПроведениеДокументов/ПроведениеДокументов.mdo b/tests/src/DataProcessors/ПроведениеДокументов/ПроведениеДокументов.mdo
new file mode 100644
index 00000000..d43c0ffe
--- /dev/null
+++ b/tests/src/DataProcessors/ПроведениеДокументов/ПроведениеДокументов.mdo
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ ПроведениеДокументов
+ Adopted
+
+ Extended
+
+