Версия для печати темы (https://pro1c.org.ua/index.php?s=e45b896e15642bc6847b65f924855a86&showtopic=66855)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ как проверить на отутствие реквизита

Автор: lolmatrix 24.12.21, 9:28

Здравствуйте 1с 8.3 управляемые формы, хочу проверить есть ли в документе такой реквизит как ОбъектДокумента.ПериодРегистрации, чтобы обойти ситуацию когда его нет. Неопределено не помогает. вылетает ошибка
Поле объекта не обнаружено (ПериодРегистрации)
подскажите пожалуйста как проверить на существование этого реквизита документа я в цикле прохожусь по метаданным, заранее спасибо

спасибо разобрался использовал функцию БСП

ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ОбъектДокумента, "ПериодРегистрации")

Автор: One 25.04.22, 19:34

lolmatrix @ 24.12.21, 10:28 * ,
Саму процедуру ЕстьРеквизитИлиСвойствоОбъекта выложите

Автор: Wersia44 04.05.22, 14:19

One @ 25.04.22, 20:34 * ,

// Проверяет наличие реквизита или свойства у произвольного объекта без обращения к метаданным.
//
// Параметры:
//  Объект       - Произвольный - объект, у которого нужно проверить наличие реквизита или свойства;
//  ИмяРеквизита - Строка       - имя реквизита или свойства.
//
// Возвращаемое значение:
//  Булево - Истина, если есть.
//
Функция ЕстьРеквизитИлиСвойствоОбъекта(Объект, ИмяРеквизита) Экспорт
    
    КлючУникальности   = Новый УникальныйИдентификатор;
    СтруктураРеквизита = Новый Структура(ИмяРеквизита, КлючУникальности);
    ЗаполнитьЗначенияСвойств(СтруктураРеквизита, Объект);
    
    Возврат СтруктураРеквизита[ИмяРеквизита] <> КлючУникальности;
    
КонецФункции

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua