Имя: Пароль:
1C
1C 7.7
v7: Помогите разобраться с кодом
0 KENT2007
 
12.09.12
08:32
ТЗ_Покупатели = СоздатьОбъект("ТаблицаЗначений");
       ТЗ.Выгрузить(ТЗ_Покупатели);
       ТЗ_Покупатели.Свернуть("Покупатель,датадок, типдок","Расход");
       ТЗ_Покупатели.Сортировать("Покупатель,датадок");
       ТЗ_Покупатели.ВыбратьСтроки();
       //    ТЗВ_Покупатели = СоздатьОбъект("ТаблицаЗначений");
       //ТЗВ.Выгрузить(ТЗВ_Покупатели);
       //ТЗВ_Покупатели.Свернуть("Покупатель,датадок","Расход");
       //ТЗВ_Покупатели.Сортировать("Покупатель,датадок");
       
       
       
       
       Пока ТЗ_Покупатели.ПолучитьСтроку()=1 Цикл
           Адрес      = "";  
           СерияЛиц   = "";
           НомЛиц     = "";
           ДатаОт     = "";
           ДатаДо     = "";
           КемВыдана  = "";
           
           ВыбКлиент = ТЗ_Покупатели.Покупатель;
           //Если СтрДлина(СокрЛП(ВыбКлиент.ЮрФизЛицо.ИНН)) <> 10 Тогда
           //    Сообщить(""+ВыбКлиент.ИНН+" - Неверный ИНН "+ВыбКлиент);
           //    Продолжить;
           //КонецЕсли;            
           
           ПолнНаимен = ВыбКлиент.юрфизлицо.ПолнНаименование;//"ОАО Пупкин";
1 KENT2007
 
12.09.12
08:32
Поле агрегатного объекта не обнаружено (ПолнНаименование)
2 KENT2007
 
12.09.12
08:33
ТЗ_Покупатели.Свернуть("Покупатель,датадок, типдок","Расход");
вот тут видит Покупателя потом 0
3 Гефест
 
12.09.12
08:33
Сам дерись со своим кодом
4 KENT2007
 
12.09.12
08:37
да как то 7ка не с руки,а очень нужно запустить
5 KENT2007
 
12.09.12
08:37
могу выложить впринцепи тема актуальна
6 KENT2007
 
12.09.12
08:39
7 VladZ
 
12.09.12
08:40
Проверить, что возвращает ВыбКлиент.юрфизлицо.
8 Fedot200
 
12.09.12
08:40
(0) После этой строки ТЗ_Покупатели.Сортировать("Покупатель,датадок");
Сделай ТЗ_Покупатели.ВыбратьСтрокУ();
и посмотри что в твоей таблице твориться.
9 rphosts
 
12.09.12
08:41
ну поставь после             ВыбКлиент = ТЗ_Покупатели.Покупатель;
контролльный вывод:
Сообщить(ВыбКлиент);
Сообщить(ВыбКлиент.юрфизлицо);
Сообщить(ВыбКлиент.юрфизлицо.ПолнНаименование);

посмотри на какой строке спотыкнётся, дальше разбирай почем успотыкается (возможно как нет такого реквизита так и попытка использовать разъименование для незаполеннного реквизита)
10 RBD
 
12.09.12
08:42
может быть ВыбКлиент - это физлицо и у него нет ПолнНаименование
11 RBD
 
12.09.12
08:44
+(10) точнее ВыбКлиент.юрфизлицо
12 KENT2007
 
12.09.12
08:45
(10) а у физлица есть Наименование
13 RBD
 
12.09.12
08:46
я думаю проверку на вид справочника надо делать
14 KENT2007
 
12.09.12
08:48
на физлицо или юр?
15 Хуан
 
12.09.12
08:49
(2) Если в список колонок добавить не существующую колонку - 1с не ругается
(8) +1
16 titan_aleks
 
12.09.12
08:50
ВыбКлиент.юрфизлицо - пустая?
17 KENT2007
 
12.09.12
08:56
пустая
18 titan_aleks
 
12.09.12
09:00
(17) Если пустая - значит не надо выводить эту строчку. Это значит что выбклиент - группа, или косяк в оформлении Выбклиента. Если таблица формируется из запроса сделай без групп.
19 Gantosha
 
12.09.12
09:03
над такими тяжелыми ситуациями принято шутить ?
20 titan_aleks
 
12.09.12
09:05
(19) извините. запорол тему.
21 KENT2007
 
12.09.12
09:11
группы мне нужно я как раз пиво отбираю из одной группы
22 Fedot200
 
12.09.12
09:46
Значит поможет только ВыборГруппы() :-)
23 Boroda
 
12.09.12
10:08
Сделай на выводе строки:
Попытка
  ПолнНаимен = ВыбКлиент.юрфизлицо.ПолнНаименование;//
Исключение
  Сообщить("Строка:"+тз.Номерстроки+" "++ВыбКлиент.ЭтоГруппа()+" "+Выбклиеннт.Наименование+"  "+ВыбКлиент.Код);
КонецПопытки;
Ну и анализируй дальше, есть у него этот реквизит или нет.
 А еще можешь в блоке исключения ничего не писать, и выведутся у тебя только элементы с реквизитом "ПолнНаименование". :)
Закон Брукера: Даже маленькая практика стоит большой теории.