Имя: Пароль:
1C
1С v8
Ошибка передачи между клиентом и сервером
0 sidalexsandr
 
06.06.16
20:33
МассивТранспортныхСредств = Новый Массив;
    
    Для каждого СтрТранспортныеСредства Из ТранспортныеСредства Цикл
        
        МассивТранспортныхСредств.Добавить(СтрТранспортныеСредства.ТранспортноеСредство);
        
    КонецЦикла;
Запр2(Выборка, МассивТранспортныхСредств);

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

Вопрос: Подскажите, что я неправильно передаю между клиентом и сервером.
1 Звездец
 
06.06.16
20:34
Весь код покажи, а то этот кусок мне несколько странным кажется
2 Лефмихалыч
 
06.06.16
20:38
> что я неправильно передаю между клиентом и сервером.
результат запроса ты передаешь, а это неправильно.

Чтобы узнать, где неправильное значение, используй отладчик
3 sidalexsandr
 
06.06.16
20:39
(1) &НаСервере
Процедура Запр2(Выборка, МассивТранспортныхСредств)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Остатки.ТранспортноеСредство КАК ТранспортноеСредство,
        |    СУММА(Остатки.КоличествоОстаток) КАК КоличествоКоробок,
        |    СУММА(Остатки.КоличествоОстаток * ГабаритыКоробок.Высота * ГабаритыКоробок.Ширина * ГабаритыКоробок.Длина) КАК ОбъемГруза
        |ИЗ
        |    РегистрНакопления.ГрузыВТранспортныхСредствах.Остатки(, ) КАК Остатки
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ГабаритыКоробок КАК ГабаритыКоробок
        |        ПО Остатки.ВидКоробки = ГабаритыКоробок.ВидКоробки
        |ГДЕ
        |    Остатки.ТранспортноеСредство В(&ТранспортноеСредство)
        |
        |СГРУППИРОВАТЬ ПО
        |    Остатки.ТранспортноеСредство
        |
        |УПОРЯДОЧИТЬ ПО
        |    Остатки.ТранспортноеСредство";
        Запрос.УстановитьПараметр("ТранспортноеСредство", МассивТранспортныхСредств);

        Выборка = Запрос.Выполнить();
    
КонецПроцедуры
4 sidalexsandr
 
06.06.16
20:40
(2) А как быть процедура исполняется на клиенте, а запрос только НаСервере.
5 Звездец
 
06.06.16
20:41
После выполнить делай выгрузить(4)
6 Звездец
 
06.06.16
20:43
И почему процедура , а не функция?(5)
7 Lexey_
 
06.06.16
20:46
(3) и почему выборка, если это не выборка "Выборка = Запрос.Выполнить();"?
8 mikecool
 
06.06.16
20:46
(4) выполни процу на сервере, будь мужиком
9 sidalexsandr
 
06.06.16
20:47
(5) Сделал, выдает ошибку:
{Обработка.Тест.Форма.Форма.Форма(109)}: Ошибка при вызове метода контекста (Запр2)
    Запр2(Выборка);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
10 sidalexsandr
 
06.06.16
20:47
(8) Да, а как я тогда буду работать НаСервере с реквизитами формы?
11 mikecool
 
06.06.16
20:48
(10) насервере доступны реквизиты объекта, используй их
12 Лефмихалыч
 
06.06.16
20:51
(9) все верно, так и должно быть.
Не передавай это все на клиента. Обрабатывай на сервере.
13 sidalexsandr
 
06.06.16
21:00
(12) Так я и обрабатываю запрос на сервере, а на клиента только пытаюсь передать результат.
14 hhhh
 
06.06.16
21:17
(13) реквизиты формы нормально на сервере работают
15 sidalexsandr
 
06.06.16
21:41
(11) Попробую
16 H A D G E H O G s
 
06.06.16
22:18
(0) Закрой конфигуратор. Не твое это.
17 sidalexsandr
 
07.06.16
17:43
(14) А что тогда работает только на клиенте. Знаю что Предупреждение() работает только на клиенте.
18 Nuobu
 
07.06.16
17:48
(17) Только на клиенте работают функции работы с пользователем. Всякие там элементы формы, реквизиты формы и их значения нормально работают и на сервере и на клиенте. А вот Запрос, результат его выполнения, создание элементов справочников и документов нужно смотреть на сервере.

Есть статья на инфостарте, почитай:
http://catalog.mista.ru/public/198766/
2 + 2 = 3.9999999999999999999999999999999...