Имя: Пароль:
1C
1C 7.7
v7: Выбор документа, связанного с текущим
0 Масянька
 
18.07.13
11:28
День добрый!

Такая задача: Счет -> Оплата -> Реализация (оплата всегда вводится на основании счета). Как для заданной Реализации получить Оплату?

Спасибо.
1 Ёпрст
 
гуру
18.07.13
11:34
хранить её в реквизите шапки документа
2 Масянька
 
18.07.13
11:37
(1) Не вариант - уже ведется учет (ТиС), сколько же перелопатить надо будет.
У меня есть вариант: сначала для Реализации получить Счет, а из него уже Оплату. Думала, что есть более оптимальный способ.
3 Chum
 
18.07.13
11:42
+(1) обычно используют общие реквизиты
4 Масянька
 
18.07.13
11:44
А про какие реквизиты вы говорите?
5 Ёпрст
 
гуру
18.07.13
11:47
У тебя ссылка на реализацию где-то хранится в реквизите документа ?
6 Масянька
 
18.07.13
11:48
(5) Да нет.
7 Mikeware
 
18.07.13
11:49
(6) ну и храни...
8 palpetrovich
 
18.07.13
11:50
а Реализация вводится на основании  чего?
9 Mikeware
 
18.07.13
11:50
если ц тебя документы связаны - то проблемы получить из - нет. а если документы не связаны - то вормулировка вопроса в (0) неверна.
10 Масянька
 
18.07.13
11:56
Счет - сам по себе.
Реализация - на основании Счета - ссылка на Счет хранится в реквизите ДокОснование.
Оплата - на основании Счета - ссылка на Счет хранится в реквизите ДокОснование.
11 Ёпрст
 
гуру
18.07.13
12:05
(10) а говоришь не связаны.
12 Масянька
 
18.07.13
12:06
(11) Дык и получается: для Реализации - сначала счет, потом - Оплата. А короче никак?
13 Ёпрст
 
гуру
18.07.13
12:06
ну и бери у реализации счет из реквизита, у счета выборкой подчиненных свою оплату, усё.
14 palpetrovich
 
18.07.13
12:07
(12)  самый короткий путь. если надо быстрее - делай прямым запросом, если не знаешь как, спроси у (11) :)
15 Масянька
 
18.07.13
12:07
Еще нашла в обработке Структуры подчиненности такую штуку:

Функция НайтиКорень(Док)
   // Эта Функция помогает формировать Дерево подчиненных документов
   
   СписокЗащитыОтЗацикливания.ДобавитьЗначение(Док);
   
   ВД=Док.Вид();
   КореньДок=0;
   
   Для Н=1 По Метаданные.Документ(ВД).РеквизитШапки() Цикл
       РеквДок=Док.ПолучитьАтрибут(Метаданные.Документ(ВД).РеквизитШапки(Н));
       Если ТипЗначенияСтр(РеквДок)="Документ" Тогда
           Если ПустоеЗначение(РеквДок)=0 Тогда
               Если СписокЗащитыОтЗацикливания.НайтиЗначение(РеквДок)>0 Тогда
                   Продолжить;
               КонецЕсли;
               КореньДок=РеквДок;
               Прервать;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   
   Если ПустоеЗначение(КореньДок)=1 Тогда
       Возврат Док;
   Иначе
       Возврат НайтиКорень(КореньДок);
   КонецЕсли;
КонецФункции


Поможет?
16 Ёпрст
 
гуру
18.07.13
12:09
(15) тебе это не надо совсем.. достаточно выбратьподчиненныедокументы у реквизита реализации.. усё. и пофильтровать по виду дока оплаты.
17 Масянька
 
18.07.13
12:10
(16) Уговорил :)))
18 Масянька
 
18.07.13
12:43
(16) Как обычно - тебе ОГРОМНОЕ спасибо!
Остальным - просто спасибо!