Имя: Пароль:
1C
1C 7.7
v7: Как обойти ошибку "поле агрегатного объекта не обнаружено"
,
0 web_profiler
 
16.10.12
12:07
Помогите услановить условие если поле агрегатного объекта не обнаружено Тогда ...
1 Надсмотрщик
 
16.10.12
12:08
Попытка
....
2 Godofsin
 
16.10.12
12:08
Прикольно...
3 web_profiler
 
16.10.12
12:08
пробую
4 Cthulhu
 
16.10.12
12:08
не надо попыток. проверяй агрегатный объект на Выбран()<>0 перед обращением к его реквизитам.
5 web_profiler
 
16.10.12
12:12
На пример так?
Если Выбран(Ит1.Субконто(1).ПолныйКод())=1 Тогда
...
Иначе
...
КонецЕсли;

Так что ли?
6 Kreont
 
16.10.12
12:13
(5) нет
Если Ит1.Субконто(1) - будет пусто, тогда .ПолныйКод() будет такую ошибку и давать
7 PuhUfa
 
16.10.12
12:14
Может сначало покажешь код в котором ошибка и полный текст ошибки?
8 mishaPH
 
16.10.12
12:14
попытка
 бла бла бла твой код
Исключение
 Вот тут пиши обработку если выше ошибка
конецПопытки
9 zak555
 
16.10.12
12:15
ТИпЗначенияСтр()
10 web_profiler
 
16.10.12
12:15
_субДт1=""+Ит1.Субконто(1).Вид()+"/"+Ит1.Субконто(1).ПолныйКод();
{D:\БАЗЫ\УТОС\ACS\КОНВЕРТОРЫ В НСБУ\ИЗ77\OUT77.ERT(1104)}: Поле агрегатного объекта не обнаружено (ПолныйКод)
11 web_profiler
 
16.10.12
12:18
(6) У меня тут такая штука, что даже при не пустом Ит1.Субконто(1) - ПолныйКод пустой.
12 Kreont
 
16.10.12
12:19
(11) а что там? может документ, перечисление? тогда да, так и будет
13 apl1978
 
16.10.12
12:19
(6) прав.
попробуй ПустоеЗначение()
14 BlackSeaCat
 
16.10.12
12:21
(11) тут нужно делать 2 проверки:

1. На пустое значение субконто.
2. Через метаданные - на наличие у него реквизита ПолныйКод
15 web_profiler
 
16.10.12
12:21
(6), (13) Проверял на пустое значение.Конфа х.. знает какого года.
При Ит1.Субконто(1) не пустом - ПолныйКод бывает пустой.
16 Kreont
 
16.10.12
12:22
(14) +100, или сделать проверку на тип = Справочник
17 PuhUfa
 
16.10.12
12:23
ПолныйКод()
Синтаксис:
ПолныйКод()
Назначение:
Возвращает строку, содержащую полный код выбранного элемента _справочника_ со всеми вышестоящими уровнями, разделенными символом /.
18 Kreont
 
16.10.12
12:24
(15) верю, демаю что если в справочника длина кода = 0, и иерархия отсутсвует :)
ПолныйКод будет всегда пустой для такого справочника
19 web_profiler
 
16.10.12
12:25
Получилось проверить!!!
Если ТипЗначенияСтр(Ит1.Субконто(1).ПолныйКод()<>"" Тогда
...
Иначе
...
20 Cthulhu
 
16.10.12
12:26
(5): тебе СП продать? или ты просто в него не заглянул чтобы выяснить синтаксис метода "Выбрать" и решил, что этот форум - замена синтакс-помощнику и описанию встроенного языка?..
Да что вы все попытку лохматите?! Попытка/Исключение - тормозная жуть, и уместна разве что для аварийно-устойчивости неотлаженных блоков кода.
21 Kreont
 
16.10.12
12:27
(19) дас, тебе про одно, а решил все равно обходить :)))
22 Cthulhu
 
16.10.12
12:27
(19): бред.
Если ТипЗначенияСтр(Ит1.Субконто(1))="Справочник" Тогда Если Ит1.Субконто(1).Выбран()<>0 Тогда ...
23 PuhUfa
 
16.10.12
12:28
(19) печалька -)
24 web_profiler
 
16.10.12
12:28
(22) Зачем 2 проверки? Одна тоже работает
25 web_profiler
 
16.10.12
12:29
Че вы меня гнобите? Объесните чем не подходит код (19)
26 Cthulhu
 
16.10.12
12:30
(24): две тоже работают. для любого(!) субконто.
27 web_profiler
 
16.10.12
12:30
Да, не подходит - опять ошибка агрегат...
28 Cthulhu
 
16.10.12
12:30
(25): тем, что он нерабочий и тупой.
29 Kreont
 
16.10.12
12:30
(25) например: если субконто будет типа документ, будет та же ошибка что и в (0)
30 web_profiler
 
16.10.12
12:31
(28) Спс, я уже понял что не работает
31 PuhUfa
 
16.10.12
12:31
(22) должно работать в одно условие:
Если (ТипЗначенияСтр(Ит1.Субконто(1))="Справочник") И (Ит1.Субконто(1).Выбран()<>0) Тогда
32 web_profiler
 
16.10.12
12:31
Пробую (22)
33 Cthulhu
 
16.10.12
12:31
(27): а-хре-неть.
слушай, не надо может лезть в семерку, а?..
переходи на восьмерку - там это все реализовано. да и компания коллег, кхм, более подходящая!..
34 Kreont
 
16.10.12
12:32
Используй хоть так для проверки:
ТипЗначения(Ит1.Субконто(1)) = 11 тогда можно использовать метод ПолныйКод()
35 Cthulhu
 
16.10.12
12:32
(31): не всегда.
36 Cthulhu
 
16.10.12
12:33
(34): так даже быстрее, да.
37 Cthulhu
 
16.10.12
12:34
(34): о, не. на "висячей ссылке" и на пустом - слетит
38 web_profiler
 
16.10.12
12:34
Че делать? Мож повесится :)
39 Cthulhu
 
16.10.12
12:35
(38): делай (33).
(на тебе ещё, а то ты потерял - "ь")
40 web_profiler
 
16.10.12
12:40
Всем спс. Обошел эту тему тупо, топорно, но зато сработало

Попытка
...
Исключение
...
41 Kreont
 
16.10.12
12:43
(40) О_О
а что в (22) не понравилось, длинный код? :)))
42 Kreont
 
16.10.12
12:47
(40) С "Попыткой" вообще любой код срабатывает :)
43 Cthulhu
 
16.10.12
12:55
(40): фубл..
44 Andreyyy
 
16.10.12
15:30
(0) Вобщем для одной задачи лучше варианта сходу не нашел:
Если СокрЛП(ЗначениеВСтроку(Ит1.Субконто(1))) = "{}" Тогда
                   Прервать;
               КонецЕсли;
45 Cthulhu
 
16.10.12
18:51
(44): субконто типа справочник с пустым наименованием - и алё.
46 Cthulhu
 
16.10.12
18:53
(45)+: в смысле элемент с пустым наименованием
47 Andreyyy
 
16.10.12
19:08
(46) Если только так попасть, ну мне повезло значит.
48 Cthulhu
 
16.10.12
19:28
(47): а тебе-то чем (22) не глянулось?
49 Andreyyy
 
16.10.12
19:45
(48) Да я вовсе не против и (22)