Имя: Пароль:
1C
1C 7.7
v7: НайтиПоРеквизиту - почему не работает?
0 Buzztekk
 
27.06.17
14:50
Добрый день. Дамы и Господа подскажите пожалуйста
Я хочу  найти документ АктРазногласий по реквизиту "ДокументОснование"
ТТН=СоздатьОбъект("Документ.ТТН");
АктРазн=СоздатьОбъект("Документ.АктРазногласий");

Если ТТН.НайтиПоНомеру(номер,дата)=1 тогда
Если АктРазн.НайтиПоРеквизиту("ДокументОснование",ТТН,1)=1 тогда...


Ругается и пишет что
Поле Агрегатного объекта не обнаружено (НайтиПоРеквизиту)

Почему???
1 bodri
 
27.06.17
14:51
(0) индексация?
2 Дмитрий
 
27.06.17
14:55
у документов нет метода найтипореквизиту()
3 Волшебник
 
модератор
27.06.17
14:57
(2) в восьмёрке это реализовано
4 Buzztekk
 
27.06.17
14:58
(2) Дмитрий вы правы.. Вот я идиот. Это же только по справочникам можно.
Как же мне найти документ, зная его основание? Только запросом?
5 PiterPrg
 
27.06.17
14:59
(2) У документов нет даже способа поставить индексацию у реквизита.
Однако, есть возможность использовать графу отбора.
По значению графы как раз можно искать
6 Дмитрий
 
27.06.17
14:59
(3) восьмёрка вещ
7 Дмитрий
 
27.06.17
14:59
(4) через подчиненные документы
8 PiterPrg
 
27.06.17
15:00
(4) ВыбратьПодчиненныеДокументы()
9 Дмитрий
 
27.06.17
15:01
СП Документ.ВыбратьПодчиненныеДокументы(Дата1, Дата2, Докум) (7)
10 Slypower
 
27.06.17
15:52
а если сразу обратиться к документу основания, зачем его искать, если это является реквизитом документа?
11 Buzztekk
 
28.06.17
10:32
(9) Спасибо, попробую.
(10) Slypower, Дак документ основания у меня известен, мне нужно найти по этому документу, подчиненный ему документ Акт расхождения. Причем у документа основания несколько подчиненных документов, мне же нужен только Акт Расхождения из  них.
12 SleepyHead
 
гуру
28.06.17
11:07
(11)

Акт = ПолучитьПустоеЗначение("Документ");
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,ДокОснование);
Пока Док.ПолучитьДокумент()=1 Цикл
   Если Док.Вид()="акт расхождения" Тогда
      Сообщить("Попался!!!");
      Акт = Док.ТекущийДокумент();
      Прервать;
   КонецЕсли;
КонецЦикла;

Если Акт.Выбран()=1 Тогда
   // обработка найденного акта
Иначе
   // выразить соболезнования в связи с неудачей
КонецЕсли;
13 Buzztekk
 
29.06.17
15:43
(12) Спасибо!!!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс