|
1с 8.2 Как поместить таблицу значений в хранилище значений? | ☑ | ||
---|---|---|---|---|
0
zvivla
19.12.11
✎
11:44
|
Здравствуйте!
Есть документ, в нем реквизит Хранилище, необходимо при сохранении дока помещать в хранилище некую таблицу значений, которая формируется в процессе заполнения пользователем формы. Подскажите пожалуйста как это сделать? &НаСервере Процедура СохранитьВХранилищеНажатие() Хранилище=Новый ХранилищеЗначения(ТемпературныйЛист); КонецПроцедуры &НаСервере Процедура ВосстановитьИзХранилищаНажатие() ТабДок=Хранилище.Получить(); Если ТабДок<>Неопределено Тогда Сообщить(ТабДок); КонецЕсли; КонецПроцедуры так не выходит( |
|||
1
Ринат-СПб
19.12.11
✎
11:49
|
отладчик что говорит пр получении? Какой тип у табДок?
|
|||
2
Maxus43
19.12.11
✎
11:49
|
что не выходит? ТабДок = неопределено получается?
|
|||
3
acsent
19.12.11
✎
11:55
|
Что есть Хранилище?
|
|||
4
zvivla
19.12.11
✎
11:58
|
ПРошу прощенья, вместо строки - ТабДок=Хранилище.Получить();
вот такая -ТабДок=Объект.Хранилище.Получить(); На нее собственно и ругается - Поле объекта не обнаружено (Хранилище) ТабДок=Объект.Хранилище.Получить(); Хотя в документе есть данный реквизит и когда реквизиты формы просматриваешь он тоже есть. |
|||
5
Maxus43
19.12.11
✎
11:58
|
надеюсь что "Хранилище" есть реквизит)
|
|||
6
zvivla
19.12.11
✎
12:03
|
Да, "хранилище" реквизит типа-хранилище значений, присутствует как в документе так и на самой форме. Подскажите пожалуйста, в чем может быть проблема?
|
|||
7
Maxus43
19.12.11
✎
12:07
|
У "Объект" нет "Хранилище". ЭтотОбъект может? ну или просто Хранилище.Получить();
|
|||
8
zvivla
19.12.11
✎
12:18
|
Если писать
Переменная не определена (Хранилище) Хранилище.Получить(); то прямо в конфигураторе ошибка- ТабДок=<<?>>Хранилище.Получить(); (Проверка: Сервер) Если писать ЭтотОбъект.Хранилище.Получить(); ошибка - Переменная не определена (ЭтотОбъект) ТабДок=<<?>>ЭтотОбъект.Хранилище.Получить(); (Проверка: Сервер) в процедуре &НаСервере Процедура СохранитьВХранилищеНажатие() Хранилище=Новый ХранилищеЗначения(ТемпературныйЛист); КонецПроцедуры на Хранилище не ругается |
|||
9
H A D G E H O G s
19.12.11
✎
12:29
|
(6) Между серверными вызовами оно теряется.
|
|||
10
zvivla
19.12.11
✎
12:29
|
помогите кто-нибудь)
|
|||
11
zvivla
19.12.11
✎
12:31
|
Между серверными вызовами оно теряется.
Как исправить? |
|||
12
H A D G E H O G s
19.12.11
✎
12:43
|
||||
13
zvivla
19.12.11
✎
17:10
|
Скачала вашу обработку. попробовала в своем доке
&НаСервереБезКонтекста Функция ПоместитьНаСервере(УникальныйИдентификатор,СтарыйАдресХранилища) Если ТипЗнч(СтарыйАдресХранилища)=Тип("Строка") И СтарыйАдресХранилища<>"" И ЭтоАдресВременногоХранилища(СтарыйАдресХранилища) Тогда УдалитьИзВременногоХранилища(СтарыйАдресХранилища); КонецЕсли; Хранилище=Новый ХранилищеЗначения(ТемпературныйЛист); АдресХранилища=ПоместитьВоВременноеХранилище(Хранилище,УникальныйИдентификатор); Возврат АдресХранилища; КонецФункции Тут ругается на Переменная не определена (ТемпературныйЛист) Хранилище=Новый ХранилищеЗначения(<<?>>ТемпературныйЛист); (Проверка: Сервер) ТемпературныйЛист(таблица значений) - это реквизит формы документа. В самом же документе нет такого реквизита |
|||
14
H A D G E H O G s
19.12.11
✎
17:14
|
&НаСервереБезКонтекста
заменить на &НаСервере |
|||
15
Defender aka LINN
19.12.11
✎
17:14
|
(0) А какая религия мешает сделать табличную часть?
|
|||
16
zvivla
19.12.11
✎
17:16
|
=) Вы имеете ввиду реквизит для дока или где?
|
|||
17
zvivla
20.12.11
✎
06:53
|
Уфффф кое как
Вобщем, чтобы записать в хранилище таблицу значений тз=новый ТаблицаЗначений; тз=ТемпературныйЛист.Выгрузить(); ЭтотОбъект = РеквизитФормыВЗначение("Объект"); //Сообщить(ТипЗнч(ЭтотОбъект.Хранилище.Получить())); ЭтотОбъект.Хранилище = Новый ХранилищеЗначения(тз); ЭтотОбъект.Записать(); Тз-спецально создаю, ибо если в хранилище запихивать реквизит ТемпературныйЛист, то потом при получении оказывается, что хранилище пустое Получаю значение из хранилища и присваиваю содержимое ТемпературныйЛист ЭтотОбъект = РеквизитФормыВЗначение("Объект"); Если ТипЗнч(ЭтотОбъект.Хранилище.Получить())=тип("ТаблицаЗначений") Тогда д=ЭтотОбъект.Хранилище.Получить(); ТемпературныйЛист.Загрузить(д); КонецЕсли; Все работает. Всем большое спасибо за оперативные ответы и помощь=) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |