8.х Проверка существования переменной модуля. Возможно ли.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Robix, 11 ноя 2015.

  1. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Здравствуйте, допустим есть цикл, в котором идет обработка объектов документов разных типов, среди которых в некоторых объектах встречается определенная переменная модуля.
    Вопрос,
    можно ли как-то проверить наличие в объекте переменной модуля объекта по ее имени или же это никак не сделать и остается только проверять какого типа сейчас объект, чтобы понять существует ли в его модуле такая-то переменная?
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    ТипЗНЧ() почитайте в СП
  3. IceBeerG
    Offline

    IceBeerG Опытный в 1С

    Регистрация:
    15 дек 2012
    Сообщения:
    193
    Симпатии:
    11
    Баллы:
    29
    Если вам нужно обойти циклом документы разных видов и проверить там наличие нужного реквизита, тогда вот пример:
    Код:
    Если  ЭтотОбъект.Метаданные().Реквизиты.Найти("Контрагент") <> Неопределено Тогда
    Или что имелось ввиду под переменной модуля?
  4. TopicStarter Overlay
    Robix
    Offline

    Robix Опытный в 1С

    Регистрация:
    1 апр 2012
    Сообщения:
    107
    Симпатии:
    1
    Баллы:
    29
    Это имелось ввиду, что в модуле объекта-документа есть написано:
    Перем ЭтоПереманнаяМодуля Экспорт;
    И так как это не реквизит то его существование не проверить так, вернет неопределено.

    Остается либо проверять тип объекта, либо через попытку. Я делал через попытку, так как не охота было перечислять все более десятка типов :)
    Думал, возможно есть еще какой-то способ)
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    другого способа нет.

    разве что изначально сделать все по-человечески и вместо переменной модуля использовать структуру ДополнительныеСвойства

Поделиться этой страницей