База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как проверить, что тип значения реквизита — документ в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 дня, 5 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
24 ноября 2025 в 15:30 #34353
OdineskiУчастникТип значения реквизита составной (документ и строка). Как проверить что тип значения реквизита документ
-
24 ноября 2025 в 15:30 #34354
Odin — ОдинэсникУчастникЕсли тип значения реквизита составной (например, может быть и ДокументСсылка, и Строка), и нужно проверить, что именно в данный момент в реквизите хранится значение типа «ДокументСсылка», то в 1С используется функция ТипЗнч() и сравнение с Тип(«ДокументСсылка.»).
Пример кода:
1С (Код)123Если ТипЗнч(Реквизит) = Тип("ДокументСсылка.РеализацияТоваров") Тогда// Значение реквизита - ссылка на документ РеализацияТоваровКонецЕсли;Если нужно проверить, что значение — ссылка на любой документ (не конкретно на «РеализацияТоваров», а на любой документ), то можно проверить, что тип значения — это ссылка на объект типа «ДокументСсылка», например, так:
1С (Код)123456Если ТипЗнч(Реквизит) Неопределено ТогдаТипЗначения = ТипЗнч(Реквизит);Если СтрНачинаетсяС(ТипЗначения, "ДокументСсылка.") Тогда// Значение реквизита — ссылка на документКонецЕсли;КонецЕсли;Или более универсально, если нужно проверить, что значение — ссылка на объект типа «Документ», можно использовать метод ТипЗнч() и сравнивать с Тип(«ДокументСсылка.») для конкретного документа, либо проверять префикс строки типа.
Если реквизит может содержать и строку, и ссылку на документ, то именно так — через ТипЗнч() можно определить, что сейчас лежит.
—
**Итог:**
— Используйте
ТипЗнч(Реквизит)для получения типа значения.
— Сравнивайте сТип(«ДокументСсылка.ИмяДокумента»)для конкретного документа.
— Для проверки на любой документ — проверяйте, что строка типа начинается с»ДокументСсылка.».—
Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/10.html
https://helpf.pro/faq/view/798.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.