|
Подскажите пожалуйста в чем ошибка, вроде передается только число... | ☑ | ||
---|---|---|---|---|
0
Delrus
16.07.15
✎
08:13
|
&НаКлиенте
Процедура УслугиУслугаПриИзменении(Элемент) Если НЕ Элемент.ТекстРедактирования = "" Тогда ПересчетТаблицыУслуг(Элементы.Услуги.ТекущиеДанные.НомерСтроки - 1); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПересчетТаблицыУслуг(Строка = Неопределено) Если НЕ Строка = Неопределено Тогда Строка = Объект.Услуги[Строка]; Если ТипЗнч(Строка.Услуга) = Тип("СправочникСсылка.Услуги") тогда Если Строка.Коэффициент = 0 тогда Строка.Коэффициент = 1; КонецЕсли; Строка.Цена = РегистрыСведений.ЦеныУслуг.ПолучитьПоследнее(Объект.Дата, Новый Структура("Услуга, Регион", Строка.Услуга, Объект.Склад.Регион)).Цена; Строка.Сумма = Строка.Цена * Строка.Коэффициент * Строка.Количество; РасчитатьСкидки(Строка, Строка.Скидка); Иначе Строка.Цена = РегистрыСведений.Цены.ПолучитьПоследнее(Объект.Дата, Новый Структура("Номенклатура, Регион, Тип", Строка.Услуга, Объект.Склад.Регион, Справочники.ТипыЦен.Розничная)).Цена; Строка.Коэффициент = 1; Строка.Сумма = Строка.Цена * Строка.Количество; РасчитатьСкидки(Строка, Строка.Скидка); // Объект.Услуги[Элементы.Услуги.ТекущаяСтрока] КонецЕсли; Иначе Для каждого СтрокаУслуга из Объект.Услуги цикл Если ТипЗнч(СтрокаУслуга.Услуга) = Тип("СправочникСсылка.Услуги") тогда Если СтрокаУслуга.Коэффициент = 0 тогда СтрокаУслуга.Коэффициент = 1; КонецЕсли; СтрокаУслуга.Цена = РегистрыСведений.ЦеныУслуг.ПолучитьПоследнее(Объект.Дата, Новый Структура("Услуга, Регион", СтрокаУслуга.Услуга, Объект.Склад.Регион)).Цена; СтрокаУслуга.Сумма = СтрокаУслуга.Цена * СтрокаУслуга.Коэффициент * СтрокаУслуга.Количество; РасчитатьСкидки(СтрокаУслуга, СтрокаУслуга.Скидка); Иначе СтрокаУслуга.Цена = РегистрыСведений.Цены.ПолучитьПоследнее(Объект.Дата, Новый Структура("Номенклатура, Регион, Тип", СтрокаУслуга.Услуга, Объект.Склад.Регион, Справочники.ТипыЦен.Розничная)).Цена; СтрокаУслуга.Коэффициент = 1; СтрокаУслуга.Сумма = СтрокаУслуга.Цена * СтрокаУслуга.Количество; РасчитатьСкидки(СтрокаУслуга, СтрокаУслуга.Скидка); // Объект.Услуги[Элементы.Услуги.ТекущаяСтрока] КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры {Документ.УслугиСервиса.Форма.ФормаДокументаУФ.Форма(162)}: Ошибка при вызове метода контекста (ПересчетТаблицыУслуг) ПересчетТаблицыУслуг(Элементы.Услуги.ТекущиеДанные.НомерСтроки - 1); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции' |
|||
1
Delrus
16.07.15
✎
08:13
|
Причем он всю процедуру отрабатывает и ошибка вылетает при завершении...
|
|||
2
asady
16.07.15
✎
08:18
|
(0) попробуй объявить процедуру ПересчетТаблицыУслуг(Знач Индекс) экспорт
|
|||
3
Delrus
16.07.15
✎
08:22
|
(2) Спасибо огромное, сработало!!!!!!!
|
|||
4
Feunoir
16.07.15
✎
08:26
|
(3) А вот почему так происходит
Строка = Объект.Услуги[Строка]; При возврате оно пытается вернуть значение строки на клиента. А там уже хранится элемент коллекции. Оттого и ошибка. Поэтому либо Знач, как написали в (1), либо поменять имя внутренней переменной, чтобы она не совпадала с параметрами процедуры. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |