Имя: Пароль:
1C
1С v8
Как проверить поле на существование ?
, ,
0 Dzhos
 
15.07.14
08:24
Допустим я получил объект из ТЗ

ДокОбъект = СтрокаТЗ.Ссылка.ПолучитьОбъект();

теперь хочу узнать если там поле Склад?
если есть то назначить новое и записать?

ДокОбъект.Склад = Склад;
ДокОбъект.Записать();
1 Бешеная Нога
 
15.07.14
08:24
получи метаданные и посмотри реквизиты
2 Бешеная Нога
 
15.07.14
08:25
а проще всего - ЗаполнитьЗначенияСвойств(). запишет если поле есть
3 Dzhos
 
15.07.14
08:25
Просто у меня там куча документов
в некоторых есть в некоторых нету склада(1)
4 Wobland
 
15.07.14
08:28
а зачем в этой куче документы без склада?
5 Fish
 
15.07.14
08:28
(3) Через метаданные
6 Dzhos
 
15.07.14
08:28
Просто во всех есть Автор и Организация
а склад проблему создает (4)
7 Patrio_
O_Muerte
 
15.07.14
08:29
В общем модуле есть функция соответствующая, не помню как называется
8 Wobland
 
15.07.14
08:29
(6) на вопрос ответил, спасибо
9 Fish
 
15.07.14
08:37
(6) Какую именно проблему?
10 Dzhos
 
15.07.14
08:41
Поле Объекта не обнаружена(Склад)(9)
11 Рэйв
 
15.07.14
08:43
Если Докссылка.Метаданные().Реквизиты.Найти("Склад")=Неопределено Тогда
     Сообщить("Тут рыбы нет!");
КонецЕсли;
12 Dzhos
 
15.07.14
08:48
Спасибо, то что нужно(11)
13 Адинэснег
 
15.07.14
08:50
как не выпускной - так шквал этих веток
14 Wobland
 
15.07.14
08:51
(13) месяце в ноябре засилье бывало
15 Jokero
 
15.07.14
09:45
А с помощью попытка... исключение проверять наличие метаданных - это плохо?
16 Jokerman
 
15.07.14
09:55
(15) лишний раз - да
17 Полотенчик
 
15.07.14
10:00
(15) зачем принудительно создавать ошибку и пропускать ее, если можно сделать нормально без возникновения ошибок?
18 Jokero
 
15.07.14
12:06
(17) ну не всегда же знаешь, что за метаданные приходят.
19 Wobland
 
15.07.14
12:07
(18) это как? чорные-чорные метаданные?
20 Jokero
 
15.07.14
14:09
(19)Почти. Ну так на вскидку - процедура которая дублирует функцию галочки Форма.ТолькоЧтение = истина;
Если стоит эта галка, то никакие события элементов формы не обрабатывают. Это не удобно, иногда нужно, что бы например ссылка осталась доступной.

Делается процедура, которая перебирает все элементы формы, и назначает тем элементам, у которых есть свойство ТолькоЧтение истина. У панели или надписи или переключателе такого свойства например нет, и их нужно просто пропустить.
Удобно в этом случае использовать
попытка... исключение.