1с проверить есть ли реквизит в справочнике

Содержание:

1.      Когда возникает необходимость проверить наличие реквизита 1С?

2.      Как можно получить метаданные объекта 1С?  

1.    Когда возникает необходимость проверить наличие реквизита 1С

Потребность проверки наличия реквизита обычно возникает при написании общих, универсальных процедур или функций, к примеру, когда необходимо выполнить ряд однообразных действий, проверить заполнение перед проведением, при этом реквизитный состав обрабатываемых объектов метаданных отличается незначительно (например, в документе, отражающем продажу товара, есть реквизит Склад, а в документе, отражающем перемещение товара – реквизиты Склад-отправитель и Склад-получатель).

В ряде типовых конфигураций 1С предлагается стандартная функция проверки наличия реквизита в объекте (расположена в модуле “ОбщегоНазначения”)

Функция ЕстьРеквизитОбъекта(ИмяРеквизита, МетаданныеОбъекта) Экспорт

            Возврат НЕ (МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено);

КонецФункции   

2. Как можно получить метаданные объекта 1С

Однако написать свою функцию также не представляет труда. В первую очередь необходимо получить метаданные объекта 1С одним из способов:

через функцию Метаданные() объекта

пример синтаксиса: СправочникСсылка.Метаданные()

                                    ДокументСсылка.Метаданные()

через свойство глобального контекста Метаданные

пример синтаксиса: Метаданные.Справочники.[ИмяСправочника]

                                    Метаданные.Документы.[ИмяДокумента]

Далее через свойство “Реквизиты” использовать функцию Найти(). В случае, если реквизит не найден, возвращается значение Неопределено.

Пример 1

Метаданные = Контрагент.Метаданные();

Если Метаданные.Реквизиты.Найти(«Ответственный») = Неопределено Тогда

            Возврат Ложь;

Иначе

            Возврат Истина;

КонецЕсли;

Пример 2

Функция ПолучитьОрганизацию(Контрагент, Пользователь)

            Если Метаданные.Справочники.Контрагенты.Реквизиты.Найти(«Организация») <> Неопределено Тогда

                        Возврат Контрагент.Организация;

            Иначе

                        Возврат Пользователь.Организация;

            КонецЕсли;

КонецФункции

Описанный алгоритм подходит для случаев проверки наличия реквизита шапки. Но что делать, когда возникает необходимость определить, существует ли реквизит в табличной части 1С (справочника или документа)? Для этого используется следующая конструкция:

Метаданные.Справочники.<ИмяСправочника>.ТабличныеЧасти.Реквизиты.Найти(<ИмяОбъектаПоиска>).

При обработке таблиц значений также возможно выполнить проверку существования колонки – в этом случае применяется метод Свойство(), с помощью которого, помимо основной функции – получения значения элемента по указанному имени, можно проверить, имеется ли указанного свойство.

Пример синтаксиса:

Если НЕ ТекущаяСтрока.Свойство(«Исключить») ИЛИ НЕ ТекущаяСтрока.Исключить Тогда

            ЗаполнитьЗначенияСвойств(ТаблицаЗагрузки.Добавить(); ТекущаяСтрока);

КонецЕсли;

Специалист компании ООО «Кодерлайн»

Кондренко Анна Сергеевна

 0 

   

Распечатать

1С 8.3 : Функции ЕстьРеквизитДокумента и ЕстьРеквизитОбъекта

При разработке частенько нужно проверить наличие реквизита в документе или справочнике.

Ниже приведены функции позволяющие проверить наличие заданных реквизитов в объектах конфигурации:

Код 1C v 8.х

 // Позволяет определить есть ли среди реквизитов шапки Объекта реквизит с переданным именем.
Функция ЕстьРеквизитОбъекта(ИмяРеквизита, Объект) Экспорт

МетаданныеОбъекта = Объект.Метаданные();
Если МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли; 

КонецФункции 

Для документа:

Код 1C v 8.х

 // Позволяет определить есть ли среди реквизитов шапки документа
// реквизит с переданным именем.
//
// Параметры: 
//  ИмяРеквизита - строковое имя искомого реквизита, 
//  МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск.
//
// Возвращаемое значение:
//  Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт

Если МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли; 

КонецФункции

P.S. Посмотрите еще Полезные функции по работе с метаданными

Проверка существования реквизита

Я
   МаленькийВопросик

03.09.14 — 10:02

Народ, подскажите как проверить существование реквизита у документа. Не его заполнение, а именно существование

  

Партнерская программа EFSOL Oblako

   DCKiller

1 — 03.09.14 — 10:05

Если Документ.Метаданные().Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда

Сообщить(«Нету»);

КонецЕсли;

   дедушка Вах

2 — 03.09.14 — 10:09

(1) ага, а если метаданных нету

(0) через Попытка — наверняка

   13_Mult

3 — 03.09.14 — 10:12

(2) т.е. как нету ? ))

   дедушка Вах

4 — 03.09.14 — 10:16

(3) ну ты че с будуна внешней обработкой в нету конфу не тыкал? :)

в пустой тоже запускается

   hhhh

5 — 03.09.14 — 10:18

(4) всё равно есть метаданные у документа, хоть обработкой тыкай, хоть чем.

   Рэйв

6 — 03.09.14 — 10:18

(4)В не той конфе пошлет лесом через ошибку и это будет правильно и соразмерно:-)

   13_Mult

7 — 03.09.14 — 10:20

(4) ну если с фанатизмом, то версию еще конфы при открытии проверить да? ))

   Рэйв

8 — 03.09.14 — 10:21

(5)

Наверное он имеет в виду вариант если в обработке стоит:

Документ=Документы.КакойтоВид.ПустаясСылка();

в случае если нет такого вида:-)

   Ненавижу 1С

9 — 03.09.14 — 10:23

(2) Попытка — ЗЛО

   vde69

10 — 03.09.14 — 10:25

(1) у Задачи поищи реквизит «Адресат»….

или у справочника «Код»

в 8.1 было все просто, сейчас развели по разным коллекциям, по этому стало куда более проблемно…

   hhhh

11 — 03.09.14 — 10:28

можно через задницу

Структура = Новый Структура(ИмяРеквизита);

ЗаполнитьЗначенияСвойств(Структура, Документ);

Если Структура[ИмяРеквизита] = Неопределено Тогда

Сообщить(«Нету»);

КонецЕсли;

   Ненавижу 1С

12 — 03.09.14 — 10:30

(10) >>у справочника «Код»

а зачем его искать?

   дедушка Вах

13 — 03.09.14 — 10:32

(9) если проверять наличие каждого объекта метаданных в процессе обращения — супер мега универсальная обработка получится. года через два тестирования

   vde69

14 — 03.09.14 — 10:33

(12) а его может и не быть…. да у справочника может не быть кода :)

проверь на длине кода = 0

   Ненавижу 1С

15 — 03.09.14 — 10:34

(14) ну и проверяй длину кода отдельно

да несколько не однообразно, ну что делать

   vde69

16 — 03.09.14 — 10:34

(12) или например общие реквизиты у документов, угадай где они :)

   Ненавижу 1С

17 — 03.09.14 — 10:34

(13) ты просто не знаешь какое зло эта «попытка»

   1Сергей

18 — 03.09.14 — 10:34

(12) его может не быть

   vde69

19 — 03.09.14 — 10:36

(15) ты не понял, его физически в таблице нет, колонки нет! и запрос вылетет с ошибкой :)

   bolobol

20 — 03.09.14 — 10:52

(17) И какое ж зло это — попытка? Не поясните?

   МаленькийВопросик

21 — 03.09.14 — 10:57

Я кстати тоже подумал над попыткой. -почему мегазло???

   PLUT

22 — 03.09.14 — 10:59

   PLUT

23 — 03.09.14 — 11:01

вот еще про попытки исключение и остановка по ошибке в отладчике

http://forum.infostart.ru/forum26/topic56814/

   Ненавижу 1С

24 — 03.09.14 — 11:17

(20)(21) вы теряете ошибку, все проходит «хорошо», но результат может быть плачевен

   дедушка Вах

25 — 03.09.14 — 11:20

(22) (24) ну это смотря где пытаться проверять

в приначалеработысистемы или в приоткрытии, если внешняя обработка — ничего не будет

   дедушка Вах

26 — 03.09.14 — 11:25

+ флажок один раз зарядил — и работай себе не хочу

а про метаданные в 150-ти местах вставлять — это каждый тормоз может

   Godofsin

27 — 03.09.14 — 11:28

(24) Например?

   DCKiller

28 — 03.09.14 — 11:46

(10) Речь про документ вообще-то, а не про задачу и не про справочник

   DCKiller

29 — 03.09.14 — 11:48

(8) Вообще-то в таких случаях сначала делается проверка на существование вида документа, а уже потом его реквизитов.

   DCKiller

30 — 03.09.14 — 11:50

+(10) адресата у задачи и код у справочника надо искать через СтандартныеРеквизиты

   mzelensky

31 — 03.09.14 — 11:54

(30) У стандартных реквизитов НЕТ метода «НАЙТИ» — только перебором, либо через «заполнитьЗначенияСвойств», либо через попытку

   mzelensky

32 — 03.09.14 — 11:57

(0) Вот тебе универсальная процедура. Кинь в общий модуль и пользуйся:

Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт

    Если МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда

        //<—Maximus

        Для Каждого Реквизит Из МетаданныеДокумента.СтандартныеРеквизиты цикл

            Если Врег(Реквизит.Имя) = Врег(ИмяРеквизита) Тогда

                Возврат Истина;    

            КонецЕсли;

        КонецЦикла;

        //Maximus—>

        
        Возврат Ложь;

    Иначе

        Возврат Истина;

    КонецЕсли;

КонецФункции // ЕстьРеквизитДокумента()

   bolobol

33 — 03.09.14 — 11:57

(24) Конструкцией, позволяющей отработать ошибку, вы умудряетесь её потерять?? Вспоминается анекдот: а где шары металлические? — один сломал, второй про..терял.

   Адский плющ

34 — 03.09.14 — 11:59

Конечно, это сугубое ИМХО. Я считаю при хорошей архитектуре решения не должна вставать необходимость выяснения наличия реквизитов.

   Ненавижу 1С

35 — 03.09.14 — 12:03

(34) имело место быть на больших кусках, вложенных в Попытка

   bolobol

36 — 03.09.14 — 12:03

(22) (23) — осилил, но так и не понял, зачем к серьёзному вопросу ссылки на ламерские топики?

  

Адский плющ

37 — 03.09.14 — 12:10

(24) +1

Попытка хороша, когда в блоке «Исключение» вызывается исключение.

Ну кроме пользовательского уровня, когда в исключении просто выводится более вежливое сообщение.

3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

1

Проверить наличие реквизита через свойство

13.09.2018, 13:47. Показов 24780. Ответов 12


Добрый день, вообщем нужно проверить есть ли реквизит в справочнике, как это проверить? через метаданные не идёт, так как пишет поле объекта не обнаружено



0



_ЕГОР_

Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

13.09.2018, 13:59

2

1C
1
2
3
4
5
попытка
имя = МойСправочник["ИмяРеквизита"];//если реквизит есть, он заполнит переменную имя
исключение
//если попадет в исключение, то такого реквизита нет
конецпопытки



0



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.09.2018, 14:51

 [ТС]

3

_ЕГОР_, а как-нибудь без попытки можно?



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

13.09.2018, 14:58

4

Владислаучык, а чем попытка то не устраивает?



0



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.09.2018, 14:59

 [ТС]

5

_ЕГОР_, Да и с попыткой как-то не идёт



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

13.09.2018, 15:06

6

что не идет то? есть реквизит, но он падает в исключение?



0



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.09.2018, 15:12

 [ТС]

7

_ЕГОР_, я не в справочнике нахожусь, реквизит текущего справочника ссылается на справочник, вот в том справочнике и нужноо проверить наличие определенного реквизита.
Справочники.ПрофессииРабочих[«КодПоОКРБ»] — вот пишет поле объекта не обнаружено, хотя такой объект есть.

Можно же как-то через свойство проверить?



0



Тест

Эксперт 1С

383 / 162 / 56

Регистрация: 26.02.2010

Сообщений: 1,241

13.09.2018, 15:24

8

ну получите вы пустую ссылку этого справочника, и далее через попытку проверьте



0



3 / 3 / 7

Регистрация: 21.03.2013

Сообщений: 638

13.09.2018, 16:19

 [ТС]

9

Если Не (Справочники.ПрофессииРабочих.ПолучитьСсылку().Мет аданные().Реквизиты.Найти(«КодПоОКРБ») = Неопределено) — кароч вот как я сделал, если кому надо



0



polax

1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

13.09.2018, 18:53

10

Владислаучык, Тогда уж сократите

1C
1
Метаданные.Справочники.ПрофессииРабочих.Реквизиты.Найти("КодПоОКРБ")



1



Эксмет

14.09.2018, 07:37

Не по теме:

Цитата
Сообщение от _ЕГОР_
Посмотреть сообщение

Владислаучык, а чем попытка то не устраивает?

Вы фазу определяете, приложив провод к языку?



0



_ЕГОР_

14.09.2018, 07:57

Не по теме:

Цитата
Сообщение от Эксмет
Посмотреть сообщение

Вы фазу определяете, приложив провод к языку?

какое тонкое сравнение



0



Эксмет

14.09.2018, 08:04


    Проверить наличие реквизита через свойство

Не по теме:

Цитата
Сообщение от _ЕГОР_
Посмотреть сообщение

какое тонкое сравнение

Почему же тонкое? Такое же глупое действие как и проверять что-то через ошибку, вместо того, чтобы открыть С-П)



0



Перейти в раздел примеры кода 1С 8.3:

При наличии в конфигурации БСП, желательно использовать метод ЕстьРеквизитИлиСвойствоОбъекта (ссылка выше). Но что делать если конфигурация нетиповая? Вариантов (в зависимости от поставленной задачи) несколько: скопировать метод из БСП, проверить на свойство объекта, проверить через поиск, использовать попытку (не рекомендуется, только как временная заплатка).

Проверка реквизита через свойство объекта в 1С 8.3:

Функция ПроверкаНаСвойствоОбъекта(Объект, ИмяСвойстваОбъекта) Экспорт

   ЕстьСвойство = Ложь;
   СтруктураОбъекта = Новый Структура(ИмяСвойстваОбъекта, Неопределено);
   ЗаполнитьЗначенияСвойств(СтруктураОбъекта, Объект);

   Если СтруктураОбъекта[ИмяСвойстваОбъекта] = Неопределено Тогда
       СтруктураОбъекта[ИмяСвойстваОбъекта] = Ложь;
       ЗаполнитьЗначенияСвойств(СтруктураОбъекта, Объект);
       Если СтруктураОбъекта[ИмяСвойстваОбъекта] <> Ложь Тогда
           ЕстьСвойство = Истина;
       КонецЕсли;
   Иначе
       ЕстьСвойство = Истина;
   КонецЕсли;

   Возврат ЕстьСвойство;// Булево

КонецФункции

Проверка реквизита через Найти в 1С 8.3:

Функция ПроверитьНаРеквизит(ИмяРеквизита, МетаданныеДок) // универсальная функция

   // Например ИмяРеквизита=»ДрагМеталлы»;
   Если МетаданныеДок.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
       Возврат Ложь;
   Иначе
       Возврат Истина;
   КонецЕсли;

КонецФункции

Функция НайтиДрагМеталлы(Номенклатура, Материал, ОсновноеСредство) // пример использования в универсальной обработке

   // если реквизит шапки
   ИмяРеквизита=«ДрагМеталлы»;
   Если Метаданные.Справочники.Товары.Реквизиты.Найти(ИмяРеквизита) <> Неопределено Тогда
       Возврат Номенклатура.ДрагМеталлы;
   ИначеЕсли Метаданные.Справочники.Материалы.Реквизиты.Найти(ИмяРеквизита) <> Неопределено Тогда
       Возврат Материал.ДрагМеталлы;
   ИначеЕсли Метаданные.Справочники.ОсновныеСредства.Реквизиты.Найти(ИмяРеквизита) <> Неопределено Тогда
       Возврат ОсновноеСредство.ДрагМеталлы;
   Иначе
       Возврат Ложь;
   КонецЕсли;

   // если реквизит таб.части
   //Если НЕ ТекущаяСтрока.Свойство(ИмяРеквизита) ИЛИ НЕ ТекущаяСтрока.ДрагМеталлы Тогда
   //    ЗаполнитьЗначенияСвойств(ТаблицаДок.Добавить(), ТекущаяСтрока); // приёмник, источник
   //КонецЕсли;

КонецФункции

Проверка реквизита через Попытка (&НаКлиенте) в 1С 8.3:

&НаКлиенте
Функция ПроверитьНаНаличиеРеквизитаЧерезПопытку(ИмяРеквизита)

   Попытка
       РеквизитФормыПоИмени = ЭтаФорма[ИмяРеквизита];
       ЕстьРеквизитНаФорме = Истина;
   Исключение
       ЕстьРеквизитНаФорме = Ложь;
   КонецПопытки;

   Возврат ЕстьРеквизитНаФорме;

КонецФункции

В определенных задачах можно использовать метод в 1С 8.3:

ПолучитьРеквизиты(GetAttributes)

Синтаксис:

ПолучитьРеквизиты(<Путь>)

Параметры:

<Путь> (необязательный)

Тип: Строка.

Указывает путь к родительскому реквизиту. Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.

Возвращаемое значение:

Тип: Массив.

Массив объектов РеквизитФормы.

Описание:

Получает описание реквизитов формы.

Copyright©, «Программист 1С в г.Минске», 06.11.2021

Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник

Вопрос Как определить программно, существует ли у документа требуемый реквизит

С давних времен в типовых конфигурациях для этого существовала специальная функция.
В конфигурациях последних редакций эта функция стала более универсальной и кроме того стала неожиданно оригинальной, даже эстетически восхитительной.

Так, на сегодня, в 2019 г., эта функция называется ЕстьРеквизитИлиСвойствоОбъекта и располагается в общем модуле ОбщегоНазначенияКлиентСервер. Обращение к функции:

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

Сама функция проверки выглядит сейчас (2019 год) так:

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

В типовых конфигурациях 1С по состоянию на 2010 г. для этой цели использовалась функция, например, «ЕстьРеквизитДокумента» общего модуля «ОбщегоНазначения» и была построена на получении метаданных. Обращение к функции:

Если ОбщегоНазначения.ЕстьРеквизитДокумента("БанковскийСчет", МетаданныеДокумента) Тогда ...

где «БанковскийСчет» — пример наименования искомого реквизита,
«МетаданныеДокумента«:

МетаданныеДокумента = ДокументОбъект.Метаданные();

Сама функция проверки (расположенная в общем модуле «ОбщегоНазначения«):

// Позволяет определить есть ли среди реквизитов шапки документа
// реквизит с переданным именем.
//
// Параметры: 
//  ИмяРеквизита - строковое имя искомого реквизита, 
//  МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск.
//
// Возвращаемое значение:
//  Истина - нашли реквизит с таким именем, Ложь - не нашли.
//
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт
	Если МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли; 

КонецФункции // ЕстьРеквизитДокумента()

Next Post

  • v8

  • Программисту 1C

Ср Ноя 10 , 2010

Примеры работы с регистами сведений см. также в Шпаргалке по программированию для системы 1С:Предприятие 8.2 Оглавление 1. Как из регистра сведений «РасчетчикиЗарплатыОрганизации» получить в виде массива всех расчетчиков зарплаты определенного подразделения организации 2. Как добавить запись в непериодический независимый регистр сведений 3. Как считать содержимое непериодического независимого регистра сведений «СобственныеКонтрагенты» […]

Breaking News

Войти или зарегистрироваться

8.х Как проверить реквизит/Объект метаданных на существование?

Тема в разделе «Конфигурирование на платформе «1С:Предприятие 8″», создана пользователем alp, 17 апр 2010.




0/5,
Голосов: 0
  1. TopicStarter Overlay

    alp

    Offline

    alp
    Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    434
    Симпатии:
    0
    Баллы:
    26

    есть Список реквизитов:
    Контрагент
    Договор
    Договор2
    ….
    Как проверить существует ли этот реквизит в объекте?
    подобно методу Выбран() в 77.


    alp,
    17 апр 2010
    #1

  2. mialord

    Offline

    mialord
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.460
    Симпатии:
    53
    Баллы:
    54

    Здраствуйте!

    Если Вы хотите проверить существует ли реквизит у объекта метаданных контрагент, то самый простой способ попытаться его получить через Метаданные() с использованием оператора Попытка … КонецПопытки;


    mialord,
    17 апр 2010
    #2

  3. Stack_G

    Offline

    Stack_G
    Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    29

    Из типовой:

    Код:
    МетаданныеДокумента = ДокументОбъект.Метаданные();
    
    
    Код:
    // Позволяет определить есть ли среди реквизитов шапки документа
    // реквизит с переданным именем.
    //
    // Параметры: 
    //  ИмяРеквизита - строковое имя искомого реквизита, 
    //  МетаданныеДокумента - объект описания метаданных документа, среди реквизитов которого производится поиск.
    //
    // Возвращаемое значение:
    //  Истина - нашли реквизит с таким именем, Ложь - не нашли.
    //
    
    
    Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт
    
    Если МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
    Возврат Ложь;
    Иначе
    Возврат Истина;
    КонецЕсли; 
    
    КонецФункции // ЕстьРеквизитДокумента()
    

    Переписать под любой объект не составляет труда:

    Код:
    Функция ЕстьРеквизитОбъекта(ИмяРеквизита, Объект) Экспорт
    
    МетаданныеОбъекта = Объект.Метаданные();
    Если МетаданныеОбъекта.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
    Возврат Ложь;
    Иначе
    Возврат Истина;
    КонецЕсли; 
    
    КонецФункции 
    

    Как говорит «начальника форума»: «все украдено до нас» :)


    Stack_G,
    17 апр 2010
    #3
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
Похожие темы

  1. GRUV

    8.х
    Как проверить существование переменной

    GRUV,
    15 май 2008
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    5
    Просмотров:
    6.698
    BabySG
    20 май 2008

  2. МалышкА

    8.х
    Как созданную в SQL таблицу превратить в объект метаданных 1С 8.2?

    МалышкА,
    8 мар 2014
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    4
    Просмотров:
    849
    Thelearning
    12 мар 2014

  3. man37

    7.7
    Проверить существование файла запросом

    man37,
    21 ноя 2015
    , в разделе: Конфигурирование на платформе «1С:Предприятие 7.7»
    Ответов:
    8
    Просмотров:
    2.765
    man37
    23 ноя 2015

  4. Aidis

    [РЕШЕНО]
    Как проверить существование узла при чтении ФабрикаXDTO

    Aidis,
    27 ноя 2015
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    3
    Просмотров:
    2.723
    hawksib
    24 сен 2019

Загрузка…
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

Понравилась статья? Поделить с друзьями:
  • Яндекс такси где зарегистрирована компания
  • 1001 гороскоп овен мужчина бизнес на неделю
  • Яндекс такси для бизнеса телефон поддержки
  • 1с проверить есть ли реквизит у справочника
  • 101 далматинец зоомагазин химки часы работы