База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как передать таблицу значений с сервера на клиент в 1С без ошибки?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32260
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      Есть функция в модуле формы на сервере в ней через цикл вставляется табличную часть, есть процедура на клиенте в которую нужно передавать таблицу значений, часть кода из функции ”
      Таб = Новый ТаблицаЗначений;
      Таб.Колонки.Добавить(“Код”);
      Таб.Колонки.Добавить(“Адрес”);
      Таб.Колонки.Добавить(“Страна”);

      Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Стр = Таб.Добавить();
      Стр.Код = ВыборкаДетальныеЗаписи.Код;
      Стр.Адрес = ВыборкаДетальныеЗаписи.Ссылка;
      Стр.Страна =ВыборкаДетальныеЗаписи.Страна ;
      КонецЦикла;

      Возврат Таб;
      ” часть кода в процедуре на клиенте “ТабЗначений = ПолучениеДляТаблицыДанных(Структура);” , а приходит ошибка “Ошибка отображения типов:
      Отсутствует отображение для типа ‘{
      {Документ.ПЛ_ПланЛогистики.Форма.ФормаДокумента.Форма(625)}: ТабЗначений = ПолучениеДляТаблицыДанных(Структура);

      по причине:
      Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
      по причине:
      Ошибка преобразования данных XDTO:
      НачалоСвойства: ret Форма: Элемент Тип: {
      по причине:
      Ошибка отображения типов:

    • #32261

      Для передачи таблицы значений из функции на сервере в процедуру на клиенте в 1С:Предприятие, необходимо использовать массив структур в качестве промежуточного типа, так как таблицы значений являются мутабельными и не могут быть переданы напрямую.

      Вот как можно это реализовать:

      1. **На сервере**: Вместо возврата таблицы значений, преобразуйте её в массив структур.

      2. **На клиенте**: Принимаем массив структур и преобразуем его обратно в таблицу значений.

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

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.