Имя: Пароль:
1C
1С v8
Вопрос про получение объекта
,
0 Nenau
 
01.09.16
10:13
Добрый день. Столкнулась с проблемой, не могу понять в чем дело.

Есть документ "Док1". В модуле объекта есть экспортная процедура "ОбработкаДокумента".

Есть обработка, в ней команда. После выполнения некоторых действий, у меня есть массив документов. При выполнении такого кода вылетает ошибка, что метод "ОбработкаДокумента" не обнаружен:
Для Каждого Док Из МассивДокументов Цикл
    ДокОбъект = Док.ПолучитьОбъект();
    ДокОбъект.ОбработкаДокумента();
КонецЦикла;

Если же сздать новый документ, то этот метод есть:
ДокОбъект = Документы.Документ1.СоздатьДокумент();
ДокОбъект.ОбработкаДокумента();

Что я делаю не так?
1 Defender aka LINN
 
01.09.16
10:15
(0) Какие ваши доказательства, что в МассивДокументов нет пустых ссылок?
2 Nenau
 
01.09.16
10:16
Клянусь!!)) Точно нету.
3 Зая Бусечка
 
01.09.16
10:17
Для Каждого Док Из МассивДокументов Цикл
    ДокОбъект = Док.ПолучитьОбъект();
Если ДокОбъект <> Неопределено Тогда
    ДокОбъект.ОбработкаДокумента();
КонецЕсли;
КонецЦикла;
4 Nenau
 
01.09.16
10:18
Смотрела отладчиком, в двух случаях получается ДокументОбъект, только в одном случае он пустой (при создании), а в другом случае он заполнен.
5 shadow_sw
 
01.09.16
10:18
(2) уже в  (3) даж проверку написали :)
6 vicof
 
01.09.16
10:19
(3) Ужс.
Для Каждого Док Из МассивДокументов Цикл
    Если ЗначениеЗаполнено(Док)
        Если ТипЗнч(ДокОбъект) = Тип("Документ.Док1") Тогда
            ДокОбъект.ОбработкаДокумента();
        КонецЕсли;
    КонецЕсли;
КонецЦикла;
7 vicof
 
01.09.16
10:19
(6) + Тогда*
8 Nenau
 
01.09.16
10:24
(6) Сдлала как Вы посоветовали, проверила на тип ДокументОбъект.Док1, в условие зашло, та же ошибка.

Приложение управляемое.
9 vicof
 
01.09.16
10:27
А на заполненность проверила?
10 vicof
 
01.09.16
10:28
Включи остановку по ошибке и посмотри, что там в твоем ДОк сидит
11 Nenau
 
01.09.16
10:30
(10) Делала уже так, сравнивала в отладчике ДокОбъект в случае получения объекта уже созданного и в случае создания нового, и в том и в том случае ДокументОбъект, только в одном случае он не заполнен (и процедура вызывается), а во втором случае он заполнен и пишет что метод не обнаружен.
12 vicof
 
01.09.16
10:32
(11) Не верю
13 Nenau
 
01.09.16
10:35
(12) Александр, я бы Вам обязательно доказала, если бы знала как :) скриншоты тут вставить ведь нельзя.
В одном случае ДокументОбъект.Док1, он записан, есть ссылка, во втором случае ДокументОбъект.Док1 только он не записан и все поля пусты.
14 vicof
 
01.09.16
10:37
(13) На файлообменник залей, сюда ссылку
15 Nenau
 
01.09.16
10:41
16 vicof
 
01.09.16
10:51
Если (11) правда, тогда чисть кэш
17 Nenau
 
01.09.16
10:54
(16) Попробую ради интереса, а так перенесла свою процедуру в модуль менеджера.
Спасибо, Александр, за участие и помощь :)
18 Torquader
 
02.09.16
00:11
Битые ссылки, это когда ссылка есть, а ДокСсылка.ПолучитьОбъект() возвращает НЕОПРЕДЕЛЕНО.