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

Возврат результата запроса

Автор V1tbrah, 26 сен 2019, 23:05

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

V1tbrah

мне необходимо пробежаться по записям регистра сведений,выбрать удовлетворяющую условиям,из неё получить значение ресурса
далее,это значение подставить в одно поле,при изменении другого в управляемой форме
делаю это так:
&НаКлиенте
Процедура РасстояниеПриИзменении(Элемент)
Тест=ОтборРегистраСведений(Элемент);
Объект.СтоимостьДоставки=Тест;   
КонецПроцедуры

Может можно как то без запроса это сделать?Или как с запросом реализовать правильно,подскажите

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

выдает такую ошибку:

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

АлександрВладимирович

Пытаетесь вернуть таблицу значений на клиент, а ей туда нельзя.

Надо так:

Возврат Результат[0].СтоимостьДоставки;

V1tbrah

уже решил проблему,но,спасибо
вот рабочий код:

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

Теги:

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

Рейтинг@Mail.ru

Поиск