![]() |
![]() |
![]() |
|
ПолучитьИзВременногоХранилища(Адрес) | ☑ | ||
---|---|---|---|---|
0
Мятежник
13.04.16
✎
10:39
|
Привет всем. Есть табличный документ с рисунком. В форме обработки засовываю его во временное хранилище, получаю адрес.
Адрес = ПоместитьВоВременноеХранилище(ТабДок, УникальныйИдентификатор); Открываю другую управляемую форму, передаю в реквизит формы адрес. при открытии формы: &НаКлиенте Процедура ПриОткрытии(Отказ) Таб1 = ПолучитьИзВременногоХранилища(Адрес1); КонецПроцедуры В форме появляется таб документ с рисунком. все работает. Теперь перехожу по вкладкам, на каждой вкладке есть свой Табличный документ (Таб1, Таб2 и т.д.) &НаКлиенте Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) Таб1 = ПолучитьИзВременногоХранилища(Адрес1); Таб2 = ПолучитьИзВременногоХранилища(Адрес1); КонецПроцедуры при таком коде, все таб документы пустые. Если пишу так: &НаКлиенте Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) Таб1 = ПолучитьизХранилищаНаСервере(); Таб2 = ПолучитьизХранилищаНаСервере(); КонецПроцедуры Функция ПолучитьизХранилищаНаСервере() Возврат ПолучитьИзВременногоХранилища(Адрес1); КонецФункции то, табличные документы заполняются, но без рисунков! как правильно сделать? и почему ПолучитьИзВременногоХранилища при открытии на клиенте отрабатывает, а при смене страниц на клиенте нет? |
|||
1
Pro-tone
13.04.16
✎
10:42
|
(0) подозреваю, что дело в
Глобальный контекст (Global context) ПоместитьВоВременноеХранилище (PutToTempStorage) Если передан УникальныйИдентификатор, не являющийся уникальным идентификатором формы, то значение будет удалено после завершения сеанса пользователя. |
|||
2
Pro-tone
13.04.16
✎
10:43
|
(0) то есть у тебя стек временного хранилища очищается скорее всего
|
|||
3
Мятежник
13.04.16
✎
10:50
|
(2) что значит после завершения сеанса пользователя?
у меня форма открылась, макет есть с рисунком, как только переходишь на другую вкладку, макет очищается. где тут завершение сеанса? |
|||
4
Pro-tone
13.04.16
✎
10:53
|
(3) сеанс имеется в виду - это контекст серверной процедуры, при переходе в другую вкладку срабатывает новый обработчик, ты его вызываешь, а это уже новый сеанс
|
|||
5
Pro-tone
13.04.16
✎
10:55
|
(3) другими словами - при непрерывном вызове обработчиков ты получаешь один сеанс, если было прерывание и пользователь что-то сделал на форме, это уже новый сеанс, значение во временном хранилище не живет если поставишь не те параметры, короче пробуй
ПоместитьВоВременноеХранилище(ТабДок, ЭтаФорма.УникальныйИдентификатор) |
|||
6
Мятежник
13.04.16
✎
10:58
|
хм... как раз ЭтаФорма.УникальныйИдентификатор мне не подойдет. я в первой форме могу создать таб документов штук 5 и потом мне надо 5 уникальных адресов передать во вторую форму. а ЭтаФорма.УникальныйИдентификатор насколько я понял из описания даст мне один адрес на все таб документы
|
|||
7
Pro-tone
13.04.16
✎
11:01
|
(6) у тебя так работать не будет
|
|||
8
Pro-tone
13.04.16
✎
11:01
|
(6) сохраняй рисунки тогда на диске во временном каталоге
|
|||
9
Мятежник
13.04.16
✎
11:10
|
(7) не будет при каком варианте?
если использовать ЭтаФорма.УникальныйИдентификатор или Новый УникальныйИдентификатор? |
|||
10
Pro-tone
13.04.16
✎
11:11
|
(9) при Новый УникальныйИдентификатор
|
|||
11
Pro-tone
13.04.16
✎
11:12
|
(9) и ЭтаФорма.УникальныйИдентификатор тоже, так как адрес один, а объектов много, ты можешь правда добавлять объекты по адресу врем хранилища
|
|||
12
Pro-tone
13.04.16
✎
11:13
|
создаешь массив табдоков, пихаешь в него табдоки, по одному адресу обращаешься
|
|||
13
Мятежник
13.04.16
✎
11:16
|
(12) по-моему отл идея! попробую сейчас
|
|||
14
Pro-tone
13.04.16
✎
11:16
|
Помещение в массив
МассивТабДококов.Добавить(ТабДок1); Адрес = ПоместитьВоВременноеХранилище(МассивТабДококов, УникальныйИдентификатор); Извлечение из массива Таб1 = ПолучитьИзВременногоХранилища(Адрес1).Получить(0); Таб2 = ПолучитьИзВременногоХранилища(Адрес1).Получить(1); |
|||
15
Pro-tone
13.04.16
✎
11:17
|
вместо Адрес1 просто Адрес ) ну ты понял идею)
|
|||
16
Pro-tone
13.04.16
✎
11:19
|
1.
МассивТабДококов.Добавить(ТабДок1); МассивТабДококов.Добавить(ТабДок2); Адрес = ПоместитьВоВременноеХранилище(МассивТабДококов, ЭтаФорма.УникальныйИдентификатор); 2. Таб1 = ПолучитьИзВременногоХранилища(Адрес).Получить(0); Таб2 = ПолучитьИзВременногоХранилища(Адрес).Получить(1); |
|||
17
Мятежник
13.04.16
✎
11:30
|
сделал, но ЭтаФорма.УникальныйИдентификатор ведет себя также как и Новый УникальныйИдентификатор. либо пустые макеты, либо без рисунков. :((
|
|||
18
Pro-tone
13.04.16
✎
11:45
|
(17) тогда дело вообще не в этом, а в выводе рисунков в табдок возможно
|
|||
19
Мятежник
13.04.16
✎
11:46
|
я из-за чего начал использовать временное хранилище при смене страниц, из за того что, если пишу
при открытии формы Таб1 = ПолучитьИзВременногоХранилища(Адрес1); Таб2 = ПолучитьИзВременногоХранилища(Адрес2); и потом просто перехожу по вкладкам без кода возникает ошибка из-за наличия рисунков Ошибка преобразования данных XDTO: Запись значения свойства: форма: Элемент имя: {http://v8.1c.ru/8.2/data/spreadsheet}object по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ActiveX' поэтому решил сохранять адрес и каждый раз при смене страницы вытаскивать из хранилища таб документ |
|||
20
Мятежник
14.04.16
✎
10:36
|
Проблему решил. Сделал так: макет создается с пустой картинкой, потом отдельно создаю картинку Штрихкод (помогла конфа "Управляемое приложение"), вставляю ее в макет.
Тему можно закрывать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |