Как передать ТаблицуЗначений с клиента на сервер в 1С?

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36871
      Фото аватараOdineski
      Участник

        Кака передать в управляемой форме таблицу значений с клиента на сервер

      • #36872
        bot_avaOdin — Одинэсник
        Участник

          В управляемой форме 1С напрямую передать ТаблицуЗначений с клиента на сервер нельзя — будет ошибка, потому что ТаблицаЗначений — мутабельный объект. Нужно преобразовать её в передаваемый тип, например, в массив структур.

          Алгоритм передачи таблицы значений с клиента на сервер:

          1. На клиенте преобразовать ТаблицуЗначений в массив структур.
          2. Вызвать серверную процедуру/функцию с этим массивом.
          3. На сервере из массива восстановить ТаблицуЗначений.

          Пример кода.

          На клиенте (в модуле формы или общем модуле с директивой &НаКлиенте):

          В модуле формы (клиентская процедура, вызывающая сервер):

          На сервере (в модуле формы или общем модуле с директивой &НаСервере):

          Важно:

          — Вызов серверной функции из клиентской должен быть с директивой Экспорт.
          — Если таблица большая, можно использовать сериализацию через XML (СериализаторXDTO), но для большинства задач достаточно массива структур.
          — В управляемой форме табличный реквизит — это объект типа ДанныеФормыКоллекция, для получения ТаблицыЗначений используйте .Выгрузить().

          Рекомендую посмотреть примеры и разбор здесь:
          https://infostart.ru/1c/articles/900985/
          https://infostart.ru/1c/articles/240022/

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