//глобальные переменные
Перем RS Экспорт ;
Перем RSподч Экспорт ;
Перем RSДвиж Экспорт ;
Перем МетаДата Экспорт ;
Функция глВыбратьПодчиненныеДокументы(Док,ВидДок="",УдПров=1) Экспорт
Перем ТЗ;
RSподч = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса="
|SELECT
| TabJ.IDDOC as ИдДокумента
| ,TabJ.IDDOCDEF as ВидДокумента
|FROM
| _1SCRDOC as Отбор (NOLOCK)
|INNER JOIN
| _1SJOURN As TabJ (NOLOCK) ON Отбор.ChildID = TabJ.IDDOC
|WHERE {Условие}
|";
Если ВидДок <> "" Тогда
стр = "(Отбор.ParentVal=?) AND (TabJ.IDDOCDEF=?) AND (Отбор.MDID=0) AND (TabJ.Closed&1>=?) AND (TabJ.ISMARK=0)";
Иначе
стр = "(Отбор.ParentVal=?) AND (Отбор.MDID=0) AND (TabJ.Closed&1>=?) AND (TabJ.ISMARK=0)";
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{Условие}", стр) ;
//Если ПустоеЗначение(ДатаНач)=0 Тогда
// ТекстЗапроса = ТекстЗапроса + "AND TabJ.DATE_TIME_IDDOC>=МетаДата.ПолучитьСтрИзДаты(ДатаНач)";
//КонецЕсли;
//Если ПустоеЗначение(ДатаКон)=0 Тогда
// ТекстЗапроса = ТекстЗапроса + "AND TabJ.DATE_TIME_IDDOC<МетаДата.ПолучитьСтрИзДаты(ДатаКон+1)";
//КонецЕсли;
RSподч.Подготовить(ТекстЗапроса) ;
RSподч.ДобПараметр(1,14,23,0) ;
RSподч.ДобПараметр(1,3,4,0) ;
RSподч.ДобПараметр(1,2,1,0) ;
RSподч.ДобПараметр(1,2,1,0) ;
ТЗЗапрос =СоздатьОбъект("ТаблицаЗначений");
ТЗЗапрос.НоваяКолонка("Документ");
RSподч.УстПараметр(1, МетаДата.ЗначениеВСамуюДлиннуюСтрокуБД(Док.ТекущийДокумент()), 1) ;
Если ВидДок <> "" Тогда
RSподч.УстПараметр(2, МетаДата.ИДДокумента(ВидДок)) ;
КонецЕсли;
RSподч.УстПараметр(3, ?(УдПров=2,1,0)) ;
ТЗ = RSподч.ВыполнитьИнструкцию(ТекстЗапроса);
Если ПустоеЗначение(ТЗ) = 1 Тогда
Возврат 0;
Иначе
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗЗапрос.НоваяСтрока();
ТЗЗапрос.Документ=МетаДата.ЗначениеИзСтрокиБД(12,ТЗ.ВидДокумента,ТЗ.ИдДокумента);
КонецЦикла;
RSподч.Закрыть();
Возврат ТЗЗапрос;
КонецЕсли;
КонецФункции