|
Временное хранилище | ☑ | ||
---|---|---|---|---|
0
Как же быть
12.08.16
✎
17:41
|
Добрый вечер, товарищи.
Научите пользоваться временным хранилищем? Почитал СП, пару сайтов, вроде все элементарно. На практике: &НаКлиенте УникальныйИдентификатор = Новый УникальныйИдентификатор; Хранилище = ПоместитьВоВременноеХранилище(Счет, УникальныйИдентификатор); &НаСервере Счет = ПолучитьИзВременногоХранилища(Хранилище); Переменная хранилище не определена. |
|||
1
Rasputin Dvaputin
12.08.16
✎
17:46
|
Ну так ты функции "ПолучитьИзВременногоХранилища" скармливаешь переменную "Хранилище", которую никак не инициализируешь. О чем тебе 1С и рассказывает. Туда нужно запихать твой УникальныйИдентификатор, который ты использовал на клиенте в ПоместитьВоВременноеХранилище.
|
|||
2
Rasputin Dvaputin
12.08.16
✎
17:49
|
Хотя нет я наврал
|
|||
3
Как же быть
12.08.16
✎
17:49
|
(1) То-есть я должен на процедуру клиента передать УникальныйИдентификатор?
|
|||
4
Как же быть
12.08.16
✎
17:50
|
*В смысле на процедуру сервера
|
|||
5
Rasputin Dvaputin
12.08.16
✎
17:52
|
Нет у тебя все правильно. То что ты поместил в переменную "Хранилище" нужно передать на сервер. Это адрес где лежит твой счет. Судя по ошибке ты как-то неправильно пытаешься этот адрес на сервер передать.
Должно быть как-то так: &НаКлиенте Процедура ПроцедураНаКлиенте() УникальныйИдентификатор = Новый УникальныйИдентификатор; Хранилище = ПоместитьВоВременноеХранилище(Счет, УникальныйИдентификатор); ПроцедураНаСервере(Хранилище); КонецПроцедуры &НаСервере Процедура ПроцедураНаСервере(Адрес) Счет = ПолучитьИзВременногоХранилища(Адрес); КонецПроцедуры |
|||
6
Как же быть
12.08.16
✎
17:59
|
(5) А. Ну я понял, спасибо! Я просто надеялся, что адрес будет волшебным способом передан во все процедуры на форме...Передовать его из процедуры в процедуру, конечно, не так интересно, но суть работы ясна)
|
|||
7
Как же быть
12.08.16
✎
18:01
|
А может кто-нибудь подскажет тогда самый простой способ создать переменную, к которой можно обратиться из любой процедуры? (УФ)
|
|||
8
Зая Бусечка
12.08.16
✎
18:17
|
(7) Параметры сеанса?
|
|||
9
Как же быть
12.08.16
✎
18:19
|
А во внешней обработке?
|
|||
10
PLUT
12.08.16
✎
18:21
|
(9) тады константа
|
|||
11
Rasputin Dvaputin
12.08.16
✎
18:30
|
Ну для всех серверных процедур можно например так (если конфигурацию очень не хочется изменять и использовать всякие константы):
ХранилищеОбщихНастроек.Сохранить("СтрокаИдентификатор", "СтрокаКлюч", <ЧтоСохраняем>,,"СтрокаКлючВместоИмениПользователя"); Переменная = ХранилищеОбщихНастроек.Загрузить("СтрокаИдентификатор", "СтрокаКлюч",,"СтрокаКлючВместоИмениПользователя"); Между клиентом и сервером естественно не получится. Это же могут быть физически разные машины, тут без явной печедачи не получится. Контекст-с |
|||
12
vicof
12.08.16
✎
18:33
|
А что, реквизиты формы уже отменили?
|
|||
13
Fram
12.08.16
✎
18:36
|
(8) это ошибка дизайна. у тебя даже мысли такой не длолжно возникнуть
|
|||
14
Fram
12.08.16
✎
18:37
|
пардон (13) -> (7)
|
|||
15
Как же быть
12.08.16
✎
18:48
|
На самом деле, способ (11) - шикарен. Можно один раз передать необходимое данное на сервер и сделать его почти вседоступным. Мою проблему решило, большое спасибо!
А реквизиты формы - норм тема, но из-за моей криворукости, к сожалению, не всегда работают( |
|||
16
Fram
12.08.16
✎
18:54
|
(15) это гомнокод! следующий же нормальный программист который столкнется с твоим кодом заставит тебя икать сильно долго и громко.
|
|||
17
Zhuravlik
12.08.16
✎
18:56
|
Я поступаю так:
1) Добавляю реквизит формы "СтруктураВспомогательныхДанных", тип - призвольный 2) ПриСозданииНаСервере - вызываю метод "ИнициализироватьСтруктуруВспомогательныхДанных()", в нем заполняю все нужные значения: ЭтаФорма.СтруктураВспомогательныеДанные = Новый Структура(); ЭтаФорма.СтруктураВспомогательныеДанные.Вставить("ОсновнойПартнерЗаказа", ОбщегоНазначения.ПолучитьНастройку(Объект.Ссылка, "ОсновнойПартнерЗаказа")); и т.п. главное - не совать туда недоступные на клиенте типы. 3) В процессе работы обращаюсь к сохраненнному значению настройки: Объект.Партнер = ЭтаФорма.СтруктураВспомогательныеДанные.ОсновнойПартнерЗаказа; |
|||
18
Как же быть
12.08.16
✎
19:01
|
(16) Гомнокодом было создание УФ, из-за которого теперь каждый выкручивается кто как может, ибо универсального способа не терять нужные данные при большом количестве процедур\функций в великом СП нет.
|
|||
19
Как же быть
12.08.16
✎
19:01
|
(17) Спасибо за еще один способ.
|
|||
20
vicof
12.08.16
✎
19:03
|
Пффф
|
|||
21
Fram
12.08.16
✎
19:04
|
(18) в чем проблема передавать в качестве параметров?
|
|||
22
vicof
12.08.16
✎
19:04
|
Просто у тебя руки из жпо, уф тут ни при чем
|
|||
23
Как же быть
12.08.16
✎
19:04
|
Я знаю, что многие сейчас подумают про меня что-то плохое, но мне, как человеку только что перешедшему на УФ пока с ним не смириться(
|
|||
24
Как же быть
12.08.16
✎
19:04
|
Ну или не подумают, а напишут))
|
|||
25
Zhuravlik
12.08.16
✎
19:04
|
(18) А вот это зря...
|
|||
26
Как же быть
12.08.16
✎
19:05
|
В общем, я выяснил, что хотел, спасибо всем.
|
|||
27
Fram
12.08.16
✎
19:08
|
(26) даже если в данном случае твоя заплатка сработает, подумай о том, что ты будешь показывать/рассказывать будущему работадателю на собеседовании, если привикнешь кодить не понимая архитектуры
|
|||
28
Как же быть
12.08.16
✎
19:11
|
(27) Я согласен, со временем нужно будет многое освоить. Но когда с этим только-только сталкиваешься, невольно впадаешь в гнев. Прошу прощения за резкость.
|
|||
29
vicof
12.08.16
✎
19:23
|
(28) так гнев-то от собственного незнания, а не от того, что кто-то уф сделал
|
|||
30
Как же быть
12.08.16
✎
19:31
|
(29) Не, ну вам, как уже разобравшемся в этой идеи людям, она нравится?
|
|||
31
vicof
12.08.16
✎
19:34
|
(30) да
|
|||
32
Рэйв
12.08.16
✎
19:35
|
(0)Мне оно не нравится. Зоипешься работать с сервером.
Я лучше в файлах тмп хранить буду |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |