|
Получить ТекущиеДанные в УФ | ☑ | ||
---|---|---|---|---|
0
svchernova
10.11.11
✎
13:09
|
Здравствуйте,
Пытаюсь получить текущие данные таблицы. в 8.1 это выглядело так: ТекущийРаздел = ЭлементыФормы.Разделы.ТекущиеДанные; в 8.2 в управляемой форме этот вариант уже не работает. Делаю следующее: &НаКлиенте Процедура КомандаРассчитать(Команда) ТекущийРаздел = Элементы.Разделы.ТекущиеДанные; РассчитатьСтраховуюСумму(ТекущийРаздел); КонецПроцедуры &НаСервере Процедура РассчитатьСтраховуюСумму(ТекущийРаздел) Получаю ошибку: {Документ.Страхование.Форма.ФормаДокументаУпр.Форма(679)}: Ошибка при вызове метода контекста (РассчитатьСтраховуюСумму) РассчитатьСтраховуюСумму(ТекущийРаздел); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции' предполагаю, то нужно тип 'ДанныеФормыЭлементКоллекции' преобразовать в тип строки табличной части документа. вот такая задачка, вроде бы и простая. 4 |
|||
1
svchernova
10.11.11
✎
13:36
|
Все спят..
|
|||
2
GROOVY
10.11.11
✎
13:37
|
"Разделы", это что?
|
|||
3
Mort
10.11.11
✎
13:38
|
Хватит пытаться на сервер в параметрах отправить коллекции из формы.
|
|||
4
svchernova
10.11.11
✎
13:39
|
(2) Разделы - это табличная часть документа
|
|||
5
GROOVY
10.11.11
✎
13:40
|
(4) Что Вы хотите с ней на сервере делать?
|
|||
6
svchernova
10.11.11
✎
13:41
|
(3) Я понимаю, что посылаю на сервер неверный тип данных. Но не знаю, как правильно получить строку табличной части документа
|
|||
7
svchernova
10.11.11
✎
13:43
|
(5) Сумму посчитать..
Процедура РассчитатьСтраховуюСумму() ТекущийРаздел = Объект.Разделы.Получить(); //.ТекущиеДанные.ПолучитьЭлементы(); если ТекущийРаздел.ВидСтрахования.ВидСтраховойСуммы<> Перечисления.ВидСтраховойСуммы.Расчетная тогда //Предупреждение("По данному виду страхования страховая сумма не может быть рассчитана."); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "По данному виду страхования страховая сумма не может быть рассчитана."; Сообщение.Сообщить(); возврат; КонецЕсли; ТекущийОбъект = Элементы.ОбъектыСтрахования.ТекущиеДанные; ТекущиеБСО = Элементы.БСО.ТекущиеДанные; если ТекущиеБСО=неопределено тогда //Предупреждение("Не определена строка для расчета."); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не определена строка для расчета."; Сообщение.Сообщить(); возврат; КонецЕсли; если ТипЗнч(ТекущиеБСО.ОбъектСтрахования)=ТипЗнч(Справочники.ЗастрахованныеТранспортныеСредства.ПустаяСсылка()) тогда РазмерМРП = РегистрыСведений.РегламентированныеРасчетныеПоказатели.ПолучитьПоследнее(НачалоДня(КонецДня(Объект.Дата)+1)).РазмерМРП; Если ТекущиеБСО.ОбъектСтрахования.ТипТранспортногоСредства = Перечисления.ВидыТранспортныхСредствДляСтрахования.ВоздушныйТранспорт тогда ТекущиеБСО.СтраховаяСумма = 2250* РазмерМРП*ТекущиеБСО.ОбъектСтрахования.КоличествоПассажирскихМест; иначе ТекущиеБСО.СтраховаяСумма = 1250* РазмерМРП*ТекущиеБСО.ОбъектСтрахования.КоличествоПассажирскихМест; КонецЕсли; иначе //Предупреждение("Объект страхования не является транспортным средством. //|Страховая сумма не может быть расчитана."); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Объект страхования не является транспортным средством. |Страховая сумма не может быть расчитана."; Сообщение.Сообщить(); возврат; конецесли; КонецПроцедуры |
|||
8
GROOVY
10.11.11
✎
13:43
|
Что Вы со строкой на сервере собрались делать? Вы понимаете что вызоб контекстной серверной процедуры УЖЕ САМ по себе передал ВСЕ данные на сервер, зачем еще строку в догонку туда передавать? Передавайте номер, индекс и читайте там. Но это извраз все передавать на сервер ради одной строки.
|
|||
9
Mort
10.11.11
✎
13:44
|
(6) Не нужна там строка. Функция что делает? Расчитывает что-то по некоторым параметрам. Вот и сделай функцию НаСервереБезКонтеста, которая будет принимать эти параметры и возвращать нужное значение
ТекущийРаздел.Сумма = ПолучитьСумму(ТекущийРаздел.Цена, Текущийраздел.Количество); |
|||
10
svchernova
10.11.11
✎
13:45
|
(8) Ей - богу не понимаю :)) Две Ваших лекции пока прослушала, маловао будет :)
|
|||
11
kible
10.11.11
✎
13:47
|
(10) Передать в функцию индекс строки. Потом на сервере получить строку по индексу.
|
|||
12
svchernova
10.11.11
✎
13:47
|
(9) Морт, там вчерашний код не взлетел.. Я его оставила пока.
|
|||
13
GROOVY
10.11.11
✎
13:48
|
(11) Читай последнее предлложение из (8)
|
|||
14
svchernova
10.11.11
✎
13:49
|
(13) Хорошо, я поняла. Попробую.
|
|||
15
svchernova
10.11.11
✎
13:51
|
Спасибо всем!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |