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

Не выгружаются данные в таблицу значений

Автор ktu78, 29 авг 2015, 13:00

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

ktu78

Добрый день, коллеги.
У меня задача - документ Расходная накладная, управляемая форма документа:
В форме документа есть ТаблицаЗначений.
При выборе ТМЦ в табличной части документа в таблице значений должны отобразиться партии, в котором есть это ТМЦ.
На клиенте в событии ПриИзменении колонки "ТМЦ" запускается функция ВыборПартийТМЦ, в которой запросом получаем данные с регистра накопления ТМЦ сведения о ТМЦ, партиях и цене партии (см. код)
Затем конструкцией Таблица = Запрос.Выполнить().Выгрузить();
выгружаю данные в таблицу и передаю на клиент. Вот весь код:


&НаКлиенте
Процедура ТМЦТМЦПриИзменении(Элемент)
   
   ТабСтрока = Элементы.ТМЦ.ТекущиеДанные;
   ТабСтрока.Цена = РасчетыОбщий.ПолучиЦену(ТабСтрока.ТМЦ, Объект.ВидЦены);
   ТабСтрока.ЕдиницаИзмерения = ПолучиЕдиницуИзмерения(ТабСтрока.ТМЦ);
   ТабСтрока.УчЦена = ПолучиУчЦену(ТабСтрока.ТМЦ);
   // установка счета ТМЦ в зависимости от Вида ТМЦ (Справочник Вид ТМЦ)
   ТабСтрока.СчетТМЦ = ПолучиСчетТМЦ(ТабСтрока.ТМЦ);
    ТабСтрока.Сумма=ТабСтрока.Цена*ТабСтрока.Количество;
   ТабСтрока.УчСумма=ТабСтрока.УчЦена*ТабСтрока.Количество;
   
   Элементы.ТаблПартий.Вывод=ВыборПартийТМЦ(Объект.Дата,Объект.Склад,ТабСтрока.ТМЦ);
      
   
КонецПроцедуры

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


ПРи запуске 1С:Предприятие при добавлении ТМЦ в Расходной накладной выдается ошибка. Пожалуйста помогите, удачи Вам в Вашем деле!

{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(14)}: Ошибка при вызове метода контекста (ВыборПартийТМЦ)
   Элементы.ТаблПартий.Вывод=ВыборПартийТМЦ(Объект.Дата,Объект.Склад,ТабСтрока.ТМЦ);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable';

Дмитрий@

Таблицу значений нельзя передавать между клиентом и сервером. Данные в табличную часть нужно загружать на сервере.

ОбъектЗначение = РеквизитФормыВЗначение("Объект");
ОбъектЗначение.ТабличнаяЧасть.Загрузить(РезультатЗапроса.Выполнить.Выгрузить());
ЗначениеВРеквизитФормы(ОбъектЗначение,"Объект");

ktu78

Цитата: Дмитрий@ от 29 авг 2015, 17:51
Таблицу значений нельзя передавать между клиентом и сервером. Данные в табличную часть нужно загружать на сервере.

ОбъектЗначение = РеквизитФормыВЗначение("Объект");
ОбъектЗначение.ТабличнаяЧасть.Загрузить(РезультатЗапроса.Выполнить.Выгрузить());
ЗначениеВРеквизитФормы(ОбъектЗначение,"Объект");

Спасибо Дмитрий получилось!

Теги:

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

Рейтинг@Mail.ru

Поиск