Передать таблицу объекта на сервер. Объект реквизит формы.

1. held88 59 07.12.17 10:52 Сейчас в теме
Добрый день! Решил вынести часть процедур в отдельный модуль и что-то не могу сообразить как параметром передать туда таблицу объекта, который является реквизитом формы и все это на клиенте?

Попытался просто гсм_ОбщегоНазначенияСервер.Функция1(Объект.Товары)

Выдает такую вот ошибку:
Нельзя изменять поле, содержащее объект данных формы

Тоже не понятно. Я же ничего не изменяю, просто передаю.

Как решить данную проблему?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 07.12.17 14:02 Сейчас в теме
(1) как то так:
Модуль формы:
&НаКлиенте
Процедура КлиентскаяПроцедура()
  СервернаяПроцедура();
КонецПроцедуры

&НаСервере
Процедура СервернаяПроцедура()
  гсм_ОбщегоНазначенияСервер.Функция1(Объект.Товары) ;
КонецПроцедуры
Показать

Но нужно понимать, что будет передана не табличная часть, а ДанныеФормыКоллекция.
Если нужна именно табличная часть,тогда нужно использовать РеквизитФормыВЗначение. А после изменения обратное преобразование ЗначениеВРеквизитФормы.
12. EVKash 14 07.12.17 15:50 Сейчас в теме
(1) Ругается потому, что вы передаете объект а не его значение.
Попробуйте в общем модуле прописать функцию так
Функция Функция1(ЗНАЧ Параметр1) Экспорт
2. ger_kar 07.12.17 11:02 Сейчас в теме
Использовать Функцию ДанныеФормыВЗначение(<Объект>, <Тип>) .
Если нужно передать данные отдельного реквизита формы, то для этого есть
РеквизитФормыВЗначение(<ИмяРеквизита>, <Тип>)
3. ger_kar 07.12.17 11:06 Сейчас в теме
Вот публикация на эту тему. https://infostart.ru/public/153602/
Ознакомьтесь обязательно, чтобы иметь представление что к чему.
4. held88 59 07.12.17 12:47 Сейчас в теме
(3)
ДанныеФормыВЗначение


Процедура или функция с указанным именем не определена (ДанныеФормыВЗначение)

Прочитал статью. Написано что она может выполняться на сервере без контекста. Хотя в синтаксис помощнике написано что данная процедура доступна на тонком клиенте. Не понятно. С Клиента можно как то сразу передать на сервер без дополнительного вызова серверных методов. А то так смысл теряется в вытаскивании процедур в отдельный модуль, а на их месте надо еще по процедуре создать которая вызовет эту процедуру.
6. herfis 498 07.12.17 13:36 Сейчас в теме
(4) Насколько я понимаю, т.к. "Объект.Товары" - часть контекста формы, то и работать с ним напрямую можно только не выходя из контекста формы.
Если хочешь прямо с клиента его засунуть на сервер и загрузить потом результат обработки одной командой, то единственное что приходит в голову - попробовать извратиться через клиентский общий модуль (работа с которым, по идее, должна проходить без потери контекста формы). Дело осложняется тем, что ТЗ на клиенте нет. Т.е. вырисовывается такая хрень:
1) передавать Объект.Товары в клиентский общий модуль
2) в нем обходом перепаковывать данные оттуда в массив структур, структуру массивов или что тебе удобнее для эмуляции ТЗ
3) передавать эту хрень в общий модуль с вызовом сервера
4) там делать с ней чего надо (можно через временное преобразование в ТЗ)
5) результат возвращать в клиентский общий модуль опять же в эмулированной ТЗ
6) в клиентском общем модуле обходом перезаполнять "Объект.Товары" данными из эмулированной ТЗ
Обычно никто этим не парится и тратится на контекстный серверный вызов в форме, из которого уже делай что хочешь. Пусть это иногда выглядит лишним телодвижением, зато эффективнее и проще с точки зрения обмена данными между клиентом и сервером.
10. ger_kar 07.12.17 14:22 Сейчас в теме
(4)
Процедура или функция с указанным именем не определена (ДанныеФормыВЗначение)
Значит вы вызываете ее не из того контекста.
5. NoRazum 29 07.12.17 12:59 Сейчас в теме
Это называется 1С.
куча лишних процедур
8. succub1_5 88 07.12.17 14:12 Сейчас в теме
(5)этот геммор только на УФ. раньше этого не было.
9. succub1_5 88 07.12.17 14:12 Сейчас в теме
можно проще - ТЗ сделать реквизиом Объекта.
13. held88 59 07.12.17 16:30 Сейчас в теме
(9) И как обратится к реквизиту объекта в на сервере без контекста? Как передать туда обьект?
11. vadim1011985 99 07.12.17 15:08 Сейчас в теме
ПоместитьВоВременноеХранилище не предлагать ?
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)