| 
    
        
     
     | 
    
  | 
Возврат ссылки с сервера на клиент | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Tolstiy Beremenniy    
     18.12.18 
            ✎
    04:56 
 | 
         
        На сервер передаю наименование номенклатуры, нахожу элемент.
 
        Возвращаю его с сервера на клиент, но в переменной на клиенте нет ссылки уже. Как это будет правильно сделать?  | 
|||
| 
    1
    
        Tolstiy Beremenniy    
     18.12.18 
            ✎
    04:58 
 | 
         
        Причем находится элемент, который я создал программно,
 
        но у него нет значения в реквизите Ссылка. Как элемент номенклатуры может быть без ссылки?  | 
|||
| 
    2
    
        Михаил Иванович    
     18.12.18 
            ✎
    05:00 
 | 
         
        (1) "но у него нет значения в реквизите Ссылка" - ай-ай-ай... какой ужос.     
         | 
|||
| 
    3
    
        Лефмихалыч    
     18.12.18 
            ✎
    05:03 
 | 
         
        Записать() забыл?     
         | 
|||
| 
    4
    
        Tolstiy Beremenniy    
     18.12.18 
            ✎
    05:06 
 | 
         
        (3) Так элемент же в справочнике. как забыл то?
 
        я его могу открыть и посмотреть. А делаю программно обработку. Если НайденнаяНоменкл <> 0 Тогда НоваяСтрока = Объект.СписокНоменклатуры.Добавить(); НоваяСтрока.Номенклатура = НайденнаяНоменкл; // &НаСервере Процедура СоздатьНоменклатуру(НаименованиеНоменклатуры) НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатура.Наименование = НаименованиеНоменклатуры; НоваяНоменклатура.Записать(); КонецПроцедуры // Он находится без ссылки. может он с сервера не передается?  | 
|||
| 
    5
    
        Tolstiy Beremenniy    
     18.12.18 
            ✎
    05:08 
 | 
         
        Вот тут элемент находится, есть наименование, код, а ссылки нет!
 
        // &НаСервере Процедура СоздатьНоменклатуру(НаименованиеНоменклатуры) НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатура.Наименование = НаименованиеНоменклатуры; НоваяНоменклатура.Записать(); КонецПроцедуры // Соответственно я не могу её вернуть с сервера. Это от чего так?  | 
|||
| 
    6
    
        Tolstiy Beremenniy    
     18.12.18 
            ✎
    05:09 
 | 
         
        Точнее вот тут он находится но без ссылки, -
 
        // &НаСервере Функция ВернутьНоменклатуру(Номенкл) НайденнаяНоменкл = Справочники.Номенклатура.НайтиПоНаименованию(Номенкл, 1); Если НайденнаяНоменкл <> Справочники.Номенклатура.ПустаяСсылка() Тогда Возврат НайденнаяНоменкл; Иначе Возврат 0; КонецЕсли; КонецФункции //  | 
|||
| 
    7
    
        youalex    
     18.12.18 
            ✎
    07:10 
 | 
         
        скриншот выложи, где ты смотришь, что "ссылки нет"     
         | 
|||
| 
    8
    
        ЕщеОдин Программист    
     18.12.18 
            ✎
    07:17 
 | 
         
        думаю что проблема, либо Номенкл не является правильным наименованием, либо результат теряется уже после серверного вызова. Смотреть нужно отладчиком, трассируешь, и смотришь какое значение в НайденнаяНоменкл;     
         | 
|||
| 
    9
    
        AneJIbcuH    
     18.12.18 
            ✎
    07:34 
 | 
         
        (6) 
 
        Для такой функции используй &НаСервереБезКонтекста Где вызов этой функции у тебя?  | 
|||
| 
    10
    
        Лефмихалыч    
     18.12.18 
            ✎
    07:52 
 | 
         
        (6) херню ты какую-то пишешь. Нет ни одного вызова этой твоей СоздатьНоменклатуру()     
         | 
|||
| 
    11
    
        hhhh    
     18.12.18 
            ✎
    08:02 
 | 
         
        СоздатьНоменклатуру(НаименованиеНоменклатуры)  вообще процедура. Не функция.     
         | 
|||
| 
    12
    
        sandal_r    
     18.12.18 
            ✎
    11:39 
 | 
         
        &НаКлиенте
 
        Процедура ДобавитьСтрокуВТЧ(Наименование) НоваяСтрока = Объект.СписокНоменклатуры.Добавить(); НоваяСтрока.Номенклатура = ПолучитьСсылкуНоменклатурыПоНаименованию(Наименование); КонецПроцедуры &НаСервере Функция ПолучитьСсылкуНоменклатурыПоНаименованию(Наименование) НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, Истина); Если ЗначениеЗаполнено(НайденнаяНоменклатура) Тогда Возврат НайденнаяНоменклатура; Иначе НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НоваяНоменклатура.Наименование = НаименованиеНоменклатуры; НоваяНоменклатура.Записать(); Возврат НоваяНоменклатура.Ссылка; КонецЕсли; КонецФункции  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |