Имя: Пароль:
1C
1C 7.7
v7: Проверить существование объекта
,
0 yegorka
 
16.11.11
22:11
Добрый вечер!

Как проверить существование объекта созданного функцией СоздатьОбъект???
Т.е. если он существует его не создавать, а создавать только если он ранее не был создан.

ПустоеЗначение () всегда возвращает 1,
Пробовать обращаться к полям объекта в
Попытка
Исключение
КонецПопытки

криво.
Как проверить??
1 ДенисЧ
 
16.11.11
22:12
ничонепонял
2 andrewks
 
16.11.11
22:13
спинной мозг шепчет: Выбран()
3 KRV
 
16.11.11
22:14
а давай его создадим с самого начала и не надо будет нинуя проверять.. э? :))
4 G-Re
 
16.11.11
22:15
(0) ТипЗначения(Объект) не?
5 Ёпрст
 
16.11.11
22:16
я вот тоже вчера дунул и остановил крутейший автобус!
6 yegorka
 
16.11.11
22:21
(1) Пример: ТЗ = СоздатьОбъект ("ТаблицаЗначений");
Перед созданием проверить, существует ли ТЗ??? Если существует, то не создавать, не существует создать.
7 ДенисЧ
 
16.11.11
22:21
(6) Бармен!! Мне того же, только три порции!
8 andrewks
 
16.11.11
22:22
(7) боюсь тебя огорчить, но мне кажется, что у этого бармена то самое виски
9 Aleksey
 
16.11.11
22:22
(6) Если ТипЗначенияСтр(ТЗ) не?
10 Aleksey
 
16.11.11
22:23
а ну еще в попытку обернуть надо, потому что переменная ТЗ может быть не определена
11 ДенисЧ
 
16.11.11
22:24
(8) Я виски не пью, так что мне поф :-)
12 andrewks
 
16.11.11
22:24
если автор хочет сэкономить драгоценные миллисекунды, то делается это совсем не так, а если дело не в этом, тогда непонятно, что автор хочет
13 yegorka
 
16.11.11
22:24
(9) Наверно пойдет. Спасибо.
14 yegorka
 
16.11.11
22:26
(12) надо ;-)
15 babayzver
 
16.11.11
22:29
Ежели ЕстьЧо(ТЗ)=1 ВотТолькоТогда
    Бла-бла-бла...
КонецЕслиЧо;
16 yegorka
 
16.11.11
22:34
(15) этому точно не наливать..........
17 Lexxxxx
 
16.11.11
22:37
(0)Однако гиморно это. Сначала переменную нужно проверить на ПустоеЗначение(МояПеременная). И если оно рано 0 тогда следует проверить тип значения, содержащегося в переменной, а потом может быть и вид. Не проще ли СоздатьОбъект()?!
18 babayzver
 
16.11.11
22:37
(0) создай переменную ТЗ, а затем просто проверяй тип этой самой переменной
19 aka AMIGO
 
16.11.11
22:38
Перем ТЗ;

Процедура Сформировать()

Если ТипЗначенияСтр(ТЗ)<>"ТаблицаЗначений" Тогда
ТЗ = создать объект...
20 aka AMIGO
 
16.11.11
22:41
Возможно, ошибочный вариант..

Если ПустоеЗначение(ТипЗначенияСтр(ТЗ))=1 Тогда
ТЗ = создать объект...
21 andrewks
 
16.11.11
22:44
Попытка
ТЗ.УдалитьСтроки();
Исключение
ТЗ=СоздатьОбъект ("ТаблицаЗначений");
ТЗ.НоваяКолонка("Кол1");
ТЗ.НоваяКолонка("Кол2");
КонецПопытки;
22 aka AMIGO
 
16.11.11
22:57
(21) думаешь, не ругнется?
23 Torquader
 
17.11.11
00:24
Так, полный бред.
Если я, например, создам одну таблицу значений, а мне нужна другая, то есть с другими колонками, мне что, прежде чем создавать, нужно проверить, что у неё все колонки правильные ?
Если переменная создаётся внутри цикла и хочется создавать её только один раз (бывает такое), а перед циклом создавать лень (может, в цикле она и не будет создана), то всё просто: присваиваем переменной ноль, и перед созданием проверяем, а не ноль ли у нас в переменной - если не ноль, то мы уже что-то создали.
Удачи.