diff --git a/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl index b117f901..e31bdb21 100644 --- a/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТЗапросы/Module.bsl @@ -198,4 +198,32 @@ КонецФункции +// Возвращает коллекцию движений документа +// +// Параметры: +// Документ - ДокументСсылка +// ИмяРегистра - Строка - Короткое или полное имя регистра движений +// +// Возвращаемое значение: +// Массив из Структура - Движения документа для клиента +// ТаблицаЗначений - Движения документа для сервера +Функция ДвиженияДокумента(Документ, Знач ИмяРегистра) Экспорт + + Если СтрНайти(ИмяРегистра, ".") = 0 Тогда + РегистрыДвижения = ЮТМетаданные.РегистрыДвиженийДокумента(Документ); + + Если НЕ РегистрыДвижения.Свойство(ИмяРегистра) Тогда + ВызватьИсключение "Документ не делает движений по регистру " + ИмяРегистра; + КонецЕсли; + + ИмяРегистра = РегистрыДвижения[ИмяРегистра]; + КонецЕсли; + + Предикат = ЮТест.Предикат().Реквизит("Регистратор").Равно(Документ); + ОписаниеЗапроса = ЮТЗапросыКлиентСервер.ОписаниеЗапроса(ИмяРегистра, Предикат, "*"); + + Возврат ЮТЗапросыВызовСервера.Записи(ОписаниеЗапроса, Ложь); + +КонецФункции + #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl index 53e1606c..a9a55318 100644 --- a/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТМетаданные/Module.bsl @@ -102,4 +102,24 @@ КонецФункции +// Возвращяет набор регистров движений документа +// +// Параметры: +// Документ - ОбъектМетаданных +// - Тип - Тип объекта информационной базы +// - Строка - Полное имя объекта метаданных +// - см. ОписаниеОбъектаМетаданных +// - ДокументСсылка, ДокументОбъект - Объект информационной базы +// - ДокументМенеджер - Менеджер вида документа +// +// Возвращаемое значение: +// Структура - Регистры движений документа. Ключи - Имя регистра, Значение - Полное имя регистра +Функция РегистрыДвиженийДокумента(Документ) Экспорт + + ОписаниеОбъектаМетаданных = ОписаниеОбъектаМетаданных(Документ); + + Возврат ЮТМетаданныеПовтИсп.РегистрыДвиженийДокумента(ОписаниеОбъектаМетаданных); + +КонецФункции + #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданныеПовтИсп/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданныеПовтИсп/Module.bsl index c19d62a0..8b2188d8 100644 --- a/exts/yaxunit/src/CommonModules/ЮТМетаданныеПовтИсп/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТМетаданныеПовтИсп/Module.bsl @@ -49,4 +49,10 @@ КонецФункции +Функция РегистрыДвиженийДокумента(ОписаниеОбъектаМетаданных) Экспорт + + Возврат ЮТМетаданныеСервер.РегистрыДвиженийДокумента(ОписаниеОбъектаМетаданных); + +КонецФункции + #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl index 4ec4f618..5006e2ae 100644 --- a/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТМетаданныеСервер/Module.bsl @@ -229,6 +229,26 @@ КонецФункции +Функция РегистрыДвиженийДокумента(ОписаниеОбъектаМетаданных) Экспорт + + ОбъектМетаданных = ОбъектМетаданных(ОписаниеОбъектаМетаданных); + + Если НЕ Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда + ВызватьИсключение "Движения доступны только для документов"; + КонецЕсли; + + Регистры = Новый Структура; + + Для Каждого Регистр Из ОбъектМетаданных.Движения Цикл + + Регистры.Вставить(Регистр.Имя, Регистр.ПолноеИмя()); + + КонецЦикла; + + Возврат Регистры; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -259,6 +279,10 @@ КонецЕсли; + ИначеЕсли ТипЗначение = Тип("Структура") И Значение.Свойство("ОписаниеТипа") И Значение.Свойство("Имя") Тогда + + ОбъектМетаданных = Метаданные[Значение.ОписаниеТипа.ИмяКоллекции][Значение.Имя]; + Иначе ОбъектМетаданных = Неопределено;