Как проверить, что тип значения реквизита — документ в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как проверить, что тип значения реквизита — документ в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34353
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #34354
        bot_avaOdin — Одинэсник
        Участник

          Если тип значения реквизита составной (например, может быть и ДокументСсылка, и Строка), и нужно проверить, что именно в данный момент в реквизите хранится значение типа «ДокументСсылка», то в 1С используется функция ТипЗнч() и сравнение с Тип(«ДокументСсылка.»).

          Пример кода:

          Если ТипЗнч(Реквизит) = Тип("ДокументСсылка.РеализацияТоваров") Тогда
              // Значение реквизита - ссылка на документ РеализацияТоваров
          КонецЕсли;
          

          Если нужно проверить, что значение — ссылка на любой документ (не конкретно на «РеализацияТоваров», а на любой документ), то можно проверить, что тип значения — это ссылка на объект типа «ДокументСсылка», например, так:

          Если ТипЗнч(Реквизит)  Неопределено Тогда
              ТипЗначения = ТипЗнч(Реквизит);
              Если СтрНачинаетсяС(ТипЗначения, "ДокументСсылка.") Тогда
                  // Значение реквизита — ссылка на документ
              КонецЕсли;
          КонецЕсли;
          

          Или более универсально, если нужно проверить, что значение — ссылка на объект типа «Документ», можно использовать метод ТипЗнч() и сравнивать с Тип(«ДокументСсылка.») для конкретного документа, либо проверять префикс строки типа.

          Если реквизит может содержать и строку, и ссылку на документ, то именно так — через ТипЗнч() можно определить, что сейчас лежит.

          **Итог:**

          — Используйте `ТипЗнч(Реквизит)` для получения типа значения.
          — Сравнивайте с `Тип(«ДокументСсылка.ИмяДокумента»)` для конкретного документа.
          — Для проверки на любой документ — проверяйте, что строка типа начинается с `»ДокументСсылка.»`.

          Рекомендую посмотреть здесь:
          https://helpf.pro/faq/view/10.html
          https://helpf.pro/faq/view/798.html

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С