Имя: Пароль:
1C
1С v8
Ошибка в объекте Метаданные при создании документа
, ,
0 01230123
 
03.04.15
11:33
При попытке создать новый документ "Платежное поручение" выдаётся ошибка
Ошибка при выполнении обработчика - 'ОбработкаЗаполнения'
по причине:
{ОбщийМодуль.ЗаполнениеДокументов.Модуль(205)}: Значение не является значением объектного типа (Метаданные)

Возможно, ошибка из-за того, что 1С переводили с 8.1 на 8.3
Подскажите, что дописать нужно в код:

Процедура ЗаполнитьШапкуДокументаПоОснованию(ДокументОбъект, ДокументОснование) Экспорт

    МетаданныеДокумента          = ДокументОбъект.Метаданные();
    МетаданныеДокументаОснования = ДокументОснование.Метаданные();
1 ktvladimir
 
03.04.15
11:37
начать с того что проверить чему равные на входе переменные ДокументОбъект и МетаданныеДокументаОснования
2 01230123
 
03.04.15
11:44
Они пустые, т.к. (забыл сказать) я создаю новый документ, не на основании. Не понимаю, при чём здесь процедура заполнения на основании...
3 barrgand
 
03.04.15
11:47
(2) Поправить необходимо процедуру ОбработкаЗаполнения.
4 Любопытная
 
03.04.15
11:48
(2) Обработка заполнения вызывается всегда, даже если заполняется не на основании. ДокументОбъект не может быть совсем пустым, там должен быть объект метаданных
5 DrShad
 
03.04.15
11:49
(4) не объект метаданных, а документ объект
6 01230123
 
03.04.15
11:52
(4) В ДокументОбъект значение "Платежное поручение входящее  от 01.01.0001 0:00:00" А так как у нас вообще нет ни одного платёжного поручения входящего, то я и подумал, что это пустое значение.
7 DrShad
 
03.04.15
11:55
(6) а как это значение туда попадает? можно кусочек предыдущего кода?
8 01230123
 
03.04.15
12:28
В модуле создаваемого документа я нашёл только вот это:
Процедура ОбработкаЗаполнения(Основание)

    // Заполним реквизиты из стандартного набора по документу основанию.
    ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ЭтотОбъект, Основание);
    УправлениеДенежнымиСредствами.ЗаполнитьПриходПоОснованию(ЭтотОбъект, Основание, УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойОтветственный"));

КонецПроцедуры // ОбработкаЗаполнения()

И больше не знаю, где искать. При попытке создать вызывается , как я понял, процедура ОбработкаЗаполнения, а почему ЭтотОбъект на этот момент уже имеет такое значение, не пойму.
9 ktvladimir
 
03.04.15
12:32
уверен что на входе процедуры ЗаполнитьШапкуДокументаПоОснованию
ДокументОбъект документ имеет тип ДокументОбъект.Имя документа и ДокументОснование, что там именно объект а не неопределено к примеру? я к примеру совсем не уверен что у тебя основание имеет тип ДокументОбъект а не структура какая нить к примеру
10 DrShad
 
03.04.15
12:38
(8) если тебе нужны метаданные передавай туда пустую ссылку, а не еще не записанный объект