Имя: Пароль:
1C
 
Передача таблицы между клиент сервером
0 ilyavorobyev
 
14.10.14
09:18
Нужно открыть форму и передать в нее таблицу из табл.части пишу :


ПараметрыСтрукутура = Новый Структура;

    ПараметрыСтрукутура.Вставить("Склад", Объект.Склад);
    ПараметрыСтрукутура.Вставить("Таблица", Объект.Материалы.Выгрузить());
    ПараметрыСтрукутура.Вставить("РегиональноеПодразделение", Объект.РегиональноеПодразделение);

    ОткрытьФорму("Обработка.ПодборМатериалов.Форма", ПараметрыСтрукутура);

Вылазит ошибка : "Метод недоступен на клиенте"
1 Сергиус
 
14.10.14
09:29
(0)Объект.Материалы.Выгрузить()
2 Сергиус
 
14.10.14
09:29
+(1) Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
3 ilyavorobyev
 
14.10.14
09:30
(1) я знаю почему это, сделал выгрузить на сервере а на клиент ее передавать нельзя
4 Сергиус
 
14.10.14
09:30
(3)Покажи код, как ты сделал
5 ilyavorobyev
 
14.10.14
09:31
(4)


&НаКлиенте
Процедура Подбор(Команда)
    ПараметрыСтрукутура = Новый Структура;

    ПараметрыСтрукутура.Вставить("Склад", Объект.Склад);
    ПараметрыСтрукутура.Вставить("Таблица", ПолучитьТабЧасть(Объект.Материалы));
    ПараметрыСтрукутура.Вставить("РегиональноеПодразделение", Объект.РегиональноеПодразделение);

    ОткрытьФорму("Обработка.ПодборМатериалов.Форма", ПараметрыСтрукутура);

КонецПроцедуры

&НаСервере
Функция ПолучитьТабЧасть(ТабЧасть)
    Возврат ТабЧасть.Выгрузить();    
КонецФункции

6 Любопытная
 
14.10.14
09:33
(5) Нельзя передавать ТЗ между клиентом и сервером :) заверни ее во что-нибудь
7 Сергиус
 
14.10.14
09:33
(5)ПоместитьВоВременноеХранилище(ТабЧасть.Выгрузить());
8 ilyavorobyev
 
14.10.14
09:37
(7)


&НаКлиенте
Процедура Подбор(Команда)
    ПараметрыСтрукутура = Новый Структура;

    ПараметрыСтрукутура.Вставить("Склад", Объект.Склад);
    ПараметрыСтрукутура.Вставить("Таблица", ПолучитьИзВременногоХранилища(ПолучитьТабЧасть(Объект.Материалы)));
    ПараметрыСтрукутура.Вставить("РегиональноеПодразделение", Объект.РегиональноеПодразделение);

    ОткрытьФорму("Обработка.ПодборМатериалов.Форма", ПараметрыСтрукутура);

КонецПроцедуры

&НаСервере
Функция ПолучитьТабЧасть(ТабЧасть)
    Возврат ПоместитьВоВременноеХранилище(ТабЧасть.Выгрузить());    
КонецФункции
9 ilyavorobyev
 
14.10.14
09:37
Нельзя изменять поле, содержащее объект данных формы
10 Сергиус
 
14.10.14
09:51
(9)а ты попробуй не передавать ТабЧасть в функцию на сервере:

&НаСервере
Функция ПолучитьТабЧасть()
    Возврат ПоместитьВоВременноеХранилище(ТабЧасть.Выгрузить());    
КонецФункции
11 Сергиус
 
14.10.14
09:52
(11)Или еще вариант - у тебя Таблица где-то уже задана..
12 ilyavorobyev
 
14.10.14
09:53
(10)

Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
13 Сергиус
 
14.10.14
09:55
(12)Пройдись отладчиком, в какой момент возникает ошибка?
14 ilyavorobyev
 
14.10.14
09:57
(13) Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
вот тут ПолучитьИзВременногоХранилища(ПолучитьТабЧасть());
15 Любопытная
 
14.10.14
10:00
(14) Ты зачем вообще это делаешь? Не бывает таблицы значений на клиенте.
16 ilyavorobyev
 
14.10.14
10:01
(15) и как передать в форму таблицу значений?
17 ilyavorobyev
 
14.10.14
10:02
(15) нужно передать в форму таблицу значений и открыть форму с уже загруженной в нее таблицей значений
18 Сергиус
 
14.10.14
10:03
(14)Понятно, вообщем так не "взлетит"..ТаблицаЗначений на клиенте не существует. Передавай туда адрес из временнного хранилища..
19 Сергиус
 
14.10.14
10:03
+(18)Что ты собираешься делать дальше в открываемой форме? Загружать данные из этой ТЗ?
20 Любопытная
 
14.10.14
10:04
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable.

(17) Наверное через кхм... мягкое место делать. Форме, которую ты открываешь сделай параметр, в который передавай адрес временного хранилища, а уже в той форме на сервере по параметрам заполняй ТЧ
21 Сергиус
 
14.10.14
10:05
(20)Поддерживаю.
22 ilyavorobyev
 
14.10.14
10:12
(20) "форме на сервере по параметрам заполняй ТЧ" это какое событие в той форме?
23 Сергиус
 
14.10.14
10:14
(22)Событие формы ПриСозданииНаСервере
24 ilyavorobyev
 
14.10.14
10:22
(20) спасибо,так и сделал