Имя: Пароль:
1C
1С v8
Передача реквизитов в процедуру "НаСервереБезКонтекста"
0 NikePopov
 
03.07.13
14:03
Доброго всем дня.
Вопрос следующий: Управляемая форма, у неё есть реквизит, который я хочу передать в функцию имеющую директиву "НаСервереБезКонтекста".

Почему не используется "НаСервере": у сама форма достаточно громоздкая, передача её с клиента на сервер и обратно дело долгое, и для часто выполняемой операции недопустимое.
Почему не используется "НаКлиенте": процедура выполняет методы доступные только на сервере.

Объявление процедуры изначально выглядело так:

Процедура ЗаполнитьТаблицаОбъектовМакета(Макет, ОбъектыМакета)

Результат:
Ошибка в месте вызова процедуры
{Форма.Форма.Форма(118)}: Ошибка при установке значения атрибута контекста (ОбъектыМакета)
ЗаполнитьТаблицаОбъектовМакета(Объект.Макет, ОбъектыМакета);
по причине:
Нельзя изменять поле, содержащее объект данных формы

Добавление "Знач" перед объявлением параметра отпрабатывает без ошибок, но переменную ОбъектыМакета(ТаблицаЗначений - ДанныеФормыКоллекция) не заполняет
Процедура ЗаполнитьТаблицаОбъектовМакета(Макет, Знач ОбъектыМакета)

Никто не сталкивался с таким вопросом?
1 Defender aka LINN
 
03.07.13
14:06
Нельзя, да
2 NikePopov
 
03.07.13
14:12
(1) Жалко. Тогда вопрос закрыт.
3 Feunoir
 
03.07.13
14:12
(0) Почему ты считаешь, что контекстный вызов потребует ресурсов много больше, чем передача всего объекта как параметр?

Что-то на эту тему было в видео по управляемым формам. И вроде там было решение этого дела. Сам лично с таким не сталкивался, поэтому как тот математик - знаю, что решение существует, но какое мне пока не важно.
4 NikePopov
 
03.07.13
15:01
(3) Это не весь объект, это маленькая таблица. 2 колонки да максимум 50 записей. А вся форма - это 50 реквизитов, притом все как на подбор значительно больше нежели эта табличка.
5 Жан Пердежон
 
03.07.13
15:09
(4) объект, форма, люди, кони...

как вариант: сделай реквизит формы такой
6 Feunoir
 
03.07.13
15:10
(4) Тогда ой. Тут я вижу только один вариант - возвращать таблицу как массив структур. И на клиенте уже заполнять.

А в видео как раз решение было через "Знач". Только оно только на сервер в таком случае передается. Обратно не возвращается, что и логично.
7 NikePopov
 
03.07.13
15:25
(6) Ясно. Спасибо. Вопрос снят.