Имя: Пароль:
1C
1С v8
Как получить объект по ссылке в УФ?
,
0 dwarfadelic
 
15.10.19
11:46
Реально надо. Есть на форме таблица с документами по текущему выбранному элементу. И есть блок где по этот документ редактировать или новый создавать и редактировать и потом сохранять. То есть по любому нужен реквизит ДокНорм типа справочникОбъект. Но как сделать чтобы загрузить в ДокНорм объект из таблицы документов по текущему (там ссылка на справочник)?

&НаКлиенте
Процедура ОткрытьДокументНормирования(_ДСЕ)    
    Если Элементы.ЭлементыНормирования.ТекущиеДанные<>Неопределено Тогда
        Если ЗначениеЗаполнено(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ) Тогда             
             ДокументНормирования = _ПолучитьОбъект(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ);            
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры


&НаСервере
Функция _ПолучитьОбъект(_Ссылка)
    Возврат _Ссылка.ПолучитьОбъект();
КонецФункции

Выдает ошибку. Как быть?
1 vicof
 
15.10.19
11:48
вопрос нихрена не понял.
Тип ...Объект не доступен на клиенте
2 dwarfadelic
 
15.10.19
11:53
Как из ссылке в текущей строке таблицы получить объект который будет отображаться в блоке редактирования ?
3 Жан Пердежон
 
15.10.19
11:54
СправочникОбъект и ДокументОбъект
есть только на сервере
4 vicof
 
15.10.19
11:55
Что значит отображаться в блоке редактирования?
5 vicof
 
15.10.19
11:55
Открытьформу(), не?
6 dwarfadelic
 
15.10.19
12:00
Там слева из дерева выбирается сборка потом в середине по этой сборке выбирается документ и справа блок редактирования этого элемента. А если открывать форму редактирования документа, то как ее запихнуть в страницуна текущей форме? Такое возможно ли?
7 Жан Пердежон
 
15.10.19
12:05
(6) ну тогда ручками - получай нужные реквизиты документа при выборе и сохраняй их обратно в документ по кнопке (или что там у тебя)
8 DrWatson
 
15.10.19
12:08
ЗначениеВРеквизитФормы(_Ссылка.ПолучитьОбъект(), "Объект")
9 dwarfadelic
 
15.10.19
12:18
В смысле

ЗначениеВРеквизитФормы(_ПолучитьОбъект(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ), "ДокументНормирования");


Ошибка при вызове метода контекста (_ПолучитьОбъект)
            ЗначениеВРеквизитФормы(_ПолучитьОбъект(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ), "ДокументНормирования");
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
10 mikecool
 
15.10.19
12:19
автор - у тебя есть ссылка, используй открытьформу и ключ = ссылка
11 dwarfadelic
 
15.10.19
12:22
(8) А если напрямую получить объект нельзя :

Метод объекта не обнаружен (ПолучитьОбъект)
            ЗначениеВРеквизитФормы(Элементы.ЭлементыНормирования.ТекущиеДанные.Документ.ПолучитьОбъект(), "ДокументНормирования");
12 dwarfadelic
 
15.10.19
12:23
(10) Мне не надо открывать новую форму мне нужно чтобы все в одной форме было
13 mikecool
 
15.10.19
12:24
(12) варум?
14 Кир Пластелинин
 
15.10.19
12:24
мне одному кажется, что это эпический ппц и рандомный перебор кода и всевозможных методов?
15 mikecool
 
15.10.19
12:24
+13 создавай Н реквизитов формы по кол-ву реквизитов объекта, на сервере заполняй их , изменяй и сохраняй в объект
16 mikecool
 
15.10.19
12:25
(14) я полх в терминах - это копрофагия или проктлогия? )
17 Кир Пластелинин
 
15.10.19
12:27
(16) больше склоняюсь к проктологии со всеми "вытекающими"
18 hhhh
 
15.10.19
12:47
ну так ведь часто делают. Например, поменять Статус документа. И делают как у ТС. Никто не делает ОткрытьФорму(), наоборот, они считают, что ОткрытьФорму - это проктология.
19 dwarfadelic
 
15.10.19
12:56
разобрался


&НаСервере
Процедура _УстановитьДокументПоСсылке(_Ссылка)
    ЗначениеВРеквизитФормы(_Ссылка.ПолучитьОбъект(), "ДокументНормирования")
КонецПроцедуры
20 dwarfadelic
 
15.10.19
12:57
(18) Если бы была возможность вставить форму внутрь формы в специальное окно как фрейм в делфи сам бы так сделал.