Имя: Пароль:
1C
1С v8
ошибка поле объекта не обнаружена помогите
,
0 DAVI
 
04.04.12
13:16
при создании документа(их много,и они все разные,например кадровые перемещения организации)вылетает ошибка {ОбщийМодуль.ЗаполнениеДокументов.Модуль(620)}: Поле объекта не обнаружено (ДокументОснование)
помогите,в 1с я недавно.плиииз
1 butterbean
 
04.04.12
13:17
ну ты бы хоть код выложил
2 DAVI
 
04.04.12
13:24
Процедура ЗаполнитьШапкуДокумента(ДокументОбъект, ТекПользователь, ВалютаРегламентированногоУчета = Неопределено, ТипОперации = "", ПараметрОбъектКопирования = Неопределено, ПараметрОснование = Неопределено, НеИзменятьРеквизитыПоНДС = Ложь) Экспорт

   Перем ТипЦен;

   МетаданныеДокумента = ДокументОбъект.Метаданные();

   Если ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента) Тогда
       Если ЗначениеЗаполнено(ДокументОбъект.ДокументОснование) Тогда
           ДокументОбъект.Ответственный = ДокументОбъект.ДокументОснование.Ответственный;
           Иначе
       ДокументОбъект.Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнойОтветственный");
       КонецЕсли;
   КонецЕсли;

   // Автор
   Если ОбщегоНазначения.ЕстьРеквизитДокумента("Автор", МетаданныеДокумента)
      И (НЕ ЗначениеЗаполнено(ДокументОбъект.Автор)) Тогда
       ДокументОбъект.Автор = ТекПользователь;
   КонецЕсли;

   Если ОбщегоНазначения.ЕстьРеквизитДокумента("ОтражатьВУправленческомУчете", МетаданныеДокумента) Тогда
       Если ЗначениеЗаполнено(ПараметрОбъектКопирования)   Тогда
           ДокументОбъект.ОтражатьВУправленческомУчете = ПараметрОбъектКопирования.ОтражатьВУправленческомУчете;
       Иначе
           ДокументОбъект.ОтражатьВУправленческомУчете = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОтражатьДокументыВУправленческомУчете");
       КонецЕсли;
   КонецЕсли;
   
   Если ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
     И (Не ЗначениеЗаполнено(ДокументОбъект.Организация)) Тогда
       ДокументОбъект.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнаяОрганизация");
   КонецЕсли;
3 DAVI
 
04.04.12
13:24
ругается на ответсвенного,я так думаю
4 butterbean
 
04.04.12
13:25
facepalm
5 BuHu
 
04.04.12
13:25
(3) т.е. это >> Поле объекта не обнаружено (ДокументОснование)
тебе не очем не говорит?
6 Wobland
 
04.04.12
13:26
(3) а я думаю, на ДокументОбъект
7 DAVI
 
04.04.12
13:27
не судите строго,я новичок,подскажите
8 BuHu
 
04.04.12
13:28
(7) нет у твоего документа реквизита ДокументОснование
9 DAVI
 
04.04.12
13:30
раньше все было нормально,мне кажется ошибки поперли после обмена
10 m-serg74
 
04.04.12
13:33
(9) в отладчике остановку по ошибке попробовать не судьба?
11 Wobland
 
04.04.12
13:36
(9) документ перестал вводиться на основании?
12 DAVI
 
04.04.12
13:40
нет,нажимаю на плюсик создаю новый документ,и он выдает ошибку
13 DAVI
 
04.04.12
13:41
сейчас посмотрю в отладчике
14 Wobland
 
04.04.12
13:43
(12) ну нет такого реквизита у нового документа
15 DAVI
 
04.04.12
14:29
он ругается на ответсвенного,как я понял по коду если в документе есть ответсвенный,тогда заполняет его,иначе он заполняет по реквизиту основной ответсвенный,я правильно понял?
16 J_B
 
04.04.12
14:52
Сдается мне, что этот кусочек был кем-то дописан в модуль...
      Если ЗначениеЗаполнено(ДокументОбъект.ДокументОснование) Тогда
           ДокументОбъект.Ответственный = ДокументОбъект.ДокументОснование.Ответственный;
           Иначе

Если он там нужен, то надо бы добавить проверку существования реквизита ДокументОснование

А по хорошему, должна быть немного выше процедура ЗаполнитьШапкуДокументаПоОснованию (...) вот там и меняйте ответственного
17 hhhh
 
04.04.12
14:55
(15) нет, неправильно. Читай текст ошибки и (8)
18 DAVI
 
05.04.12
08:05
ура мне помогли,добавили строку

Если ОбщегоНазначения.ЕстьРеквизитДокумента("Ответственный", МетаданныеДокумента) Тогда
       Если ОбщегоНазначения.ЕстьРеквизитДокумента("ДокументОснование", МетаданныеДокумента) Тогда
           Если ЗначениеЗаполнено(ДокументОбъект.ДокументОснование) Тогда
           ДокументОбъект.Ответственный = ДокументОбъект.ДокументОснование.Ответственный;
       КонецЕсли;
19 DAVI
 
05.04.12
08:05
всем спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший