|
8.3 проблемы с ПоместитьВоВременноеХранилище | ☑ | ||
---|---|---|---|---|
0
lucifer
12.08.13
✎
11:09
|
на 8.2 работало!
Помещаю ДокументОбъект во временное хранилище, выдает: "Переданное значение не может быть помещено во временное хранилище" НовыйДок = Документы.ДокументИсполнения.СоздатьДокумент(); ........ пар = ПоместитьВоВременноеХранилище(НовыйДок, Новый УникальныйИдентификатор()); как обойти? |
|||
1
Defender aka LINN
12.08.13
✎
11:11
|
Не помещай Объект в Хранилище.
Следующий! |
|||
2
lucifer
12.08.13
✎
11:15
|
(1) не подходит, следующий
|
|||
3
Defender aka LINN
12.08.13
✎
11:18
|
(2) Что не подходит? Или ты где-то в (0) невидимым шрифтом задачу описал?
|
|||
4
Omskdizel
12.08.13
✎
11:20
|
А ссылку на этот объект получается поместить?
Ну и вообще, какой смысл объект туда помещать?? |
|||
5
lucifer
12.08.13
✎
11:22
|
(3) предложенный тобой вариант не подходит, моя задача тебя волновать не должна!
Вопрос простой, какого ... перелопалили ф-ю а в справке ничего не написала, судя по справке не должно быть ограничений на помещаемый объект |
|||
6
lucifer
12.08.13
✎
11:22
|
(4) ну не было б смысла не помещал бы
|
|||
7
Omskdizel
12.08.13
✎
11:24
|
(5) "моя задача тебя волновать не должна!"
Вы, батенька, мало того, что хам, ибо вопрос вполне себе культурно был задан, так еще и малость идиотизмом страдаете похоже. В общем флаг вам в руки с вашей проблемой, занимайтесь любовью с ней самостоятельно. |
|||
8
ИсчадиеADO
12.08.13
✎
11:29
|
(0) вот такие они, 1с-ники
сделай так: создай структуру с помощью метаданных и работай с ней как с документом, а потом заполняй документ |
|||
9
lucifer
12.08.13
✎
11:30
|
(7) нууу давайте срач разведем на тему хамства.
Какая разница какая задача передо мной стоит? Я что попросил совета как сделать задачу лучше, или как обойти эту проблему, или как сделать по другому? Я задал вполне конкретный вопрос, с чего это вдруг перестала работать ф-я ПоместитьВоВременноеХранилище? С надеждой на то что может кто-то уже сталкивался, и есть решение |
|||
10
lucifer
12.08.13
✎
11:31
|
(8) ну вот, хоть что-то дельное
|
|||
11
banco
12.08.13
✎
11:31
|
(0) В "1С:Предприятии 8.3" при помещении во временное хранилище значений, сериализация которых не поддерживается (например, ДокументОбъект.<Имя документа>, СправочникОбъект.<Имя справочника> и пр.), возникает ошибка "Переданное значение не может быть помещено во временное хранилище".
Для устранения несовместимости необходимо: Выявить все места помещения значений во временное хранилище (поиском метода глобального контекста ПоместитьВоВременноеХранилище); Проверить, что возможна сериализация типов значений объектов, помещаемых во временное хранилище. Для этого необходимо свериться с синтакс-помощником, убедившись, что в группе "Доступность" явно указана фраза "Сериализуется". При этом следует отличать сериализацию от XDTO-сериализации и XML-сериализации. Например, для типов СправочникОбъект.<Имя справочника> сериализация не поддерживается, хотя поддерживается XDTO-сериализация и XML-сериализация. Если во временное хранилище значений помещается несериализуемое значение, следует пересмотреть проектное решение. |
|||
12
lucifer
12.08.13
✎
11:38
|
(11) ДокументОбъект может быть сериализован как в XML так и в XDTO
|
|||
13
lucifer
12.08.13
✎
11:39
|
(11) этого я не понял:
"Например, для типов СправочникОбъект.<Имя справочника> сериализация не поддерживается, хотя поддерживается XDTO-сериализация и XML-сериализация." Что значит сериализация не поддерживается, если поддерживается XDTO-сериализация и XML-сериализация |
|||
14
Defender aka LINN
12.08.13
✎
11:42
|
(9) "Какая разница какая задача передо мной стоит?" - большая. Есть стойкое подозрение, что тобой сочинен костыль из отходов жизнедеятельности.
Вообще, если хочешь какой-то помощи - описывай ЗАДАЧУ. |
|||
15
serffer
12.08.13
✎
11:42
|
(13) вроде вторым параметром ты неправильно передаеш:
Новый УникальныйИдентификатор() Надо передавать переменную у которой продолжительное время жизни. Например айди формы, так во всех конфах в основном делается. или заведи строковый реквизит на форме ИД, или глобальную переменную. как только ты выходиш из процедуры сборщик мусора удаляет ИДшник который ты передаеш вторым параметром. и следовательно удаляет твой оъект который хранится в хранилище. вроде так) но могу ошибаться |
|||
16
banco
12.08.13
✎
11:45
|
(13) читай внимательно. убедившись, что в группе "Доступность" явно указана фраза "Сериализуется"
|
|||
17
lucifer
12.08.13
✎
11:45
|
(15) не не в этом проблема, повторюсь в 8.2 все работало
Из справки: <Адрес> (необязательный) Тип: УникальныйИдентификатор; Строка. |
|||
18
lucifer
12.08.13
✎
11:46
|
(16) не стоит, а инфа (11) откуда?
|
|||
19
banco
12.08.13
✎
11:47
|
(18) ИТС Перевод конфигураций на платформу "1С:Предприятие 8.3" без режима совместимости с версией 8.2.
|
|||
20
lucifer
12.08.13
✎
11:48
|
(19) так так так, а где режим совместимости включается?
|
|||
21
Defender aka LINN
12.08.13
✎
11:54
|
(20) Под стулом, где же еще.
|
|||
22
lucifer
12.08.13
✎
11:54
|
(14) (14) ок, задача:
Из одной формы открыть другую форму (форму документа) с частично заполненными полями из первой формы, но так что бы документ не был сохранен в базе, т.е. показать пользователю, если надо он нажмет сохранить, если нет то и не надо ) Раньше делал так: НовыйДок = Документы.ДокументИсполнения.СоздатьДокумент(); // заполнял нужные реквизиты объекта пар = ПоместитьВоВременноеХранилище(НовыйДок, Новый УникальныйИдентификатор()); пар передавал параметром в открываемую форму, в открываемой форме делал так: Если Параметры.ОткрываетсяИзВне Тогда ЗначениеВРеквизитФормы(ПолучитьИзВременногоХранилища(Параметры.АдресОбъекта), "Объект"); КонецЕсли И все работала и все были довольны. Когда наткнулся на проблему пробовал так: ФормаДока = ПолучитьФорму("Документ.ДокументИсполнения.ФормаОбъекта"); ЗаполнитьОбъектФормыДокИсполнения(ФормаДока.Объект); // заполняются значения ОткрытьФорму(ФормаДока); ошибка: Нельзя изменять поле, содержащее объект данных формы |
|||
23
lucifer
12.08.13
✎
11:57
|
P.S.
режим совместимости включен |
|||
24
lucifer
12.08.13
✎
12:00
|
(21) нууу, вот тебе задача, давай решение )
или мозг вскипел? |
|||
25
lucifer
12.08.13
✎
12:01
|
пока только вижу выход только такой (8)
|
|||
26
Defender aka LINN
12.08.13
✎
12:10
|
(22) ППЦ.
|
|||
27
Defender aka LINN
12.08.13
✎
12:11
|
(25) Вот и я о том жеж. В общем, надейся, что следующий программист не узнает твой адрес. А то, я так подозреваю, его ждет множество сюрпризов
|
|||
28
lucifer
12.08.13
✎
12:13
|
(26) -> (22)
"Когда наткнулся на проблему пробовал так: "...... P.S. ты хоть до конца дочитывай |
|||
29
Defender aka LINN
12.08.13
✎
12:20
|
(28) Ты неправильно пробовал. Заметь, что в (26) код несколько отличается от твоего. И работает при этом.
Ну а если ты такой эстет, что тебе этот вариант не нравится - всегда есть обработка заполнения. |
|||
30
lucifer
12.08.13
✎
12:25
|
(29) код в (26) заполняет реквизиты формы, а ты попробуй так:
ФормаОбъекта.Объект.Реквизит = значение |
|||
31
Defender aka LINN
12.08.13
✎
12:28
|
(30) Так нельзя. Да и нахрена мне так пробовать, если заполнить документ, что и является целью, можно кодом из (26)?
Опять-таки, если тебя такой вариант не устраивает - всегда есть обработка заполнения. |
|||
32
lucifer
12.08.13
✎
12:32
|
(31) в том-то и дело что нельзя, а что ж ты мне предлагаешь код (26) если там заполнение реквизитов формы, или мне все реквизиты объекта в реквизиты формы добавить ))
Что значит обработка заполнения? |
|||
33
lucifer
12.08.13
✎
12:32
|
я остановился на варианте (8)
|
|||
34
banco
12.08.13
✎
12:50
|
(32) реквизиты формы правильнее заполнять в самой форме. передай в форму параметры, а в самой форме присозданиинасервере заполняй реквизиты формы.
|
|||
35
lucifer
12.08.13
✎
12:59
|
(34) мне не надо заполнять реквизиты формы
|
|||
37
Defender aka LINN
12.08.13
✎
13:43
|
(35) Кля. Ладно, персонально для тебя:
Так дошло? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |