Имя: Пароль:
1C
1С v8
Ошибка получения формы документа
0 Irbis05
 
21.08.12
12:28
Здраствуйте, возникла такая проблема: в файле внешнего отчета выполняю поиск документа по номеру, а потом пытаюсь открыть найденую форму. Вот код:
Док = Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру("00000000152");
       Если Док = Неопределено Тогда
           Сообщить("Ошибка1");
           Возврат;
       КонецЕсли;
       ФормаДокумента = Док.ПолучитьФорму("ФормаДокумента");
       Если ФормаДокумента = Неопределено Тогда
           Сообщить("Ошибка2");
           Возврат;
       КонецЕсли;
       ФормаДокумента.Открыть();
Однако у меня выходит не понятная мне ошибка:
{Форма.ФормаОтчета.Форма(87)}: Ошибка при вызове метода контекста (ПолучитьФорму)
       ФормаДокумента = Док.ПолучитьФорму("ФормаДокумента");
по причине:
Элемент не выбран!
Что тут не так? Заранее спасибо.
1 Wobland
 
21.08.12
12:29
а что тебе возвращается в случае ненайденности документа?
2 Mort
 
21.08.12
12:29
Когда это процедура НайтиПоНомеру возвращала "Неопределено" ?
3 zladenuw
 
21.08.12
12:30
(2)
Возвращаемое значение:

Тип: ДокументСсылка.<Имя документа>; Неопределено.
Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ.
Если номер не задан (длина = 0), то будет возвращено Неопределено.
4 ZanderZ
 
21.08.12
12:31
(0) сделай проверку на пустую ссылку - лучше через ЗначениеЗаполнено
(2) в СП посмотри
5 Web00001
 
21.08.12
12:35
(4) Она может возращать неопределено но не в данном случае
6 Irbis05
 
21.08.12
12:35
В выборе по номеру и по пустойссылке, док принимает значение Документ.ПлатежныеПорученияИсходящие и все
7 ZanderZ
 
21.08.12
12:36
(5) я не верно написал "сделай проверку И на пустую ссылку "
(6) ну так у тебя по номеру не находит и возвращает пустую ссылку...
8 Irbis05
 
21.08.12
12:36
Посмотрел при помощи точки останова пишет форма документа неопределено
9 Wobland
 
21.08.12
12:37
(8) патамушта ещё не получена. патамушта неоткуда её получать. патамушта не найден твой документ
10 Irbis05
 
21.08.12
12:38
(7) Заработало с пустойСсылкой, но мне нужно чтоб искал номер, как мне это сделать?
11 Wobland
 
21.08.12
12:39
(10) у тебя уже ищет
12 ZanderZ
 
21.08.12
12:40
(10) СП почитать про НайтиПоНомеру, проверить верно ли номер проставлен
13 Irbis05
 
21.08.12
12:42
(11) а почему не открывает документ?
(12) номер документа скопировал прямо из документа, пробовал записывать его в разных форматах, один и тот же результат
14 Wobland
 
21.08.12
12:43
(13) период ещё скажи
15 Irbis05
 
21.08.12
12:48
Период не задавал. Проверил еще раз покывает что док = пустаяссылка, получается что он не находит по номеру, а почему мне не понятно.
16 ZanderZ
 
21.08.12
12:50
(15) период задай - или запросом сделай
17 Irbis05
 
21.08.12
13:12
Че та ни как, я посмотрел через точку останова док примает ссылку на документ весь, у его параметров значение номер = "       ", дата = "01.01.0001 00:00:00, ну и все остальные тоже по минимуму или нулю
18 Wobland
 
21.08.12
13:17
(17) это пустая ссылка
19 Wobland
 
21.08.12
13:17
(17) ищи лучше
20 Рэйв
 
21.08.12
13:23
(17)
Синтаксис:

НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>)
Параметры:

<НомерДокумента> (обязательный)

Тип: Число; Строка.
Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа.
<ДатаИнтервала> (необязательный)

Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
(!!!!!!!)-->Параметр используется для документов с периодической нумерацией.
21 Irbis05
 
21.08.12
13:46
Решил проблему, всем спасибо за участие,помощь и сочуствие. Если кому-то интересно, то у меня заработало вот так:
Номер = "00000000141";
     Док = Документы.ПлатежноеПоручениеИсходящее.НайтиПоНомеру(Номер, ТекущаяДата());
       Если Док <> Документы.ПлатежноеПоручениеИсходящее.ПустаяСсылка() Тогда
           Если  Не ЗначениеЗаполнено(Док) Тогда
           Сообщить("Ошибка1");
           Возврат;
       КонецЕсли;
       ФормаДокумента = Док.ПолучитьФорму("ФормаДокумента");
       Если ФормаДокумента = Неопределено Тогда
           Сообщить("Ошибка2");
           Возврат;
       КонецЕсли;
       ФормаДокумента.Открыть();
       Иначе Сообщить("АААААААА");
           КонецЕсли;