Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 мая 2024, 15:05

Получение цены из регистра

Автор Soulidium, 06 мая 2013, 12:44

0 Пользователей и 1 гость просматривают эту тему.

Soulidium

Здравствуйте. Нужно получить цену из регистра сведений, при изменении в табличной части документа.
При попытке выполнения процедуры появляется ошибка:
{Документ.ОказаниеУслуг.Форма.ФормаДокумента.Форма(15)}: Ошибка при вызове метода контекста (ЦенаТарифа)
ЦенаТарифа(ТекДан);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'

Сам код:
&НаКлиенте
Процедура ПокупкаАбониментаКоличествоТренировокПриИзменении(Элемент)
        ТекДан = Элементы.ПокупкаАбонимента.ТекущиеДанные;
        ЦенаТарифа(ТекДан);
КонецПроцедуры

&НаСервере
Функция ЦенаТарифа(ТекДан) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | Тарифы.Цена
               |ИЗ
               | РегистрСведений.Тарифы КАК Тарифы
               |ГДЕ
               | Тарифы.ТипАбонимента = &ТипАбонимента
               | И Тарифы.КоличествоТренировок = &КоличествоТренировок";
Запрос.УстановитьПараметр("ТипАбонимента",ТекДан.ТипАбонимента);
Запрос.УстановитьПараметр("КоличествоТренировок",ТекДан.КоличествоТренировок);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ТекДан.Цена = Результат.Цена;
КонецЦикла;
КонецФункции

Пытался сделать через Структуру Отбор, таже самая ошибка. Скажите пожалуйся, что я делаю не правильно?



Dethmontt

&НаКлиенте
Процедура ПокупкаАбониментаКоличествоТренировокПриИзменении(Элемент)
        ТекДан = Элементы.ПокупкаАбонимента.ТекущиеДанные;
        ТекДан.Цена = ЦенаТарифа(ТекДан.ТипАбонимента,ТекДан.КоличествоТренировок);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЦенаТарифа(ТипАбонимента,КоличествоТренировок) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Тарифы.Цена
                   |ИЗ
                   |    РегистрСведений.Тарифы КАК Тарифы
                   |ГДЕ
                   |    Тарифы.ТипАбонимента = &ТипАбонимента
                   |    И Тарифы.КоличествоТренировок = &КоличествоТренировок";
    Запрос.УстановитьПараметр("ТипАбонимента",ТипАбонимента);
    Запрос.УстановитьПараметр("КоличествоТренировок",КоличествоТренировок);
    Цена = 0;
    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Следующий() Тогда
        Цена = Результат.Цена;   
    КонецЕсли;
    Возврат Цена;       
КонецФункции
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск