Вход | Регистрация



Текущие данные (управляемая форма)

Текущие данные (управляемая форма)
Я
   gaur777
 
28.09.17 - 17:00
Подскажите пожалуйста. Перевожу базу с обычной на управляемую форму. в одной из обработок, на обычной форме при нажатие кнопки данные брались с табличной части таким образом:

ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;

Теперь на управляемой выводит ошибку:
( Ошибка при получении значения атрибута контекста (ТекущиеДанные)
    ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;
по причине:
Текущие данные таблицы недоступны на сервере )

ВходящиеПартии - табличная часть
Вроде не сложно. Но как исправить не пойму
 
 
   gaur777
 
1 - 28.09.17 - 17:01
На клиенте выполняю, пишет: ... поле не является объектным типом
   mxs089
 
2 - 28.09.17 - 17:02
получить по идентификатору
   vicof
 
3 - 28.09.17 - 17:03
ВходящиеПартии не только имя табличной часть, но и имя элемента формы. Одна доступна на сервере, второй на клиенте.
   vicof
 
4 - 28.09.17 - 17:03
части*
   ribuh
 
5 - 28.09.17 - 17:07
Интересно, а всё же что быстрее, в конфигураторе поставить точку останова на проблемной строке и посмотреть в режиме отладки, что там есть и что можно использовать, или создать тута темку и узнать много нового, чаще всего не о вопросе, а о себе (неичего личного, просто интересно))))))
   gaur777
 
6 - 28.09.17 - 17:08
(3) ну так и как быть?
выполняю вот на сервере

ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;

Enterprise    =  ТекущиеДанные.Площадка;


Ошибка! Площадка одно из полей
   vicof
 
7 - 28.09.17 - 17:11
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные; 

выполняй на клиенте
   dezss
 
8 - 28.09.17 - 17:11
(6) у тч нет тек. данных...передавай их с клиента.
   gaur777
 
9 - 28.09.17 - 17:14
(7) (8) - (1) прочитайте
   gaur777
 
10 - 28.09.17 - 17:15
хотя задаю переменную
Перем ТекущиеДанные;
 
 Рекламное место пустует
   dezss
 
11 - 28.09.17 - 17:15
(9) что показывает отладка???
   dezss
 
12 - 28.09.17 - 17:15
и вообще, строка какая-нибудь выделена?
   vicof
 
13 - 28.09.17 - 17:16
"...поле не является объектным типом"
какое?
   dezss
 
14 - 28.09.17 - 17:17
(12) т.к. при невыделенном ТекущиеДанные = Неопределено
   gaur777
 
15 - 28.09.17 - 17:18
(11) как я могу проверить отладчиком если этой строке выходит ошибка?
   gaur777
 
16 - 28.09.17 - 17:19
(12) (14) стоит условие
Если ТекущиеДанные = Неопределено Тогда
        Возврат;
КонецЕсли;
   gaur777
 
17 - 28.09.17 - 17:20
(13) ну естественно первое которое выбирается в коде.
я же объясняю в обычном приложение всё работало
   ribuh
 
18 - 28.09.17 - 17:23
(15) дык на этой строке точку останова поставить, и смотреть, что там.........
   gaur777
 
19 - 28.09.17 - 17:27
(18) текущиеданные - не является полем объектного типа
   ribuh
 
20 - 28.09.17 - 17:30
(19) До текущих данных смотрим, что там есть
в Элементах смотрим что есть
в Объекте смотрим, что есть
ищем, где собака порылась, тьфу, блин, где есть то, что нам нужно...у Вас шансов намного больше, чем у советчиков тут - потому как всё перед глазами - нужно только найти, что хочется)))))
   YAGolova
 
21 - 28.09.17 - 17:31
(19) Во общем, вам надо изменить в своей голове парадигму программирования. То что было разрешено в толстом клиенте на обычных формах - ниразу не разрешено в тонком. текущие данные у табличной части доступны только на клиенте
   dezss
 
22 - 29.09.17 - 09:12
(15) блин, ну ты же прямо ПЕРЕД выполнением этой строки можешь посмотреть на значения всех используемых в ней сущностей!!!
   gaur777
 
23 - 29.09.17 - 11:06
Просто объясните. Как в управляемой форме получить значение по выбранной строке
   vicof
 
24 - 29.09.17 - 11:09
Значение чего?
   oslokot
 
25 - 29.09.17 - 11:18
(0) Все должно работать, попробуй переименовать табличное поле, скорей всего проблема в (3)

ТекущиеДанные = Элементы.ТабличноеПоле1.ТекущиеДанные; 
(на клиенте)
   gaur777
 
26 - 29.09.17 - 11:40
(25) дело в том, что текущиеданные отладчик показывает нормально. тоесть все поля табличной части там есть.
но дело такое, что поля которые я заполняю отрабатываются на сервере:

Функция ПодготовитьОбъект_ConsignorXDTO(ФабрикаВЕТИС,ПараметрыЗапроса) 

    
    Consignor        = ФабрикаВЕТИС.Создать("http://api.vetrf.ru/schema/cdm/cerberus/enterprise";,  "BusinessMember");
    Enterprise         = ФабрикаВЕТИС.Создать("http://api.vetrf.ru/schema/cdm/cerberus/enterprise";,  "Enterprise");
    BusinessEntity     = ФабрикаВЕТИС.Создать("http://api.vetrf.ru/schema/cdm/cerberus/enterprise";,  "BusinessEntity");
        
    Enterprise.uuid            = ТекущиеДанные.UUIDПлощадкиОтправителя;
    BusinessEntity.uuid        = ТекущиеДанные.UUIDХСОтправителя;
    
    Consignor.enterprise        = Enterprise;
    Consignor.businessEntity    = BusinessEntity;    
    
    Возврат Consignor;
    
КонецФункции
   gaur777
 
27 - 29.09.17 - 11:40
поэтому значение текущиеданные не находит
   oslokot
 
28 - 29.09.17 - 12:47
ну значит на сервере получай нужную строку  Объект.ВходящиеПартии[НомерТекСтроки] и обрабатывай
   gaur777
 
29 - 29.09.17 - 14:05
(28) мне нужно не по номеру строки
а по выбранной строки
   famnam
 
30 - 29.09.17 - 14:09
%НаКлиенте
ТекДанные = Элементы.ТЧ.ТекущиеДанные;

ОбработатьНаСервере(ТекДанные.ПолучитьИдентификатор());

&НаСервере
Процедура ОбработатьНаСервере(Идентификатор)
ТекДанные = Объект.ТЧ.НайтиПоИдентификатору(Идентификатор);
ТекДанные.Площадка = ...;
Конецпроцедуры


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует