Имя: Пароль:
1C
 
Значение не представляет агрегатный объект(Выбран)
0 pers200590
 
20.06.11
01:54
Проблема в следующем пишет ошибку
Если ДокОснование.Выбран()=0 Тогда
{Документ.ДоставкаТовара.Форма.Модуль(58)}: Значение не представляет агрегатный объект (Выбран)
Все процедуры и функции взяты из других документов в ТиС
Немного подкорректировал
Подскажите в чем проблема, проанализмруйте код
Функция ЗаполнениеПоДокументуОснованию()
Перем ДокОснование;    
   Если ДокОснование.Выбран()=0 Тогда
       Возврат "Не выбран документ - основание";
   КонецЕсли;  
   
   Сумма  = 0;
   ВидОсн = ДокОснование.Вид();
   
   Если (ВидОсн <> "ВозвратОтПокупателя") и
        (ВидОсн <> "ЗаказПоставщику") и
        (ВидОсн <> "ОтчетКомитенту") и
        (ВидОсн <> "ПоступлениеДопРасходы") и
        (ВидОсн <> "ПоступлениеТМЦ") и
        (ВидОсн <> "ПоступлениеТМЦРозница") и
        (ВидОсн <> "ПоступлениеТМЦИмпорт") и
        (ВидОсн <> "ПоступлениеПрочее") и
        (ВидОсн <> "ПКО") Тогда
       Возврат "Неверный вид документа - основания!";
   КонецЕсли;

       Если (ВидОсн = "ПКО") Тогда
           Сумма               = ДокОснование.Сумма;
             Склад = ДокОснование.Склад;
       Пользователь = ДокОснование.Проект.Наименование;
      КонецЕсли;
   Возврат "";
               
КонецФункции // ЗаполнениеПоДокументуОснованию()

Процедура ВводНаОсновании(ДокОснование)
       
   
   Список    = глПолучитьСписокВводимыхНаОсновании(ДокОснование);
   Поз        = Список.НайтиЗначение(Вид());
   
   // выполним проверку, можно ли вводить документ на основании ДокументОснование
   Если Поз = 0 Тогда
       // ДокументОснование не найден в списке разрешенных
       Предупреждение("Документ """
                       """ нельзя вводить на основании """, 60);
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
   
   глЗаполнитьШапкуНаОсн(Контекст,ДокОснование);
   
   Если ПустоеЗначение(склад) = 1 Тогда
       Касса = глЗначениеПоУмолчанию("ОсновнойСклад");
   КонецЕсли;
   
   Основание = глПредставлениеДокумента(ДокОснование);
   
   Результат = ЗаполнениеПоДокументуОснованию();
   Если ПустоеЗначение(Результат) = 0 Тогда
       Предупреждение(Результат, 60);
       СтатусВозврата(0);
   КонецЕсли;
       
КонецПроцедуры // ВводНаОсновании()

 
Процедура ПоКнопкеОснование()
   Перем ДокОснование;
   
     
   // если документ основание уже есть, откроем его
   Если ПустоеЗначение(ДокОснование) = 0 Тогда
       ОткрытьФорму(ДокОснование);
       Возврат;
   КонецЕсли;
   
   // если документа - основания нет, позволяем выбрать его

   Основание = глВыбратьОснование(Контекст);
   Если ПустоеЗначение(Основание) = 0 Тогда
       // Выбрали основание

       глЗаполнитьШапкуНаОсн(Контекст,Основание);
       
       ТекстВопроса = "Заполнить по документу основанию?";
       Если КоличествоСтрок() <> 0 Тогда
           ТекстВопроса = ТекстВопроса + РазделительСтрок +" (перед заполнением табличная часть будет очищена)";
       КонецЕсли;
           
       Если Вопрос(ТекстВопроса, "Да+Нет", 60) <> "Да" Тогда
           Возврат;
       КонецЕсли;
           
       Результат = ЗаполнениеПоДокументуОснованию();
       Если ПустоеЗначение(Результат) = 0 Тогда
           Предупреждение(Результат, 60);
       КонецЕсли;
       
   КонецЕсли;
   
КонецПроцедуры //ПоКнопкеОснование()
1 Любопытная
 
20.06.11
02:01
Нету у тебя ничего в ДокОснование, что там может быть выбрано?
2 pers200590
 
20.06.11
02:02
(1)как нету в чем ошибка подскажи
3 sanja26
 
20.06.11
02:03
ДокОснование - реквизит?
4 Любопытная
 
20.06.11
02:04
Функция ЗаполнениеПоДокументуОснованию()
Перем ДокОснование;    
   Если ДокОснование.Выбран()=0 Тогда
       Возврат "Не выбран документ - основание";
   КонецЕсли;

В этом месте ты что-нибудь в переменную ДокОснование передал? Нет там ничего. Процедура эта должна вызываться с контекстом, я полагаю.
5 pers200590
 
20.06.11
02:06
(4) я это все взял из типовой
6 pers200590
 
20.06.11
02:06
(4) вот в чем и прикол
7 Любопытная
 
20.06.11
02:07
(6) на работе посмотрю, но ты что-то упустил, это точно.
8 pers200590
 
20.06.11
02:07
(7) хорошо жду
9 mdocs
 
20.06.11
02:09
перем выше процедур перенеси.
10 sanja26
 
20.06.11
02:10
Если ПустоеЗначение(ДокОснование) = 0
11 pers200590
 
20.06.11
02:10
Странно почему все из типовой
12 pers200590
 
20.06.11
02:10
(10) и что
13 sanja26
 
20.06.11
02:11
вместо твоего ДокОснование.Выбран()=0
14 pers200590
 
20.06.11
02:16
913) так оно не должно быть пустым правильно
15 pers200590
 
20.06.11
02:18
(13) так оно не должно быть пустым правильно
какие еще варианты есть я в этом начинающий.Вот пытаюсь разобраться.Но не судьба пока. И главное все из типовых документов взято и немного переделано
16 mdocs
 
20.06.11
02:20
Учись читать, тебе ж сказал в (9). Переменная модуля а не процедуры.
17 pers200590
 
20.06.11
03:01
(16) перенес а ничего не изменилось
18 skunk
 
20.06.11
03:31
Функция ЗаполнениеПоДокументуОснованию()
   //Перем ДокОснование;    
   Если ДокОснование.Выбран()=0 Тогда
       Возврат "Не выбран документ - основание";
   КонецЕсли;
19 skunk
 
20.06.11
03:32
если конечно ДокОснование - реквизит документа
20 pers200590
 
20.06.11
11:16
а вот и я обьясните мне пожалуйста
21 zak555
 
20.06.11
11:24
(19) хоть реквизит формы
22 Вьюн
 
20.06.11
11:37
Функция ЗаполнениеПоДокументуОснованию(ДокОснование)
   //Перем ДокОснование;

а при вызове заменить
   Результат = ЗаполнениеПоДокументуОснованию();
на
   Результат = ЗаполнениеПоДокументуОснованию(ДокОснование);
23 pers200590
 
20.06.11
11:38
(21) в типовых документах ДокОснование чем является
24 zak555
 
20.06.11
11:39
(22) ты откуда ?
25 zak555
 
20.06.11
11:39
(23) реквизитов дока
но я на форму могу вывести ДокОснованиеУ

но если напишу
Перем ДокОснованиеУ;
будет лажа
26 pers200590
 
20.06.11
11:42
(25) в смысл .
27 zak555
 
20.06.11
11:52
в прямом
28 zak555
 
20.06.11
12:16
Перем ДокОснование

закроет хоть реквизит объекта, хоть формы