|
v7: глПолучитьСписокПодчиненныхДокументов | ☑ | ||
---|---|---|---|---|
0
dk
18.01.12
✎
09:32
|
Есть у кого готовое? что=то пошарился в типовых - не нашел (
|
|||
1
andrewks
18.01.12
✎
09:33
|
тут писать-то на 5 минут
|
|||
2
Mikeware
18.01.12
✎
09:34
|
ВыбратьПодчиененые и заполнить в цикле?
|
|||
3
1Сергей
18.01.12
✎
09:34
|
//******************************************************************************
// глПолучитьВсеПодчиненныеДокументы(Док, СписокДок) // // Параметры: // Док - документ, к которому нужно получить список подчиненных документов // СписокДок - список значений, содержащий идентификаторы и // представления видов документов // Возвращаемое значение: // Список значений, содержащий идентификаторы и // представления видов документов // // Описание: // Формируем список документов, которые введены на основании документа (Док) // Процедура глПолучитьВсеПодчиненныеДокументы(Док, СписокДок) Экспорт Если СписокДок.НайтиЗначение(Док.ТекущийДокумент())<=0 Тогда СписокДок.ДобавитьЗначение(Док.ТекущийДокумент()); ПодчинДок = СоздатьОбъект("Документ"); ПодчинДок.ВыбратьПодчиненныеДокументы(,,Док.ТекущийДокумент()); Пока ПодчинДок.ПолучитьДокумент() = 1 Цикл глПолучитьВсеПодчиненныеДокументы(ПодчинДок,СписокДок); КонецЦикла; КонецЕсли; КонецПроцедуры // глПолучитьВсеПодчиненныеДокументы() |
|||
4
Rie
18.01.12
✎
09:34
|
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,КомуПодчиненные); Пока Док.ПолучитьДокумент()=1 Цикл //... не оно? |
|||
5
Mikeware
18.01.12
✎
09:36
|
Функция глВыбратьПодчиненные(ДокОснование,ВидПодчДокумента="", НачДата="",КонДата="", флПроведенные="") Экспорт
ТекстЗапроса=" |SELECT | distinct | Жур.IDDoc [Док $Документ], | Жур.IDDocDef Док_вид |FROM | _1SJourn Жур (nolock) |INNER JOIN | _1SCRDOC Отбор ON Отбор.ChildID = Жур.IDDoc AND | Отбор. MDID = 0 AND | Отбор.ParentVal = :ВыбОснование* "; Если ПустоеЗначение(НачДата)=0 Тогда ТекстЗапроса=ТекстЗапроса+" | AND Отбор.Child_Date_Time_IDDoc >:НачДата "; КонецЕсли; Если ПустоеЗначение(КонДата)=0 Тогда ТекстЗапроса=ТекстЗапроса+" | AND Отбор.Child_Date_Time_IDDoc < :КонДата~"; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |where Жур.ismark=0"; Если ПустоеЗначение(флПроведенные)=0 Тогда ТекстЗапроса=ТекстЗапроса+" | and Жур.closed&1=:Проведенные"; КонецЕсли; Если ПустоеЗначение(ВидПодчДокумента)=0 Тогда ТекстЗапроса=ТекстЗапроса+" | and Жур.IDDocDef=$ВидДокумента."+ВидПодчДокумента; КонецЕсли; ТекстЗапроса=ТекстЗапроса+" |order by Жур.iddoc |"; рс=СоздатьОбъект("ODBCRecordset"); Если ПустоеЗначение(НачДата)=0 Тогда рс.УстановитьТекстовыйПараметр("НачДата", НачДата); КонецЕсли; Если ПустоеЗначение(КонДата)=0 Тогда рс.УстановитьТекстовыйПараметр("КонДата",КонДата); КонецЕсли; рс.УстановитьТекстовыйПараметр("ВыбОснование",ДокОснование); Если ПустоеЗначение(флПроведенные)=0 Тогда рс.УстановитьТекстовыйПараметр("Проведенные",флПроведенные); КонецЕсли; результат=рс.ВыполнитьИнструкцию(текстЗапроса); Возврат результат; КонецФункции // глВыбратьПодчиненные |
|||
6
dk
18.01.12
✎
09:37
|
(3) спб
--- (1)(2)(4) там несколько уровней вложенности + защита от зацикливания |
|||
7
andrewks
18.01.12
✎
09:38
|
(6) ну-ка расскажи про зацикливание
|
|||
8
dk
18.01.12
✎
09:39
|
(7) 2 документа ссылаются др на др
|
|||
9
filh
18.01.12
✎
09:39
|
(7) в типовой ТиС посмотри.
|
|||
10
1Сергей
18.01.12
✎
09:39
|
(5) изварщенец :)
|
|||
11
filh
18.01.12
✎
09:39
|
+9 обработка - ДеревоДокументов
|
|||
12
dk
18.01.12
✎
09:39
|
ну или через другой подчиненный документ
|
|||
13
andrewks
18.01.12
✎
09:42
|
(8) ну, элементарно проверяется по наличию в текущем списке
|
|||
14
dk
18.01.12
✎
09:44
|
просто лениво писать и тестить, раз уже готовое есть
|
|||
15
aka AMIGO
18.01.12
✎
09:53
|
||||
16
aka AMIGO
18.01.12
✎
10:39
|
||||
17
Злопчинский
18.01.12
✎
11:17
|
курите все бамбук любители типовых - ДеревоДокументов из Тис или Бух - кривое; строится только по реквизитам шапки и не защищает от зацикливания при наличии циклических ссылок
|
|||
18
Simod
18.01.12
✎
11:30
|
(17) У меня ни разу не зациклилось. Просвяти.
|
|||
19
Mikeware
18.01.12
✎
11:38
|
(10) почему извращенец? Удобно, если нужно найти, скажем, непроведенные документы определенного вида, созданные после даты....
(18) Было, но надо извращаться... |
|||
20
aka AMIGO
18.01.12
✎
12:39
|
(18) зациклится, если применить (8)
|
|||
21
Злопчинский
19.01.12
✎
01:12
|
(18) уже просветили...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |