Имя: Пароль:
1C
1С v8
ДокументСсылка почему-то превращается в строку
0 Vito
 
10.08.22
19:09
Есть такой код в расширении в модуле формы:

&НаСервере  
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)        
        <Некий запрос>
        РезультатЗапроса = Запрос.Выполнить().Выгрузить();                     
    Реализация =  РезультатЗапроса[0].Реализация;                               // Тип "Строка" в отладчике
    ОбновитьДанные(РезультатЗапроса[0].Реализация);                            // внутрь функции "ОбновитьДанные" попадает тип ДокументСыылка
КонецПроцедуры      

В отладчике видно, что переменная Реализация - имеет тип Строка, что неправильно, а выражение РезультатЗапроса[0].Реализация - тип ДокументСыылка  , что есть правильно. Также если смотреть в функции ОбновитьДанные перемена Реализация передает строку, а выражение  РезультатЗапроса[0].Реализация - ДокументСыылка. См. принтскрин: https://disk.yandex.ru/i/Irs2vUoA5GBEtg

В чем может быть дело?
Заранее спасибо!
1 Hmster
 
10.08.22
19:12
(0) код выполняется в модуле формы? а у формы есть реквизит "Реализация" с типом строка?
2 Vito
 
10.08.22
19:15
(1) Шас проверю
3 Vito
 
10.08.22
19:25
(1) Точно такой реквизит есть, теперь весь код стал понятен! Спасибо, сам не додумался!
4 Злопчинский
 
10.08.22
20:05
(3) это способность строить логические цепочки, то есть умение думать.
Реализация =  РезультатЗапроса[0].Реализация;      
если здесь реквизит слева имеет тип "строка", то какой тип имеет этот же левый реквизит перед этим оператором? Проверяем: если ПЕРЕД выполнением этого оператора левый реквизит имеет тип Неопределено/нул/иликактамвснеговике - тогда проблема. если имеет тип "строка" еще до присвоения - то очевидно, что этот реквизит определен где-то ранее и отсается искать где он уже определен. Додумываться не надо. надо думать ;-)
Обычно "додуматься" - это когда в тупике и начинаешь тупо шариться по всяким что в голову придет бессистемно...