diff --git a/exts/yaxunit/src/CommonModules/Мокито/Module.bsl b/exts/yaxunit/src/CommonModules/Мокито/Module.bsl index 67235c4c..8443d6c7 100644 --- a/exts/yaxunit/src/CommonModules/Мокито/Module.bsl +++ b/exts/yaxunit/src/CommonModules/Мокито/Module.bsl @@ -87,15 +87,15 @@ // // Параметры: // Объект - Произвольный - Устанавливает проверяемый объект, вызовы методов которого будем проверять. -// +// Описание - Строка - Описание проверки, которое будет выведено при возникновении ошибки // Возвращаемое значение: // ОбщийМодуль - см. МокитоПроверки -Функция Проверить(Объект) Экспорт +Функция Проверить(Объект, Описание = Неопределено) Экспорт Режимы = МокитоСлужебный.РежимыРаботы(); МокитоСлужебный.УстановитьРежим(Режимы.Проверка); - Возврат МокитоПроверки.Проверить(Объект); + Возврат МокитоПроверки.Проверить(Объект, Описание); КонецФункции diff --git a/exts/yaxunit/src/CommonModules/МокитоОбучение/Module.bsl b/exts/yaxunit/src/CommonModules/МокитоОбучение/Module.bsl index 8bbd95e7..40376e58 100644 --- a/exts/yaxunit/src/CommonModules/МокитоОбучение/Module.bsl +++ b/exts/yaxunit/src/CommonModules/МокитоОбучение/Module.bsl @@ -36,7 +36,7 @@ Функция Обучение(Объект, СброситьСтарыеНастройки = Истина) Экспорт УстановитьПараметрыОбучения(Объект); - МокитоСлужебный.ЗарегистрироватьПерехватОбъекта(Объект, СброситьСтарыеНастройки); + МокитоСлужебный.ДобавитьНастройкуПерехватаВызововОбъекта(Объект, СброситьСтарыеНастройки); Возврат МокитоОбучение; @@ -164,15 +164,22 @@ Процедура ЗарегистрироватьПерехватВыражения(ИмяМетода, ПараметрыВызова) - Объект = ОбучаемыйОбъект(); - ДанныеПерехвата = МокитоСлужебный.ДанныеПерехвата(Объект); + ПереданаСтруктураВызоваМетода = МокитоСлужебный.ЭтоСтруктураВызоваМетода(ИмяМетода); + + Если ПереданаСтруктураВызоваМетода Тогда + Объект = ИмяМетода.Объект; + Иначе + Объект = ОбучаемыйОбъект(); + КонецЕсли; + + ДанныеПерехвата = МокитоСлужебный.НастройкиПерехватаОбъекта(Объект); Если ДанныеПерехвата = Неопределено Тогда Сообщение = СтрШаблон("Не найдены настройки перехвата для %1. Необходимо предварительно вызвать метод Мокито.Обучение(Объект)", Объект); ВызватьИсключение Сообщение; КонецЕсли; - Если МокитоСлужебный.ЭтоСтруктураВызоваМетода(ИмяМетода) Тогда + Если ПереданаСтруктураВызоваМетода Тогда СтруктураВызоваМетода = ИмяМетода; Иначе СтруктураВызоваМетода = МокитоСлужебный.СтруктураВызоваМетода(Объект, ИмяМетода, ПараметрыВызова); @@ -186,9 +193,12 @@ Реакция = СоздатьОписаниеУсловнойРеакции(СтруктураВызоваМетода); - Методы[СтруктураВызоваМетода.ИмяМетода].Реакции.Добавить(Реакция); + РеакцииМетода = Методы[СтруктураВызоваМетода.ИмяМетода].Реакции; + РеакцииМетода.Добавить(Реакция); - ПараметрыОбучения().РеакцияТекущегоВыражения = Реакция; + ПараметрыОбучения = ПараметрыОбучения(); + ПараметрыОбучения.РеакцияТекущегоВыражения = Реакция; + ПараметрыОбучения.Реакции = РеакцииМетода; КонецПроцедуры @@ -200,10 +210,18 @@ #Область Реакции +Функция ОписаниеУсловнойРеакции() + + Возврат Новый Структура("УсловиеРеакции, Действие"); + +КонецФункции + Функция СоздатьОписаниеУсловнойРеакции(СтруктураВызоваМетода) Условия = МокитоСлужебный.УсловиеИзПараметров(СтруктураВызоваМетода.Параметры); - Возврат Новый Структура("УсловиеРеакции, Действие", Условия, Неопределено); + ОписаниеУсловнойРеакции = ОписаниеУсловнойРеакции(); + ОписаниеУсловнойРеакции.УсловиеРеакции = Условия; + Возврат ОписаниеУсловнойРеакции; КонецФункции @@ -213,33 +231,38 @@ Функция ОбучаемыйОбъект() - ПараметрыОбучения = ПараметрыОбучения(); - - Возврат ПараметрыОбучения.ОбучаемыйОбъект; + Возврат ПараметрыОбучения().ОбучаемыйОбъект; КонецФункции Функция ПараметрыОбучения() - Параметры = МокитоСлужебный.Настройки().ПараметрыОбучения; - - Возврат Параметры; + Возврат МокитоСлужебный.Настройки().ПараметрыОбучения; КонецФункции Процедура УстановитьПараметрыОбучения(Объект) - ПараметрыОбучения = Новый Структура("ОбучаемыйОбъект, РеакцияТекущегоВыражения", Объект, Неопределено); - + ПараметрыОбучения = Новый Структура("ОбучаемыйОбъект, РеакцияТекущегоВыражения, Реакции", Объект, Неопределено); МокитоСлужебный.Настройки().ПараметрыОбучения = ПараметрыОбучения; КонецПроцедуры Процедура ЗарегистрироватьРеакцию(Действие) + Параметры = ПараметрыОбучения(); + Действие.Вставить("Обработано", Ложь); - ПараметрыОбучения().РеакцияТекущегоВыражения.Действие = Действие; + Если Параметры.РеакцияТекущегоВыражения.Действие = Неопределено Тогда + Параметры.РеакцияТекущегоВыражения.Действие = Действие; + Иначе + НоваяРеакция = ОписаниеУсловнойРеакции(); + ЗаполнитьЗначенияСвойств(НоваяРеакция, Параметры.РеакцияТекущегоВыражения); + НоваяРеакция.Действие = Действие; + Параметры.РеакцияТекущегоВыражения = НоваяРеакция; + Параметры.Реакции.Добавить(НоваяРеакция); + КонецЕсли; КонецПроцедуры diff --git a/exts/yaxunit/src/CommonModules/МокитоПроверки/Module.bsl b/exts/yaxunit/src/CommonModules/МокитоПроверки/Module.bsl index 87b5f502..27939c03 100644 --- a/exts/yaxunit/src/CommonModules/МокитоПроверки/Module.bsl +++ b/exts/yaxunit/src/CommonModules/МокитоПроверки/Module.bsl @@ -19,9 +19,9 @@ #Область ПрограммныйИнтерфейс // см. Мокито.Проверить -Функция Проверить(Объект) Экспорт +Функция Проверить(Объект, Описание) Экспорт - УстановитьПараметрыПроверки(Объект); + УстановитьПараметрыПроверки(Объект, Описание); Возврат МокитоПроверки; КонецФункции @@ -70,11 +70,13 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция Равно(Количество, Знач Описание = Неопределено) Экспорт + Настройки = ПараметрыПроверки(); + Статистика = СтатистикаВызовов(); ЮТУтверждения - .Что(Статистика, Описание) + .Что(Статистика, Настройки.Описание) .ИмеющееПредставление(ОписаниеПроверяемогоОбъекта()) - .ИмеетДлину(Количество); + .ИмеетДлину(Количество, Описание); Возврат МокитоПроверки; @@ -168,17 +170,17 @@ // Структура: // * ПроверяемыйОбъект - Произвольный // * СтруктураВызоваМетода - см. МокитоСлужебный.СтруктураВызоваМетода +// * Описание - Строка Функция ПараметрыПроверки() - Параметры = МокитоСлужебный.Настройки().ПараметрыПроверки; - Возврат Параметры; + Возврат МокитоСлужебный.Настройки().ПараметрыПроверки; КонецФункции -Процедура УстановитьПараметрыПроверки(Объект = Неопределено, СтруктураВызоваМетода = Неопределено) +Процедура УстановитьПараметрыПроверки(Объект, Описание) - ПараметрыОбучения = Новый Структура("ПроверяемыйОбъект, СтруктураВызоваМетода", Объект, СтруктураВызоваМетода); - МокитоСлужебный.Настройки().ПараметрыПроверки = ПараметрыОбучения; + ПараметрыПроверки = Новый Структура("ПроверяемыйОбъект, Описание, СтруктураВызоваМетода", Объект, Описание); + МокитоСлужебный.Настройки().ПараметрыПроверки = ПараметрыПроверки; КонецПроцедуры diff --git a/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl index 4d2adc6a..1d642ff2 100644 --- a/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl +++ b/exts/yaxunit/src/CommonModules/МокитоСлужебный/Module.bsl @@ -20,7 +20,9 @@ Функция Включен() Экспорт - Возврат ЮТКонтекст.ДанныеКонтекста() <> Неопределено; + ДанныеКонтекста = ЮТКонтекст.ДанныеКонтекста(); + Настройки = Неопределено; + Возврат ДанныеКонтекста <> Неопределено И ДанныеКонтекста.Свойство(КлючНастроек(), Настройки) И Настройки <> Неопределено; КонецФункции @@ -35,19 +37,10 @@ // Настройки. // // Возвращаемое значение: -// Структура - Настройки: -// * Метод - Строка -// * Реакция - Строка -// * Настройки - Строка -// * Перехват - Строка -// * Режим - Строка - см. РежимыРаботы -// * Статистика - Структура - Статистика вызовов: -// * Вызовы - Соответствие из Структура -// * ПараметрыОбучения - Структура -// * ПараметрыПроверки - Структура +// см. НовыеНастройки Функция Настройки() Экспорт - Настройки = ЮТКонтекст.ЗначениеКонтекста(КлючНастроек()); + Настройки = ЮТКонтекст.ЗначениеКонтекста(КлючНастроек()); Если Настройки = Неопределено Тогда ВызватьИсключение "Что-то пошло не так, настройки Мокито не инициализированы"; @@ -94,7 +87,11 @@ Настройки = Настройки(); - ПараметрыПерехвата = ДанныеПерехвата(Объект); + Если НЕ ЗначениеЗаполнено(Настройки.Перехват) Или Настройки.ТипыПерехватываемыхОбъектов[ТипЗнч(Объект)] = Неопределено Тогда + Возврат Неопределено; + КонецЕсли; + + ПараметрыПерехвата = ДанныеПерехвата(Объект, Настройки); Если ПараметрыПерехвата = Неопределено Тогда Возврат Неопределено; @@ -235,16 +232,32 @@ КонецФункции +Функция НастройкиПерехватаОбъекта(Объект) Экспорт + + ПараметрыПерехвата = ПараметрыПерехвата(); + Возврат ПараметрыПерехвата[Объект]; + +КонецФункции + // Данные перехвата. // // Параметры: // Объект - Произвольный +// Настройки - см. НовыеНастройки // // Возвращаемое значение: -// см. МокитоСлужебный.ОписаниеПараметровПерехватаОбъекта -Функция ДанныеПерехвата(Объект) Экспорт +// см. ОписаниеПараметровПерехватаОбъекта +Функция ДанныеПерехвата(Объект, Настройки = Неопределено) Экспорт - ПараметрыПерехвата = ПараметрыПерехвата(); + Если Настройки = Неопределено Тогда + ПараметрыПерехвата = ПараметрыПерехвата(); + Иначе + ПараметрыПерехвата = Настройки.Перехват; + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(ПараметрыПерехвата) Тогда + Возврат Неопределено; + КонецЕсли; Если ТипЗнч(Объект) = Тип("Структура") Тогда Ключ = Объект.Объект; @@ -253,17 +266,26 @@ КонецЕсли; ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Ключ]; + ТипЗначения = ТипЗнч(Ключ); - Если ПараметрыПерехватаОбъекта = Неопределено И ЭтоОбъект(Ключ) Тогда - ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Ключ.Ссылка]; + Если ПараметрыПерехватаОбъекта = Неопределено Тогда - Если ПараметрыПерехватаОбъекта = Неопределено Тогда + Если ЮТТипыДанныхСлужебный.ЭтоТипОбъектаОбработкиОтчета(ТипЗначения) Или ЮТТипыДанныхСлужебный.ЭтоТипНабораЗаписей(ТипЗначения) Тогда - ПолноеИмя = СтрРазделить(Ключ.Метаданные().ПолноеИмя(), "."); - - Менеджер = Новый(СтрШаблон("%1Менеджер.%2", ПолноеИмя[0], ПолноеИмя[1])); + Менеджер = ЮТОбщий.Менеджер(ТипЗначения); ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Менеджер]; + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда + + ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Ключ.Ссылка]; + + Если ПараметрыПерехватаОбъекта = Неопределено Тогда + + Менеджер = ЮТОбщий.Менеджер(ТипЗначения); + ПараметрыПерехватаОбъекта = ПараметрыПерехвата[Менеджер]; + + КонецЕсли; + КонецЕсли; КонецЕсли; @@ -272,20 +294,50 @@ КонецФункции -Процедура ЗарегистрироватьПерехватОбъекта(Знач Объект, СброситьСтарыеНастройки = Истина) Экспорт +Процедура ДобавитьНастройкуПерехватаВызововОбъекта(Знач Объект, СброситьСтарыеНастройки = Истина) Экспорт - Если ЭтоОбъект(Объект) Тогда - Объект = Объект.Ссылка; + Настройки = Настройки(); + + Если СброситьСтарыеНастройки ИЛИ Настройки.Перехват[Объект] = Неопределено Тогда + Настройки.Перехват.Вставить(Объект, ОписаниеПараметровПерехватаОбъекта(Объект)); КонецЕсли; - ПараметрыПерехвата = ПараметрыПерехвата(); + ТипОбъекта = ТипЗнч(Объект); - Если СброситьСтарыеНастройки ИЛИ ПараметрыПерехвата[Объект] = Неопределено Тогда - ПараметрыПерехвата.Вставить(Объект, ОписаниеПараметровПерехватаОбъекта(Объект)); + Настройки.ТипыПерехватываемыхОбъектов.Вставить(ТипОбъекта, Истина); + + Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипОбъекта) Тогда + ТипОбъекта = ЮТТипыДанныхСлужебный.ТипОбъектаСсылки(ТипОбъекта); + Настройки.ТипыПерехватываемыхОбъектов.Вставить(ТипОбъекта, Истина); + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипМенеджера(ТипОбъекта) Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда + Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(ТипОбъекта); + + Если Описание <> Неопределено Тогда + + Если Описание.ОписаниеТипа.Ссылочный Или Описание.ОписаниеТипа.ОбработкаОтчет Тогда + ТипОбъекта = Тип(СтрШаблон("%1Объект.%2", Описание.ОписаниеТипа.Имя, Описание.Имя)); + ИначеЕсли Описание.ОписаниеТипа.Регистр Тогда + ТипОбъекта = Тип(СтрШаблон("%1НаборЗаписей.%2", Описание.ОписаниеТипа.Имя, Описание.Имя)); + КонецЕсли; + + Настройки.ТипыПерехватываемыхОбъектов.Вставить(ТипОбъекта, Истина); + + КонецЕсли; +#КонецЕсли КонецЕсли; - + КонецПроцедуры +// Описание параметров перехвата объекта. +// +// Параметры: +// * Объект - Произвольный - Объект +// +// Возвращаемое значение: +// Структура - Описание параметров перехвата объекта: +// * Объект - Произвольный +// * Методы - Структура - Функция ОписаниеПараметровПерехватаОбъекта(Объект) Экспорт Возврат Новый Структура("Объект, Методы", Объект, Новый Структура); @@ -298,17 +350,23 @@ Функция СтатистикаВызовов(Знач Объект, ИмяМетода) Экспорт - Если ЭтоОбъект(Объект) Тогда - Объект = Объект.Ссылка; + Вызовы = Настройки().Статистика.Вызовы; + + СтатистикаВызововМетода = Новый Массив(); + Статистика = Вызовы[Объект]; + ТипОбъекта = ТипЗнч(Объект); + + Если Статистика <> Неопределено И Статистика.Свойство(ИмяМетода) Тогда + СтатистикаВызововМетода = Статистика[ИмяМетода]; + ИначеЕсли Статистика = Неопределено И ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипОбъекта) Тогда + СтатистикаВызововМетода = СтатистикаВызововПоСсылке(Вызовы, Объект, ИмяМетода); + ИначеЕсли ЮТТипыДанныхСлужебный.ЭтоТипМенеджера(ТипОбъекта) Тогда +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда + СтатистикаВызововМетода = СтатистикаВызововПоМенеджеру(Вызовы, Объект, ИмяМетода); +#КонецЕсли КонецЕсли; - Статистика = Настройки().Статистика.Вызовы[Объект]; - - Если Статистика = Неопределено ИЛИ НЕ Статистика.Свойство(ИмяМетода) Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат Статистика[ИмяМетода]; + Возврат СтатистикаВызововМетода; КонецФункции @@ -343,35 +401,6 @@ #Область ОбработкаВызовов -// Зарегистрировать вызов метода. -// -// Параметры: -// Настройки - см. ИнициализироватьНастройки -// ПараметрыПерехвата - см. ДанныеПерехвата -// СтруктураВызоваМетода - см. СтруктураВызоваМетода -Процедура ЗарегистрироватьВызовМетода(Настройки, ПараметрыПерехвата, СтруктураВызоваМетода) - - Объект = ПараметрыПерехвата.Объект; - ИмяМетода = СтруктураВызоваМетода.ИмяМетода; - Статистика = Настройки.Статистика.Вызовы[Объект]; - - Если Статистика = Неопределено Тогда - - Статистика = Новый Структура; - Настройки.Статистика.Вызовы.Вставить(Объект, Статистика); - - КонецЕсли; - - Если НЕ Статистика.Свойство(ИмяМетода) Тогда - - Статистика.Вставить(ИмяМетода, Новый Массив); - - КонецЕсли; - - Статистика[ИмяМетода].Добавить(СтруктураВызоваМетода); - -КонецПроцедуры - Функция ПерехватитьВызовМетода(ПараметрыПерехвата, СтруктураВызоваМетода, ПрерватьВыполнение) Если НЕ ПараметрыПерехвата.Методы.Свойство(СтруктураВызоваМетода.ИмяМетода) Тогда @@ -495,20 +524,39 @@ Процедура ИнициализироватьНастройки() Экспорт + ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), НовыеНастройки(), Истина); + +КонецПроцедуры + +// Новые настройки. +// +// Возвращаемое значение: +// Структура - Настройки: +// * Метод - Строка +// * Реакция - Строка +// * Перехват - Соответствие Из Произвольный +// * ТипыПерехватываемыхОбъектов - Соответствие Из Тип +// * Режим - Строка - см. РежимыРаботы +// * Статистика - Структура - Статистика вызовов: +// * Вызовы - Соответствие из Структура +// * ПараметрыОбучения - Структура +// * ПараметрыПроверки - Структура +Функция НовыеНастройки() + Настройки = Новый Структура; Настройки.Вставить("Метод"); Настройки.Вставить("Реакция"); - Настройки.Вставить("Настройки"); Настройки.Вставить("Перехват", Новый Соответствие); + Настройки.Вставить("ТипыПерехватываемыхОбъектов", Новый Соответствие); Настройки.Вставить("Режим", "НеУстановлен"); Настройки.Вставить("Статистика", Новый Структура("Вызовы", Новый Соответствие)); Настройки.Вставить("ПараметрыОбучения", Неопределено); Настройки.Вставить("ПараметрыПроверки", Неопределено); - ЮТКонтекст.УстановитьЗначениеКонтекста(КлючНастроек(), Настройки, Истина); + Возврат Настройки; -КонецПроцедуры +КонецФункции Процедура ОчиститьНастройки() Экспорт @@ -539,39 +587,6 @@ #КонецОбласти -Функция ЭтоСсылка(Значение) Экспорт - - Если Значение <> Неопределено Тогда - - ТипыСсылок = ЮТОбщий.ОписаниеТиповЛюбаяСсылка(); - Результат = ТипыСсылок.СодержитТип(ТипЗнч(Значение)); - - Иначе - - Результат = Ложь; - - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция ЭтоОбъект(Значение) Экспорт - - Если Значение <> Неопределено И ЮТОбщий.ПеременнаяСодержитСвойство(Значение, "Ссылка") Тогда - - Возврат ЭтоСсылка(Значение.Ссылка); - - Иначе - - Результат = Ложь; - - КонецЕсли; - - Возврат Результат; - -КонецФункции - Функция УсловиеИзПараметров(Параметры) Экспорт Если Параметры = Неопределено Тогда @@ -608,4 +623,84 @@ КонецФункции +#Область Статистика + +// Зарегистрировать вызов метода. +// +// Параметры: +// Настройки - см. ИнициализироватьНастройки +// ПараметрыПерехвата - см. ДанныеПерехвата +// СтруктураВызоваМетода - см. СтруктураВызоваМетода +Процедура ЗарегистрироватьВызовМетода(Настройки, ПараметрыПерехвата, СтруктураВызоваМетода) + + Объект = СтруктураВызоваМетода.Объект; + ИмяМетода = СтруктураВызоваМетода.ИмяМетода; + Статистика = Настройки.Статистика.Вызовы[Объект]; + + Если Статистика = Неопределено Тогда + + Статистика = Новый Структура; + Настройки.Статистика.Вызовы.Вставить(Объект, Статистика); + + КонецЕсли; + + Если НЕ Статистика.Свойство(ИмяМетода) Тогда + + Статистика.Вставить(ИмяМетода, Новый Массив); + + КонецЕсли; + + Статистика[ИмяМетода].Добавить(СтруктураВызоваМетода); + +КонецПроцедуры + +Функция СтатистикаВызововПоСсылке(Вызовы, Ссылка, ИмяМетода) + + СтатистикаВызововМетода = Новый Массив(); + ТипОбъекта = ЮТТипыДанныхСлужебный.ТипОбъектаСсылки(ТипЗнч(Ссылка)); + + Для Каждого Элемент Из Вызовы Цикл + ПодходящийЭлемент = ТипЗнч(Элемент.Ключ) = ТипОбъекта + И Элемент.Ключ.Ссылка = Ссылка + И Элемент.Значение.Свойство(ИмяМетода); + Если ПодходящийЭлемент Тогда + ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); + КонецЕсли; + КонецЦикла; + + Возврат СтатистикаВызововМетода; + +КонецФункции + +#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ТолстыйКлиентУправляемоеПриложение Тогда +Функция СтатистикаВызововПоМенеджеру(Вызовы, Менеджер, ИмяМетода) + + СтатистикаВызововМетода = Новый Массив(); + Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); + + Если Описание = Неопределено Тогда + Возврат СтатистикаВызововМетода; + КонецЕсли; + + Если Описание.ОписаниеТипа.Ссылочный Или Описание.ОписаниеТипа.ОбработкаОтчет Тогда + ТипОбъекта = Тип(СтрШаблон("%1Объект.%2", Описание.ОписаниеТипа.Имя, Описание.Имя)); + ИначеЕсли Описание.ОписаниеТипа.Регистр Тогда + ТипОбъекта = Тип(СтрШаблон("%1НаборЗаписей.%2", Описание.ОписаниеТипа.Имя, Описание.Имя)); + КонецЕсли; + + Для Каждого Элемент Из Вызовы Цикл + ПодходящийЭлемент = ТипЗнч(Элемент.Ключ) = ТипОбъекта + И Элемент.Значение.Свойство(ИмяМетода); + Если ПодходящийЭлемент Тогда + ЮТОбщий.ДополнитьМассив(СтатистикаВызововМетода, Элемент.Значение[ИмяМетода]); + КонецЕсли; + КонецЦикла; + + Возврат СтатистикаВызововМетода; + +КонецФункции +#КонецЕсли + +#КонецОбласти + #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl index 8662905b..c91b841c 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 91260e97..ebdf0fbe 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl @@ -361,12 +361,15 @@ // Функция СкопироватьМассив(МассивИсточник) Экспорт - МассивРезультат = Новый Массив; + Если НЕ ЗначениеЗаполнено(МассивИсточник) Тогда + Возврат Новый Массив; + КонецЕсли; - Для Каждого Элемент Из МассивИсточник Цикл - - МассивРезультат.Добавить(СкопироватьРекурсивно(Элемент)); - + Размер = МассивИсточник.Количество(); + МассивРезультат = Новый Массив(Размер); + + Для Инд = 0 По Размер - 1 Цикл + МассивРезультат[Инд] = СкопироватьРекурсивно(МассивИсточник[Инд]); КонецЦикла; Возврат МассивРезультат; diff --git a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl index cab603e7..0c5b8ec8 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТестовыеДанныеВызовСервера/Module.bsl @@ -328,9 +328,8 @@ Функция КлючЗаписи(Объект) ТипЗначения = ТипЗнч(Объект); - ПредставлениеТипа = ЮТОбщий.ПредставлениеТипа(ТипЗначения); - Если СтрНайти(ПредставлениеТипа, "Object.") Тогда + Если ЮТТипыДанныхСлужебный.ЭтоТипОбъекта(ТипЗначения) Тогда Возврат Объект.Ссылка; diff --git a/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl index 89bbbaeb..d09116c6 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТипыДанныхСлужебный/Module.bsl @@ -23,14 +23,7 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); #Иначе - //@skip-check Undefined variable - ТипXML = СериализаторXDTO.XMLТип(Тип); - - Если ТипXML = Неопределено Тогда - Возврат Строка(Тип); - Иначе - Возврат ТипXML.ИмяТипа; - КонецЕсли; + Возврат ИдентификаторТипа(Тип); #КонецЕсли КонецФункции @@ -39,18 +32,20 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); -#ИначеЕсли Сервер Тогда - Возврат ЗначениеВСтрокуВнутр(Тип); // Не все серверные типы сериализуются через СериализаторXDTO #Иначе - Попытка - Запись = Новый ЗаписьJSON(); - Запись.УстановитьСтроку(); - СериализаторXDTO.ЗаписатьJSON(Запись, Тип); - Возврат Запись.Закрыть(); - Исключение - ЮТРегистрацияОшибок.ДобавитьПояснениеОшибки(СтрШаблон("Не удалось определить идентификатор типа для `%1`", Тип)); - ВызватьИсключение; - КонецПопытки; + ЮТПроверкиСлужебный.ПроверитьТипПараметра(Тип, Тип("Тип"), "ЮТТипыДанныхСлужебный.ИдентификаторТипа", "Тип"); + + Если Тип = Тип("Дата") Тогда + ИдентификаторТипа = "date"; + ИначеЕсли Тип = Тип("Число") Тогда + ИдентификаторТипа = "number"; + Иначе + //@skip-check Undefined variable + ИмяТипаСПространствомИмен = СериализаторXDTO.ЗаписатьXDTO(Тип).ЛексическоеЗначение; + ИдентификаторТипа = СтрРазделить(ИмяТипаСПространствомИмен, "}")[1]; + КонецЕсли; + + Возврат ИдентификаторТипа; #КонецЕсли КонецФункции @@ -59,30 +54,8 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ПредставлениеТипа"); -#ИначеЕсли Сервер Тогда - Если СтрНачинаетсяС(ИдентификаторТипа, "{") Тогда - Возврат ЗначениеИзСтрокиВнутр(ИдентификаторТипа); - КонецЕсли; -#КонецЕсли - - Возврат ТипПоПредставлению(ИдентификаторТипа); - -КонецФункции - -Функция ТипПоПредставлению(ПредставлениеТипа) Экспорт - -#Если ВебКлиент Тогда - ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипПоПредставлению"); #Иначе - Чтение = Новый ЧтениеJSON(); - Чтение.УстановитьСтроку(ПредставлениеТипа); - Результат = СериализаторXDTO.ПрочитатьJSON(Чтение, Тип("Тип")); - - Если Результат = Неопределено Тогда - ВызватьИсключение СтрШаблон("Не удалось определить тип по представлению `%1`", ПредставлениеТипа); - КонецЕсли; - - Возврат Результат; + Возврат Тип(ИдентификаторТипа); #КонецЕсли КонецФункции @@ -93,12 +66,51 @@ КонецФункции -Функция ЭтоМенеджерЗаписи(Тип) Экспорт +Функция ЭтоМенеджерЗаписи(ТипЗначения) Экспорт - ПредставлениеТипа = ЮТОбщий.ПредставлениеТипа(Тип); - СтрокаПоиска = ?(ЮТЛокальСлужебный.ЭтоАнглийскаяЛокальПлатформы(), "Record manager:", "менеджер записи:"); + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНайти(ПредставлениеТипа, "RecordManager.") > 0; - Возврат СтрНайти(ПредставлениеТипа, СтрокаПоиска); +КонецФункции + +Функция ЭтоТипОбъекта(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНайти(ПредставлениеТипа, "Object.") > 0; + +КонецФункции + +Функция ЭтоТипНабораЗаписей(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНайти(ПредставлениеТипа, "RecordSet.") > 0; + +КонецФункции + +Функция ЭтоТипОбъектаОбработкиОтчета(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНачинаетсяС(ПредставлениеТипа, "DataProcessorObject.") Или СтрНачинаетсяС(ПредставлениеТипа, "ReportObject."); + +КонецФункции + +Функция ЭтоТипМенеджера(ТипЗначения) Экспорт + + ПредставлениеТипа = ПредставлениеТипа(ТипЗначения); + Возврат СтрНайти(ПредставлениеТипа, "Manager.") > 0; + +КонецФункции + +Функция ТипОбъектаСсылки(ТипСсылки) Экспорт + +#Если ВебКлиент Тогда + ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТТипыДанныхСлужебный.ТипОбъектаСсылки"); +#Иначе + ТипXML = СериализаторXDTO.XMLТип(ТипСсылки); + ИмяТипа = СтрЗаменить(ТипXML.ИмяТипа, "Ref.", "Object."); + + Возврат СериализаторXDTO.ИзXMLТипа(ИмяТипа, ТипXML.URIПространстваИмен); +#КонецЕсли КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТУтверждения/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТУтверждения/Module.bsl index 7448ea77..030e872b 100644 --- a/exts/yaxunit/src/CommonModules/ЮТУтверждения/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТУтверждения/Module.bsl @@ -1828,13 +1828,13 @@ #Область Предикаты Процедура ПроверитьПредикат(Выражение, ОжидаемоеЗначение, ОписаниеПроверки, ПараметрыСравнения = Неопределено) - + Контекст = Контекст(); Предикат = ЮТФабрика.ВыражениеПредиката(Выражение, Контекст.ОбъектПроверки.ИмяСвойства, ОжидаемоеЗначение); ПолноеОписаниеПроверки = ЮТОбщий.ДобавитьСтроку(Контекст.ПрефиксОшибки, ОписаниеПроверки, " "); - ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки); + ПараметрыСообщенийОбОшибке = ЮТПредикатыКлиентСервер.ПараметрыСообщенийОбОшибке(ПолноеОписаниеПроверки, , Контекст.ОбъектПроверки.Представление); Результат = ЮТПредикатыКлиентСервер.ПроверитьПредикаты(Контекст.ОбъектПроверки.Значение, Предикат, ПараметрыСообщенийОбОшибке, ПараметрыСравнения); ОбработатьРезультатПроверкиПредиката(Результат); 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/fixtures/demo-configuration/src/Catalogs/Встречи/ManagerModule.bsl b/fixtures/demo-configuration/src/Catalogs/Встречи/ManagerModule.bsl index 0ca240b2..c436def2 100644 --- a/fixtures/demo-configuration/src/Catalogs/Встречи/ManagerModule.bsl +++ b/fixtures/demo-configuration/src/Catalogs/Встречи/ManagerModule.bsl @@ -13,17 +13,7 @@ Продолжить; КонецЕсли; - ВстречаОбъект.Начало = ОбрабатываемыйЭлемент.Начало; - ВстречаОбъект.Окончание = ОбрабатываемыйЭлемент.Конец; - - Пользователь = ОбрабатываемыйЭлемент.Владелец; - Если Пользователь = Неопределено Тогда - Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); - КонецЕсли; - - Владелец = Справочники.Пользователи.НайтиПоКоду(Пользователь); - ВстречаОбъект.Владелец = Владелец; - + ЗаполнитьОбъект(ВстречаОбъект, ОбрабатываемыйЭлемент); ВстречаОбъект.Записать(); КонецЦикла; @@ -41,3 +31,23 @@ Возврат Успешно; КонецФункции + +Процедура ЗаполнитьОбъект(Объект, ОбрабатываемыйЭлемент) + + Объект.Начало = ОбрабатываемыйЭлемент.Начало; + Объект.Окончание = ОбрабатываемыйЭлемент.Конец; + + Пользователь = ОбрабатываемыйЭлемент.Владелец; + Если Пользователь = Неопределено Тогда + Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); + КонецЕсли; + + Владелец = Справочники.Пользователи.НайтиПоКоду(Пользователь.Имя); + + Если Владелец.Пустая() Тогда + Владелец = Справочники.Пользователи.ПустойПользователь; + КонецЕсли; + + Объект.Владелец = Владелец; + +КонецПроцедуры diff --git a/fixtures/demo-configuration/src/Catalogs/Пользователи/Пользователи.mdo b/fixtures/demo-configuration/src/Catalogs/Пользователи/Пользователи.mdo index c159995d..a4ecf94c 100644 --- a/fixtures/demo-configuration/src/Catalogs/Пользователи/Пользователи.mdo +++ b/fixtures/demo-configuration/src/Catalogs/Пользователи/Пользователи.mdo @@ -23,7 +23,7 @@ PredefinedDataName - Use + DontUse @@ -33,7 +33,7 @@ Predefined - Use + DontUse @@ -43,7 +43,7 @@ Ref - Use + DontUse @@ -53,7 +53,7 @@ DeletionMark - Use + DontUse @@ -63,7 +63,7 @@ IsFolder - Use + DontUse @@ -75,7 +75,7 @@ true ShowError - Use + DontUse @@ -86,7 +86,7 @@ true - Use + DontUse @@ -101,7 +101,7 @@ ShowError - Use + DontUse @@ -111,14 +111,14 @@ Code - Use + DontUse Use Managed - Use + DontUse Use 2 true @@ -129,6 +129,15 @@ true true AsDescription + + + ПустойПользователь + Пустой пользователь + + 0000000000000000000000001 + + + InDialog BothWays Catalog.Пользователи.Form.ФормаЭлемента diff --git a/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl b/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl new file mode 100644 index 00000000..8be4825f --- /dev/null +++ b/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl @@ -0,0 +1,9 @@ +Процедура ЗаполненоКорректно(НаборЗаписей) Экспорт + + Для Каждого Строка Из НаборЗаписей Цикл + Если Строка.Цена < 0 Тогда + ВызватьИсключение "Цена товара не может быть отрицательной"; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры diff --git a/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl b/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl new file mode 100644 index 00000000..05af581f --- /dev/null +++ b/fixtures/demo-configuration/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl @@ -0,0 +1,19 @@ +#Область ОбработчикиСобытий + +Процедура ПередЗаписью(Отказ, Замещение) + + Если ОбменДанными.Загрузка Тогда + Возврат; + КонецЕсли; + + РегистрыСведений.ЦеныТоваров.ЗаполненоКорректно(ЭтотОбъект); + +КонецПроцедуры + +Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + РегистрыСведений.ЦеныТоваров.ЗаполненоКорректно(ЭтотОбъект); + +КонецПроцедуры + +#КонецОбласти diff --git a/tests/src/Catalogs/Встречи/ManagerModule.bsl b/tests/src/Catalogs/Встречи/ManagerModule.bsl index a588ac46..4643d85f 100644 --- a/tests/src/Catalogs/Встречи/ManagerModule.bsl +++ b/tests/src/Catalogs/Встречи/ManagerModule.bsl @@ -31,3 +31,17 @@ КонецЕсли; КонецФункции + +&Вместо("ЗаполнитьОбъект") +Процедура Расш1_ЗаполнитьОбъект(Объект, ОбрабатываемыйЭлемент) Экспорт + + ПараметрыМетода = Мокито.МассивПараметров(Объект, ОбрабатываемыйЭлемент); + + ПрерватьВыполнение = Ложь; + Мокито.АнализВызова(Справочники.Встречи, "ЗаполнитьОбъект", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Объект, ОбрабатываемыйЭлемент); + КонецЕсли; + +КонецПроцедуры diff --git a/tests/src/Catalogs/Встречи/ObjectModule.bsl b/tests/src/Catalogs/Встречи/ObjectModule.bsl index a9d71463..f56f56e7 100644 --- a/tests/src/Catalogs/Встречи/ObjectModule.bsl +++ b/tests/src/Catalogs/Встречи/ObjectModule.bsl @@ -31,3 +31,17 @@ КонецЕсли; КонецФункции + +&Вместо("ПередЗаписью") +Процедура Расш1_ПередЗаписью(Отказ) + + ПараметрыМетода = Мокито.МассивПараметров(Отказ); + + ПрерватьВыполнение = Ложь; + Мокито.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Отказ); + КонецЕсли; + +КонецПроцедуры diff --git a/tests/src/CommonModules/ОМ_Мокито/Module.bsl b/tests/src/CommonModules/ОМ_Мокито/Module.bsl index 5cec2fe3..af5ca7c0 100644 --- a/tests/src/CommonModules/ОМ_Мокито/Module.bsl +++ b/tests/src/CommonModules/ОМ_Мокито/Module.bsl @@ -20,14 +20,20 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.ВТранзакции() .ДобавитьТест("Обучение") .ДобавитьТест("Обучение_ЦепочкаВызовов") .ДобавитьТест("Проверить") .ДобавитьТест("Прогон_НакоплениеСтатистики").СПараметрами(Истина).СПараметрами(Ложь) - .ДобавитьСерверныйТест("МокированиеМетодовСсылочныхОбъектов").ВТранзакции() .ДобавитьТест("ОшибкаПодбораРеакции") .ДобавитьТест("ИспользованиеПредикатов") + .ДобавитьСерверныйТест("МокированиеМетодовСсылочныхОбъектов") + .ДобавитьСерверныйТест("МокированиеЧерезМенеджер") + .ДобавитьСерверныйТест("МокированиеЧерезСсылку") + .ДобавитьСерверныйТест("МокированиеЧерезОбъект") + .ДобавитьСерверныйТест("МокированиеМетодовРегистра") + .ДобавитьСерверныйТест("МокированиеМетодовОбработки") + .ДобавитьТест("МокированиеЦепочкиВызовов") ; КонецПроцедуры @@ -161,7 +167,7 @@ .Когда(СправочникОбъект.ПечатнаяФормаШтрихкода(Неопределено)).Вернуть(Результат) .Прогон(); - ЮТест.ОжидаетЧто(Справочник.ПолучитьОбъект().ПечатнаяФормаШтрихкода(Неопределено), Описание) + ЮТест.ОжидаетЧто(СправочникОбъект.ПечатнаяФормаШтрихкода(Неопределено), Описание) .Равно(Результат); Мокито.Проверить(Справочник).КоличествоВызовов("ПечатнаяФормаШтрихкода").Заполнено(Описание); @@ -197,6 +203,171 @@ .Равно(Результат); КонецПроцедуры + +Процедура МокированиеЧерезМенеджер() Экспорт + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; + + Запись = Новый Структура("Встреча, Начало, Конец, Владелец"); + Запись.Встреча = ЮТест.Данные().СоздатьЭлемент(Справочники.Встречи, , , ПараметрыЗаписи); + + Мокито.Обучение(Справочники.Встречи) + .Наблюдать("СохранитьИзменения") + .Наблюдать("ЗаполнитьОбъект") + .Наблюдать("ПередЗаписью") + .Прогон(); + + ЮТест.ОжидаетЧто(МокитоСлужебный.Настройки()) // Проверка сформированных настроек + .Свойство("Перехват").ИмеетСвойство(Справочники.Встречи) + .Свойство("ТипыПерехватываемыхОбъектов") + .ИмеетДлину(2); + + Справочники.Встречи.СохранитьИзменения(ЮТОбщий.ЗначениеВМассиве(Запись)); + + Мокито.Проверить(Запись.Встреча, "Проверка через ссылку") + .КоличествоВызовов("ПередЗаписью").Равно(1) + ; + + Мокито.Проверить(Справочники.Встречи, "Проверка через менеджер") + .КоличествоВызовов("ЗаполнитьОбъект").Равно(1) + .КоличествоВызовов("ПередЗаписью").Равно(1) + ; +КонецПроцедуры + +Процедура МокированиеЧерезСсылку() Экспорт + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; + Встреча = ЮТест.Данные().КонструкторОбъекта(Справочники.Встречи) + .ФикцияОбязательныхПолей() + .Записать(); + + Мокито.Обучение(Встреча) + .Когда("УказанКорректныйПериод") + .Вернуть(Истина) + .Когда("УказанКорректныйПериод") + .Вернуть(Ложь) + .Прогон(); + + Объект = Встреча.ПолучитьОбъект(); + + ЮТест.ОжидаетЧто(Объект.ПроверитьЗаполнение(), "Первая проверка") + .ЭтоИстина() + .Что(Объект.ПроверитьЗаполнение(), "Вторая проверка") + .ЭтоЛожь() + ; + + Мокито.Проверить(Встреча) + .КоличествоВызовов("УказанКорректныйПериод").Равно(2) + ; + +КонецПроцедуры + +Процедура МокированиеЧерезОбъект() Экспорт + + ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); + ПараметрыЗаписи.ОбменДаннымиЗагрузка = Истина; + Встреча = ЮТест.Данные().КонструкторОбъекта(Справочники.Встречи) + .ФикцияОбязательныхПолей() + .Записать(); + + Объект1 = Встреча.ПолучитьОбъект(); + Объект2 = Встреча.ПолучитьОбъект(); + + Мокито.Обучение(Объект1) + .Когда("УказанКорректныйПериод") + .Вернуть(Истина) + .Когда("УказанКорректныйПериод") + .Вернуть(Ложь) + .Обучение(Объект2) + .Когда("УказанКорректныйПериод") + .Вернуть(Ложь) + .Прогон(); + + ЮТест.ОжидаетЧто(Объект1.ПроверитьЗаполнение(), "Первая проверка") + .ЭтоИстина() + .Что(Объект1.ПроверитьЗаполнение(), "Вторая проверка") + .ЭтоЛожь() + .Что(Объект2.ПроверитьЗаполнение(), "Проверка второго объекта") + .ЭтоЛожь() + ; + + Мокито.Проверить(Объект1) + .КоличествоВызовов("УказанКорректныйПериод").Равно(2); + Мокито.Проверить(Объект2) + .КоличествоВызовов("УказанКорректныйПериод").Равно(1); +КонецПроцедуры + +Процедура МокированиеМетодовРегистра() Экспорт + + Мокито.Обучение(РегистрыСведений.ЦеныТоваров) + .Наблюдать("ОбработкаПроверкиЗаполнения") + .Когда("ЗаполненоКорректно") + .Пропустить() + .Когда("ЗаполненоКорректно") + .ВыброситьИсключение("Цена товара не может быть отрицательной") + .Прогон() + ; + + НаборЗаписей = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); + ЮТест.ОжидаетЧто(НаборЗаписей) + .Метод("ПроверитьЗаполнение") + .НеВыбрасываетИсключение() + .ВыбрасываетИсключение("Цена товара не может быть отрицательной"); + + Мокито.Проверить(РегистрыСведений.ЦеныТоваров, "Через менеджер") + .КоличествоВызовов("ЗаполненоКорректно").Равно(2) + .КоличествоВызовов("ОбработкаПроверкиЗаполнения").Равно(2); + + Мокито.Проверить(НаборЗаписей, "Через набор") + .КоличествоВызовов("ЗаполненоКорректно").Равно(0) + .КоличествоВызовов("ОбработкаПроверкиЗаполнения").Равно(2); + + // Через набор записей + Мокито.Сбросить(); + НаборЗаписей2 = РегистрыСведений.ЦеныТоваров.СоздатьНаборЗаписей(); + + Мокито.Обучение(НаборЗаписей) + .Наблюдать("ПередЗаписью") + .Прогон(); + + НаборЗаписей.Записать(); + НаборЗаписей2.Записать(); + + Мокито.Проверить(НаборЗаписей, "Обучение через набор, проверка первого набора") + .КоличествоВызовов("ПередЗаписью").Равно(1); + Мокито.Проверить(НаборЗаписей2, "Обучение через набор, проверка второго набора") + .КоличествоВызовов("ПередЗаписью").Равно(0); + Мокито.Проверить(РегистрыСведений.ЦеныТоваров, "Обучение через набор, проверка через менеджер") + .КоличествоВызовов("ПередЗаписью").Равно(1); + +КонецПроцедуры + +Процедура МокированиеМетодовОбработки() Экспорт + + Обработка = Обработки.ПроведениеДокументов.Создать(); + Обработка.ЗаполнитьСписок(); + ЮТест.ОжидаетЧто(Обработка.СписокДокументов) + .Заполнено(); + + Мокито.Обучение(Обработки.ПроведениеДокументов) + .Когда("ЗаполнитьСписок").Пропустить() + .Прогон(); + + Обработка = Обработки.ПроведениеДокументов.Создать(); + + Обработка.ЗаполнитьСписок(); + + ЮТест.ОжидаетЧто(Обработка.СписокДокументов) + .НеЗаполнено("Не сработал перехват события настроенного через менеджер"); + + Мокито.Проверить(Обработка) + .КоличествоВызовов("ЗаполнитьСписок").Равно(1); + Мокито.Проверить(Обработки.ПроведениеДокументов) + .КоличествоВызовов("ЗаполнитьСписок").Равно(1); +КонецПроцедуры + #КонецЕсли Процедура Прогон_НакоплениеСтатистики(НакоплениеСтатистики) Экспорт @@ -303,6 +474,25 @@ .КоличествоВызовов("ВыполнитьЗапрос", Мокито.МассивПараметров(ЛюбойПараметр, Новый Структура("Флаг", 2))).Равно(1) КонецПроцедуры +Процедура МокированиеЦепочкиВызовов() Экспорт + + Мокито.Обучение(Интеграция) + .Когда("ВыполнитьЗапрос") + .Вернуть(1) + .Вернуть(2) + .Вернуть(3) + .Прогон(); + + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) + .Равно(1); + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) + .Равно(2); + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) + .Равно(3); + ЮТест.ОжидаетЧто(Интеграция.ВыполнитьЗапрос("")) + .Равно(3); +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/CommonModules/ОМ_МокитоОбучение/Module.bsl b/tests/src/CommonModules/ОМ_МокитоОбучение/Module.bsl index b68ed09c..ec3b4477 100644 --- a/tests/src/CommonModules/ОМ_МокитоОбучение/Module.bsl +++ b/tests/src/CommonModules/ОМ_МокитоОбучение/Module.bsl @@ -22,6 +22,7 @@ ЮТТесты .ДобавитьТест("ВыброситьИсключение") + .ДобавитьСерверныйТест("ФормированиеТипыПерехватываемыхОбъектов") ; КонецПроцедуры @@ -45,4 +46,39 @@ КонецПроцедуры +#Если Сервер Тогда +Процедура ФормированиеТипыПерехватываемыхОбъектов() Экспорт + + Мокито.Обучение(Обработки.АдминистративныйСервис); + + ЮТест.ОжидаетЧто(МокитоСлужебный.Настройки(), "Обработка менеджер") // Проверка сформированных настроек + .Свойство("Перехват").ИмеетСвойство(Обработки.АдминистративныйСервис) + .Свойство("ТипыПерехватываемыхОбъектов") + .ИмеетДлину(2) + .ИмеетСвойство(Тип("ОбработкаМенеджер.АдминистративныйСервис")) + .ИмеетСвойство(Тип("ОбработкаОбъект.АдминистративныйСервис")); + + Мокито.Сбросить(); + Мокито.Обучение(Справочники.Банки.ПустаяСсылка()); + + ЮТест.ОжидаетЧто(МокитоСлужебный.Настройки(), "Ссылка") // Проверка сформированных настроек + .Свойство("Перехват").ИмеетСвойство(Справочники.Банки.ПустаяСсылка()) + .Свойство("ТипыПерехватываемыхОбъектов") + .ИмеетДлину(2) + .ИмеетСвойство(Тип("СправочникСсылка.Банки")) + .ИмеетСвойство(Тип("СправочникОбъект.Банки")); + + Мокито.Сбросить(); + Мокито.Обучение(РегистрыНакопления.Взаиморасчеты); + + ЮТест.ОжидаетЧто(МокитоСлужебный.Настройки(), "Регистр") // Проверка сформированных настроек + .Свойство("Перехват").ИмеетСвойство(РегистрыНакопления.Взаиморасчеты) + .Свойство("ТипыПерехватываемыхОбъектов") + .ИмеетДлину(2) + .ИмеетСвойство(Тип("РегистрНакопленияНаборЗаписей.Взаиморасчеты")) + .ИмеетСвойство(Тип("РегистрНакопленияМенеджер.Взаиморасчеты")); + +КонецПроцедуры +#КонецЕсли + #КонецОбласти diff --git a/tests/src/CommonModules/ОМ_МокитоСлужебный/Module.bsl b/tests/src/CommonModules/ОМ_МокитоСлужебный/Module.bsl new file mode 100644 index 00000000..3cd44a13 --- /dev/null +++ b/tests/src/CommonModules/ОМ_МокитоСлужебный/Module.bsl @@ -0,0 +1,48 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ДанныеПерехвата") + ; + +КонецПроцедуры + +Процедура ДанныеПерехвата() Экспорт + + Мокито.Обучение(Справочники.Встречи) + .Наблюдать("ПередЗаписью"); + + ДанныеПерехвата = МокитоСлужебный.ДанныеПерехвата(Справочники.Встречи.СоздатьЭлемент()); + + ЮТест.ОжидаетЧто(ДанныеПерехвата) + .Заполнено() + .Свойство("Объект").Равно(Справочники.Встречи) + .Свойство("Методы").ИмеетСвойство("ПередЗаписью") + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git a/tests/src/CommonModules/ОМ_МокитоСлужебный/ОМ_МокитоСлужебный.mdo b/tests/src/CommonModules/ОМ_МокитоСлужебный/ОМ_МокитоСлужебный.mdo new file mode 100644 index 00000000..52786c60 --- /dev/null +++ b/tests/src/CommonModules/ОМ_МокитоСлужебный/ОМ_МокитоСлужебный.mdo @@ -0,0 +1,9 @@ + + + ОМ_МокитоСлужебный + + ru + О м мокито служебный + + true + diff --git a/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl b/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl index cfd26b5e..b06a342e 100644 --- a/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl @@ -23,6 +23,7 @@ ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() .ДобавитьТест("ЗаполнитьСправочник") .ДобавитьТест("ЗаполнитьДокумент") + .ДобавитьТест("СоздатьЗаписьРегистраСведений") .ДобавитьТест("Фикция") .ДобавитьТест("Фикция_Типизированная") .ДобавитьТест("ФикцияОбязательныхПолей") @@ -122,6 +123,20 @@ КонецПроцедуры +Процедура СоздатьЗаписьРегистраСведений() Экспорт + + Результат = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют") + .Фикция("Валюта") + .Фикция("Курс") + .Установить("Период", ТекущаяДата()) + .Записать(); + + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип(Тип("РегистрСведенийКлючЗаписи.КурсыВалют")) + .Заполнено(); + +КонецПроцедуры + Процедура Фикция() Экспорт Поставщик = Ютест.Данные().СоздатьЭлемент("Справочники.Контрагенты"); diff --git a/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/Module.bsl b/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/Module.bsl index 0fd8bf4c..33cd91d1 100644 --- a/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/Module.bsl @@ -39,7 +39,25 @@ .ДобавитьТест("ЭтоКоллекцияПримитивныхТипов") .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата")), Истина) .СПараметрами(ЮТОбщий.ЗначениеВМассиве(Тип("Строка"), Тип("Дата"), Тип("ПеречислениеСсылка.PushУведомления")), Ложь) - + .ДобавитьТест("ИдентификаторТипа") + .СПараметрами("Дата") + .СПараметрами("Строка") + .СПараметрами("Число") + .СПараметрами("Булево") + .СПараметрами("Неопределено") + .СПараметрами("Null") + .СПараметрами("УникальныйИдентификатор") + .СПараметрами("ВидДвиженияБухгалтерии") + .СПараметрами("HTTPЗапрос") + .СПараметрами("ТабличныйДокумент") + .СПараметрами("ХранилищеЗначения") + .СПараметрами("ПеречислениеСсылка.PushУведомления") + .ДобавитьСерверныйТест("ИдентификаторТипа") + .СПараметрами("СправочникМенеджер.Банки") + .СПараметрами("СхемаКомпоновкиДанных") + .СПараметрами("HTTPСервисЗапрос") + .СПараметрами("ОбъектXDTO") + .СПараметрами("ОбъектМетаданных") ; КонецПроцедуры @@ -48,7 +66,6 @@ ЮТест.ОжидаетЧто(ЮТТипыДанныхСлужебный.ЭтоСистемноеПеречисление(Тип)) .Равно(ОжидаемыйРезультат); - КонецПроцедуры Процедура ТипыСистемныхПеречислений() Экспорт @@ -82,6 +99,18 @@ КонецПроцедуры +Процедура ИдентификаторТипа(ИмяТипа) Экспорт + + Тип = Тип(ИмяТипа); + Результат = ЮТТипыДанныхСлужебный.ИдентификаторТипа(Тип(ИмяТипа)); + ЮТест.ОжидаетЧто(Результат) + .Заполнено(); + + ЮТест.ОжидаетЧто(Тип(Результат)) + .Равно(Тип); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/ОМ_ЮТТипыДанныхСлужебный.mdo b/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/ОМ_ЮТТипыДанныхСлужебный.mdo index cacbdb5e..21f68dc7 100644 --- a/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/ОМ_ЮТТипыДанныхСлужебный.mdo +++ b/tests/src/CommonModules/ОМ_ЮТТипыДанныхСлужебный/ОМ_ЮТТипыДанныхСлужебный.mdo @@ -5,5 +5,7 @@ ru Типы данных служебный + true true + true diff --git a/tests/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl b/tests/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl index 3062ad3c..73bc9e91 100644 --- a/tests/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl @@ -93,7 +93,7 @@ Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(23); + .ИмеетДлину(24); КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 68aa40d1..706b8ce6 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -28,6 +28,7 @@ CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.ОМ_Мокито CommonModule.ОМ_МокитоОбучение + CommonModule.ОМ_МокитоСлужебный CommonModule.ОМ_Общий CommonModule.ОМ_ОшибкаЗагрузкиСценариев CommonModule.ОМ_ЮТест @@ -54,4 +55,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 + + diff --git a/tests/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl b/tests/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl new file mode 100644 index 00000000..1377c349 --- /dev/null +++ b/tests/src/InformationRegisters/ЦеныТоваров/ManagerModule.bsl @@ -0,0 +1,14 @@ + +&Вместо("ЗаполненоКорректно") +Процедура Расш1_ЗаполненоКорректно(НаборЗаписей) Экспорт + + ПараметрыМетода = Мокито.МассивПараметров(НаборЗаписей); + + ПрерватьВыполнение = Ложь; + Мокито.АнализВызова(РегистрыСведений.ЦеныТоваров, "ЗаполненоКорректно", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(НаборЗаписей); + КонецЕсли; + +КонецПроцедуры diff --git a/tests/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl b/tests/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl new file mode 100644 index 00000000..1da41808 --- /dev/null +++ b/tests/src/InformationRegisters/ЦеныТоваров/RecordSetModule.bsl @@ -0,0 +1,29 @@ + +&Вместо("ПередЗаписью") +Процедура Расш1_ПередЗаписью(Отказ, Замещение) + + ПараметрыМетода = Мокито.МассивПараметров(Отказ, Замещение); + + ПрерватьВыполнение = Ложь; + Мокито.АнализВызова(ЭтотОбъект, "ПередЗаписью", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Отказ, Замещение); + КонецЕсли; + +КонецПроцедуры + +&Вместо("ОбработкаПроверкиЗаполнения") +Процедура Расш1_ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) + + ПараметрыМетода = Мокито.МассивПараметров(Отказ, ПроверяемыеРеквизиты); + + ПрерватьВыполнение = Ложь; + Мокито.АнализВызова(ЭтотОбъект, "ОбработкаПроверкиЗаполнения", ПараметрыМетода, ПрерватьВыполнение); + + Если НЕ ПрерватьВыполнение Тогда + ПродолжитьВызов(Отказ, ПроверяемыеРеквизиты); + КонецЕсли; + +КонецПроцедуры + diff --git a/tests/src/InformationRegisters/ЦеныТоваров/ЦеныТоваров.mdo b/tests/src/InformationRegisters/ЦеныТоваров/ЦеныТоваров.mdo new file mode 100644 index 00000000..140570f2 --- /dev/null +++ b/tests/src/InformationRegisters/ЦеныТоваров/ЦеныТоваров.mdo @@ -0,0 +1,21 @@ + + + + + + + + + + + + ЦеныТоваров + Adopted + + Checked + Checked + Extended + Extended + + Day +