Имя: Пароль:
1C
1С v8
Проверка на доступность реквизита в запросе
,
0 MrAvPika
 
17.07.17
16:02
Можно ли как то организовать проверку в запросе, существует ли такой реквизит или нет, если существует то наложить отбор?
1 MrAvPika
 
17.07.17
16:03
Просто запрос идет в другую базу, через COM
2 Вафель
 
17.07.17
16:04
до запроса проверяй
3 1dvd
 
17.07.17
16:07
дык, на доступность или на существование?
4 НЕА123
 
17.07.17
16:07
СхемаЗапроса. может поможет.
5 MrAvPika
 
17.07.17
16:25
(3)  на существование
6 1dvd
 
17.07.17
16:26
(5) никак не проверить. см (2)
7 MrAvPika
 
17.07.17
16:26
(6) печаль
8 Evgueni
 
17.07.17
16:29
(1)А зачем в чужую базу со своими запросами лезть?
9 Лефмихалыч
 
17.07.17
16:36
(8) бывают самураи, у которых такое бусидо. У них еще меч обычно из резины и весьма напоминает МПХ
10 PiterPrg
 
17.07.17
16:39
(1) Ну и что? Метаданные. Доступны во внешнем соединении.
Проверяйте.
Если совсем невмоготу, и хочется через .....
То либо

ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 МойРеквизит ИЗ Справочник.МойСправочник

Выполнять в попытке - исключение если исключение возникло - нет реквизита

Либо

ВЫБРАТЬ ПЕРВЫЕ 1 *  ИЗ Сравочник.МойСправочник

И искать свой реквизит среди полей

Но это изврат
11 MrAvPika
 
17.07.17
16:46
(10) Да по факту все методы о которых я думал - изврат, либо запрос в попытке, либо предварительная проверка и динамическое формирование запроса. фишка в том что если реквизит существует, мне нужен по нему отбор, если нет, то ок, берем все то же без отбора, и чтоб не выполнять запрос  n-количество раз
12 MrAvPika
 
17.07.17
16:46
баз много, обновляются не всегда одновременно, а достукиваюсь до них с одной базы
13 youalex
 
17.07.17
16:49
(11) По факту - то что вы пытаетесь сделать, да еще и через ком - изврат.  Изначально в чем задача состоит?
14 MrAvPika
 
17.07.17
16:58
(13) Сейчас все переводим на веб сервис, так что все норм. просто есть то что должно работать
Базы активно изменяются, добавляются/исчезают реквизиты
15 MrAvPika
 
17.07.17
16:59
и когда реквизита нет, обмен перестает работать с одной конкретной базой, но работает со второй
16 Лефмихалыч
 
17.07.17
17:01
Я ж сказал
17 MrAvPika
 
17.07.17
17:03
(16) я по принуждению эти "мечом" пользуюсь, честно )
18 Cyberhawk
 
21.07.17
18:50
Маркер = "|@_@|";
ИмяРеквизитаКоторыйНадоПроверить = "МойРеквизитОлоло";
Зонд = Новый Структура(ИмяРеквизитаКоторыйНадоПроверить, Маркер);
ЗаполнитьЗначенияСвойств(Зонд, ОбъектУКоторогоНадоПроверитьРеквизит, ИмяРеквизитаКоторыйНадоПроверить);
РеквизитЕсть = Ложь;
Если Зонд[ИмяРеквизитаКоторыйНадоПроверить] <> Маркер Тогда
РеквизитЕсть = Истина;
КонецЕсли;
19 PR
 
21.07.17
18:53
Мда, и еще 1С пеняют, что она ООП делать не хочет.
Дай вот такому ТС ООП, тушите свет, базу можно хоронить сразу, не отпевая.
20 МихаилМ
 
21.07.17
18:54
не пишите, что Вы программист (хоть и 1с),
тк не владеете базовыми концепциями.
21 Лефмихалыч
 
21.07.17
21:42
(20) просто автору двадцать лет и он бородат одинэсник.
Со временем придет. Себя в 20 лет вспомните.
22 МихаилМ
 
21.07.17
22:36
(21)
я тоже думал что я программист в 22 года.

и когда на собеседовании мне сказали, что код полное г*вно
и бред, я с гордостью ответил, что прога работает.

сейчас-то понятно, что бред был полный.