|
Текущие данные (управляемая форма) | ☑ | ||
---|---|---|---|---|
0
gaur777
28.09.17
✎
17:00
|
Подскажите пожалуйста. Перевожу базу с обычной на управляемую форму. в одной из обработок, на обычной форме при нажатие кнопки данные брались с табличной части таким образом:
ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные; Теперь на управляемой выводит ошибку: ( Ошибка при получении значения атрибута контекста (ТекущиеДанные) ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные; по причине: Текущие данные таблицы недоступны на сервере ) ВходящиеПартии - табличная часть Вроде не сложно. Но как исправить не пойму |
25 |
||
1
gaur777
28.09.17
✎
17:01
|
На клиенте выполняю, пишет: ... поле не является объектным типом
|
9 |
||
2
mxs089
28.09.17
✎
17:02
|
получить по идентификатору
|
|||
3
vicof
28.09.17
✎
17:03
|
ВходящиеПартии не только имя табличной часть, но и имя элемента формы. Одна доступна на сервере, второй на клиенте.
|
6 25 |
||
4
vicof
28.09.17
✎
17:03
|
части*
|
|||
5
ribuh
28.09.17
✎
17:07
|
Интересно, а всё же что быстрее, в конфигураторе поставить точку останова на проблемной строке и посмотреть в режиме отладки, что там есть и что можно использовать, или создать тута темку и узнать много нового, чаще всего не о вопросе, а о себе (неичего личного, просто интересно))))))
|
|||
6
gaur777
28.09.17
✎
17:08
|
(3) ну так и как быть?
выполняю вот на сервере ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные; Enterprise = ТекущиеДанные.Площадка; Ошибка! Площадка одно из полей |
8 |
||
7
vicof
28.09.17
✎
17:11
|
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;
выполняй на клиенте |
9 |
||
8
dezss
28.09.17
✎
17:11
|
(6) у тч нет тек. данных...передавай их с клиента.
|
9 |
||
9
gaur777
28.09.17
✎
17:14
|
11 |
|||
10
gaur777
28.09.17
✎
17:15
|
хотя задаю переменную
Перем ТекущиеДанные; |
|||
11
dezss
28.09.17
✎
17:15
|
(9) что показывает отладка???
|
15 |
||
12
dezss
28.09.17
✎
17:15
|
и вообще, строка какая-нибудь выделена?
|
14 16 |
||
13
vicof
28.09.17
✎
17:16
|
"...поле не является объектным типом"
какое? |
17 |
||
14
dezss
28.09.17
✎
17:17
|
(12) т.к. при невыделенном ТекущиеДанные = Неопределено
|
16 |
||
15
gaur777
28.09.17
✎
17:18
|
(11) как я могу проверить отладчиком если этой строке выходит ошибка?
|
18 22 |
||
16
gaur777
28.09.17
✎
17:19
|
||||
17
gaur777
28.09.17
✎
17:20
|
(13) ну естественно первое которое выбирается в коде.
я же объясняю в обычном приложение всё работало |
|||
18
ribuh
28.09.17
✎
17:23
|
(15) дык на этой строке точку останова поставить, и смотреть, что там.........
|
19 |
||
19
gaur777
28.09.17
✎
17:27
|
(18) текущиеданные - не является полем объектного типа
|
20 21 |
||
20
ribuh
28.09.17
✎
17:30
|
(19) До текущих данных смотрим, что там есть
в Элементах смотрим что есть в Объекте смотрим, что есть ищем, где собака порылась, тьфу, блин, где есть то, что нам нужно...у Вас шансов намного больше, чем у советчиков тут - потому как всё перед глазами - нужно только найти, что хочется))))) |
|||
21
YAGolova
28.09.17
✎
17:31
|
(19) Во общем, вам надо изменить в своей голове парадигму программирования. То что было разрешено в толстом клиенте на обычных формах - ниразу не разрешено в тонком. текущие данные у табличной части доступны только на клиенте
|
|||
22
dezss
29.09.17
✎
09:12
|
(15) блин, ну ты же прямо ПЕРЕД выполнением этой строки можешь посмотреть на значения всех используемых в ней сущностей!!!
|
|||
23
gaur777
29.09.17
✎
11:06
|
Просто объясните. Как в управляемой форме получить значение по выбранной строке
|
|||
24
vicof
29.09.17
✎
11:09
|
Значение чего?
|
|||
25
oslokot
29.09.17
✎
11:18
|
26 |
|||
26
gaur777
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; КонецФункции |
|||
27
gaur777
29.09.17
✎
11:40
|
поэтому значение текущиеданные не находит
|
|||
28
oslokot
29.09.17
✎
12:47
|
ну значит на сервере получай нужную строку Объект.ВходящиеПартии[НомерТекСтроки] и обрабатывай
|
29 |
||
29
gaur777
29.09.17
✎
14:05
|
(28) мне нужно не по номеру строки
а по выбранной строки |
|||
30
famnam
29.09.17
✎
14:09
|
%НаКлиенте
ТекДанные = Элементы.ТЧ.ТекущиеДанные; ОбработатьНаСервере(ТекДанные.ПолучитьИдентификатор()); &НаСервере Процедура ОбработатьНаСервере(Идентификатор) ТекДанные = Объект.ТЧ.НайтиПоИдентификатору(Идентификатор); ТекДанные.Площадка = ...; Конецпроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |