Odin | База знаний 1С

Как определить тип ...
 

Как определить тип текущего документа в поле ДокументОснование?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

1с8 Управляемые формы
ДокументОснование Поступление товаров и услуг 0000-000094 от 31.05.2025 23:59:59 ДокументСсылка.ПоступлениеТоваровУслуг
Тип(НайдСтрДок.ДокументОснование.ССылка) {(1)}: Тип не определен (Поступление товаров и услуг 0000-000094 от 31.05.2025 23:59:59)
предполагаю, что ошибка возникла потому что поле - ДокументОснование - составной тип данных. Как получить тип текущего документа в этом поле?

ДокументОснование.Тип() -такая конструкция не допустима
вохможная Тип(ДокументОснование) но она дает ошибку



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Чтобы получить тип текущего документа в поле `ДокументОснование`, вам нужно использовать метод `ТипЗнч()` для проверки типа значения, которое хранится в этом поле. Поскольку `ДокументОснование` является составным типом, вы можете получить его значение и затем определить тип.

Вот пример кода, который поможет вам это сделать:

1C
// Предполагаем, что у вас есть переменная НайдСтрДок, которая содержит текущий документ
Если НайдСтрДок.ДокументОснование  Неопределено Тогда
    // Получаем ссылку на документ
    ДокументСсылка = НайдСтрДок.ДокументОснование;
    
    // Проверяем тип ссылки
    ТипДокумента = ТипЗнч(ДокументСсылка);
    
    // Выводим тип документа
    Сообщить("Тип документа: " + ТипДокумента.Имя());
Иначе
    Сообщить("Документ основание не задан.");
КонецЕсли;

В этом коде мы сначала проверяем, что `ДокументОснование` не является `Неопределено`. Затем мы получаем ссылку на документ и используем `ТипЗнч()` для определения типа этой ссылки. После этого можно вывести имя типа документа.

Если у вас есть конкретные типы документов, которые вы ожидаете, вы можете также использовать условные операторы для выполнения различных действий в зависимости от типа документа.



   
ОтветитьЦитата