В 8.3 некоторые объекты нельзя поместить во временное хранилище?

1. newborn 03.01.14 12:30 Сейчас в теме
Управляемая форма. В коде есть такое ПоместитьВоВременноеХранилище(Объект.Оплата), где Объект.Оплата - табличная чать документа.
В 8.2 все работало. В 8.3 выдаёт ошибку, что такой объект нельзя поместить во временное хранилище. Информацию на это тему я пропустил. Где можно прочитать про это?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. newborn 03.01.14 14:17 Сейчас в теме
3. 1cUserAndrew 63 03.01.14 17:42 Сейчас в теме
В версии 8.3 во временное хранилище можно помещать только сериализуемые значения.
Табличная часть (а в данном случае, тип "ДанныеФормыКоллекция") не сериализуется, поэтому не может быть помещен во временное хранилище.
Помещайте таблицу значений:
ПоместитьВоВременноеХранилище(Объект.Оплата.Выгрузить());


Прочитать можно здесь:
http://its.1c.ru/db/metod81#content:5293:1

Помещение во временное хранилище несериализуемых значений

В "1С:Предприятии 8.3" при помещении во временное хранилище значений, сериализация которых не поддерживается (например, ДокументОбъект.<Имя документа>, СправочникОбъект.<Имя справочника> и пр.), возникает ошибка "Переданное значение не может быть помещено во временное хранилище".

Для устранения несовместимости необходимо:

1) Выявить все места помещения значений во временное хранилище (поиском метода глобального контекста ПоместитьВоВременноеХранилище);

2) Проверить, что возможна сериализация типов значений объектов, помещаемых во временное хранилище. Для этого необходимо свериться с синтакс-помощником, убедившись, что в группе "Доступность" явно указана фраза "Сериализуется". При этом следует отличать сериализацию от XDTO-сериализации и XML-сериализации. Например, для типов СправочникОбъект.<Имя справочника> сериализация не поддерживается, хотя поддерживается XDTO-сериализация и XML-сериализация.

3) Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.
levante90; newborn; +2 Ответить
4. newborn 03.01.14 23:00 Сейчас в теме
Спасибо. А чем вызваны такие изменения? Зачем ухудшать возможности?
5. 1cUserAndrew 63 03.01.14 23:59 Сейчас в теме
Не знаю :)
Наверное, как обычно, - в угоду новым возможностям.

Да и, честно говоря, я не встречал случаев, когда во временное хранилище помещалась сама табличная часть. В типовых (даже и в версии 8.2), вроде бы, всегда табличная часть выгружалась в таблицу значений, и таблица значений уже помещалась во временное хранилище...не?
6. newborn 04.01.14 02:05 Сейчас в теме
(5) 1cUserAndrew,
Честно говоря, я сам с такой проблемой не сталкивался до сего дня. Поэтому правильного ответа у меня нет. В данном случае код не мой, поэтому я несу ответственность за его исправление а не за написание.
Однако, мне кажется, что сужение возможнейстей не есть гут. Фак есть фак - раньше это работало, а теперь нет. Причем сервер и клиент разнесены территориально достаточно сильно и интернет между ними не сверх-быстрый. Однако же - работало. И это было удобно. Ну, то есть, когда оно работает, то оно всегда удобно... :)
Спрашивается - зачем? Если оно раньше передавало несериализуемые данные и правильно их понимало "на том конце", а теперь из "из принципа не хочет"... Зачем?
7. 1cUserAndrew 63 04.01.14 21:41 Сейчас в теме
(6)
Фак есть фак - раньше это работало, а теперь нет.

Фак есть фак - придется переписывать :)
По той ссылке так прямо и сказано:
3) Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение.


Тем более, что большой проблемы в данном случае, вроде, как бы и нет. Выгрузите табличную часть в таблицу значений и помещайте в хранилище...
ПоместитьВоВременноеХранилище(Объект.Оплата.Выгрузить());
8. newborn 04.01.14 22:51 Сейчас в теме
Это тот случа, когда приходится согласиться, с большим сожалением...
9. sacred 173 14.05.20 22:20 Сейчас в теме
Решение: https://infostart.ru/public/331683/
Не проверял, работает ли с табличной частью, но, например, с элементами отбора компоновки данных - работает.
Забавно.
EarlyBird; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот