|
УФ. Как сделать переменную доступной на клиенте и на сервере. Что бы не терялась | ☑ | ||
---|---|---|---|---|
0
Max1986
18.04.12
✎
09:33
|
Прошу форумчан помочь в таком вопросе.
Есть ТЗ, в которую в процедуре &НаСервере вводятся некие параметры. Однако при следующем вызове другой процедуры &НаСервере эти параметры теряются и переменная становится опять Неопределено. Подскажите, где мне определить эту переменную, что бы в ней хранились данные при вызове между разными процедурами. |
|||
1
ДенисЧ
18.04.12
✎
09:34
|
В параметрах сеанса
|
|||
2
zak555
18.04.12
✎
09:34
|
ТЗ доступно только на сервере
|
|||
3
zak555
18.04.12
✎
09:34
|
(1) +1
хранилище =) |
|||
4
Нуф-Нуф
18.04.12
✎
09:35
|
ЦПХ.
Центральное Переменное Хранилище |
|||
5
Ненавижу 1С
гуру
18.04.12
✎
09:35
|
(0) хранить ее в объекте, а не локальной в методе
|
|||
6
vmv
18.04.12
✎
09:37
|
если не городить параметры в форме, то создать рексизит "список значений" например "рекСПараметры"
ПриСозданииНаСервере() иницализировать его значениями и получать их потом где хочеть и на клиенте и на сервере через индекскс списка |
|||
7
Max1986
18.04.12
✎
09:39
|
Ну пускай храниться только на сервере, главное что бы не терялось.
все равно реквизит? |
|||
8
vmv
18.04.12
✎
09:39
|
если речь о методах глобальных модулей, то коль идея с параметрами сеанса не прельщает, то создать свой РС
|
|||
9
Нуф-Нуф
18.04.12
✎
09:40
|
долбанные извращенцы
|
|||
10
Ненавижу 1С
гуру
18.04.12
✎
09:40
|
(7) откуда ты обращаешься к ней? опиши
|
|||
11
zak555
18.04.12
✎
09:41
|
(7) что в ТЗ ?
|
|||
12
Defender aka LINN
18.04.12
✎
09:41
|
(0) Временное хранилище
|
|||
13
Vladal
18.04.12
✎
09:41
|
(9) Скажи, как правильно?
|
|||
14
vmv
18.04.12
✎
09:44
|
временное хранилище не заслуживает доверия в контексте рабочего дня, просто хранилище слищком тормозное в циклицеских методах - я за извращения)
|
|||
15
Stepa86
18.04.12
✎
09:46
|
а чо бы реквизитом формы не хранить?
|
|||
16
Vladal
18.04.12
✎
09:47
|
(15) он доступен на сервере?
|
|||
17
Defender aka LINN
18.04.12
✎
09:48
|
(15) И таскать его туда-сюда между клиентом и сервером, да?
(14) Какого "дня", тут же ж явно в пределах работы с формой все происходит |
|||
18
vmv
18.04.12
✎
09:48
|
(15) пока автор не озвучил область видимости, область использования и контексты переменной - будем смотреть в хрусталь
|
|||
19
Max1986
18.04.12
✎
09:49
|
(10)обращаюсь к ней в Модуле объекта и в модуле формы в процедурах &НаСервере
Кстати, через РС и ЦПС - оценил идею!!! |
|||
20
vmv
18.04.12
✎
09:51
|
(14) если в пределах работы с формы, то я за список значений, ведь таких значений может быть вагон и плотить тучу параметров формы или реквизитов плоха.
временное хранилище или просто хранилище не люблю - это костыль изобретенный 1С для расширения областей видимости и как всякий костыль - часто хромает |
|||
21
Defender aka LINN
18.04.12
✎
09:53
|
(19) Хосспади... А в модуле объекта-то тебе это зачем?
Короче. Описывай задачу давай, у меня уже хрустальный шар раскалился, сейчас стол прожжет. |
|||
22
vmv
18.04.12
✎
09:53
|
"в Модуле объекта и в модуле формы"
значит контекст формы для хранения этой сущнисти использовать не стоит. тогда параметры сеанса или РС |
|||
23
Ranger_83
18.04.12
✎
09:54
|
||||
24
MadHead
18.04.12
✎
09:54
|
Я за параметр сеанса, можно еще как-то через общий модуль с повторным использованием возвращаемых значений, но я так не пробовал
|
|||
25
Max1986
18.04.12
✎
09:57
|
Хорошо, пусть будет область действия только Модуль объекта.
Я объявил в нем Перем ТЗ_врем. Выгрузил в процедуре Проц1() туда данные. Дальше вернулись в клиент....работаем. Вызываем Проц2(), а переменная ТЗ_врем = Неопределено |
|||
26
Stepa86
18.04.12
✎
09:58
|
(17) и скока это минут занимает? наверно десятки
(16) на форме - да если тз нужна в рамках одного вызова, то ее можно и через параметры потаскать, если нужно хранить данные между вызовами - то я за реквизит формы, его можно еси чо на форму кинуть для отладки/возможности изменения. Если эти данные еще и при записи/проведении нужны, то или через допсвойства прокидывать или хранить на объекте (24) модуль с галочкой "Повторное использование возвращаемых значений" отдельно хранит вызовы с клиента и с сервера (причем для клиента вроде б не сохраняет, но не уверен). В обычном режиме упр. форма с сервера обращается к серверным сохраненным значениям, а модуль объекта может и к клиентским |
|||
27
Defender aka LINN
18.04.12
✎
09:59
|
(25) За-да-чу.
|
|||
28
vmv
18.04.12
✎
10:02
|
(26) если мы говорим модуль объекта, то сразу понимаем, что его методы могут испольняться без учета всяких форм, т.е. формы могут не открыаться и не использоваться никогда.
а доп. свойства откуда прочитаешь с потолка? все равно нужна сущость существущая уже после запуска приложения или в базе по которой эти доп. своства можно инициализировать |
|||
29
Max1986
18.04.12
✎
10:04
|
(25)Обработка выводит в свою ТЧ таблицу.
Пользователь правит данные-например "корректировка заказов". Мы должны вернуть назад откорректированные данные и обработать их |
|||
30
Stepa86
18.04.12
✎
10:04
|
(28) от задачи зависит, доп свойства можно заполнять/читать в обработчиках формы с постфиксом "НаСервере"
|
|||
31
Stepa86
18.04.12
✎
10:04
|
(29) эээмм.. может ТЧ и вернуть?
|
|||
32
Max1986
18.04.12
✎
10:07
|
(31)нельзя - она свернута по ряду параметров + наложен отбор. Я могу вернуь только Отбор, которыый наложен
|
|||
33
Stepa86
18.04.12
✎
10:08
|
мой телепатический модуль подвергся когнитивному диссонансу и взорвался =(
|
|||
34
Max1986
18.04.12
✎
10:09
|
Поясните, почему Перем ТЗ_врем определенная в модуле объекта терятся после того как покинули его. При повторном входе - опять она неопределена.
|
|||
35
Ranger_83
18.04.12
✎
10:11
|
Оптимально будет через временное хранилище передавать ТЧ для корректировки данных
|
|||
36
Ненавижу 1С
гуру
18.04.12
✎
10:11
|
(34) опиши ее в модуле объекта
|
|||
37
Defender aka LINN
18.04.12
✎
10:12
|
(34) Блеать, ты опишешь задачу или нет?
|
|||
38
vmv
18.04.12
✎
10:13
|
(32)
обойти данные формы коллекция - если нужно вернуть отфильтрованные строки (клиент и сервер) выгрузить тз - если нужно вернуть всю откорректированную тз если нужна передача на клиент с сервера транформировать строки в дмерную структуру это решение в лою - не слишком оптимально, но взлетит и часто юзается в типовых для небольших таблиц. Если же размеры таблиц тысячи строк то можно извращаться дальше |
|||
39
badboychik
18.04.12
✎
10:13
|
раз пошла такая пьянка - сериализуй и сохрани в текстовом файле
|
|||
40
Ranger_83
18.04.12
✎
10:13
|
(34)
&НаКлиенте Перем ТЗ_врем |
|||
41
Max1986
18.04.12
✎
10:13
|
>> Оптимально будет через временное хранилище передавать ТЧ для корректировки данных
Это как? Киньте пожалуста пример кода - никогда не делал. ТЗ долго заполняется |
|||
42
Max1986
18.04.12
✎
10:14
|
(36)>> опиши ее в модуле объекта
Описана - не помогает. |
|||
43
Ranger_83
18.04.12
✎
10:15
|
Можешь посмотреть подробный пример в книге "Разработка управляемого интерфейса" из серии проф.разработки на с.701
|
|||
44
vmv
18.04.12
✎
10:15
|
(41) ТЗ клиент не поймет все равно, ему нужна более простая сущность, как правило структура
|
|||
45
Ненавижу 1С
гуру
18.04.12
✎
10:16
|
(42) не верю
|
|||
46
Ranger_83
18.04.12
✎
10:17
|
(43)+у меня только бумажная версия.
(41)Что не поймет? |
|||
47
Max1986
18.04.12
✎
10:19
|
Короче. многие запутались.
Мне надо хранить только на сервере - ИСХОДНУЮ ТЗ. в некой процедуре модуля объекта я ее заполнил, а потом вернулся через какое то время - она Неопределена. |
|||
48
Defender aka LINN
18.04.12
✎
10:20
|
(45) Тонкий клиент, он ломает неокрепшие умы.
В общем, я с этим дуриком закончил на сегодня. Сидит, тупит, 2-х слов не в состоянии написать. Нахрен такому помогать? |
|||
49
vmv
18.04.12
✎
10:21
|
(48) истеричка, черешни зацвели - может запах на тебя так влияет)
|
|||
50
Defender aka LINN
18.04.12
✎
10:23
|
(49) На меня идиоты так влияют :)
|
|||
51
Max1986
18.04.12
✎
10:23
|
(48)пардон - а кроме флуда вы что то сказали?
|
|||
52
Defender aka LINN
18.04.12
✎
10:24
|
(51) Я тебе, придурок, уже в четвертый раз говорю: опиши ЗАДАЧУ. Не кривой костыль, который ты придумал в качестве решения, а ЗА-ДА-ЧУ. Задачу. Это какбе сам процесс, который должен произойти.
Намек уловил? |
|||
53
vmv
18.04.12
✎
10:26
|
(47)
Наводящие вопросы 1. В каком обработчике модуля объекта произодиться ИНИЦИАЛИЗАЦИЯ Тз для дальнейшей корректировки этой Тз в форме на клиенте 2. В каких обработчиках модуля объекта происходит обработка откоректированной на клиенте и якобы "возвращенной" Тз. 3. Какой формат "возврата" Тз в модуль объекта: фильтрованная, все строки, правило обработки в коде |
|||
54
Max1986
18.04.12
✎
10:26
|
(52)уйди из темы - ты неадеватный. нервы полечи, флудераст
|
|||
55
Defender aka LINN
18.04.12
✎
10:27
|
(54) Ч.Т.Д.
Идиёт, не умеет читать. |
|||
56
Ненавижу 1С
гуру
18.04.12
✎
10:28
|
(54) будь мужиком, опиши задачу
|
|||
57
Ranger_83
18.04.12
✎
10:28
|
(47)Если только на сервере,тогда временное хранилище самое то,поскольку оно на сервере и хранится.Не надо гонять траффик на клиента
|
|||
58
Trucker
18.04.12
✎
10:29
|
(52) Мммм.. как я понял, чел хочет сохранить ТЗ в переменой модуля обьекта, как в хранилище.
То есть, опосля возврата в модуль объекта, взять из переменой ранее сохраненную ТЗ. Так? |
|||
59
Max1986
18.04.12
✎
10:29
|
(53)иничиализация в некой процедуре - ЗаполнитьТЗ.
Эта ТЗ далее свертывается и загружается в ТЧ обработки. Возращаться - ничего не возращается - у меня есть ТЧ обработки, откорректированная пользователем + Отбор. Я должен сравнить Эту ТЧ с Исходной ТЗ, которую выгрузил |
|||
60
Max1986
18.04.12
✎
10:30
|
(58) ДА!
|
|||
61
Ranger_83
18.04.12
✎
10:30
|
Defender aka LINN :)))
|
|||
62
Ненавижу 1С
гуру
18.04.12
✎
10:30
|
ТЗ сделай переменной обработки - не метода! не формы! модуля обработки!
|
|||
63
Max1986
18.04.12
✎
10:31
|
(62)сделано - не помогает
|
|||
64
Max1986
18.04.12
✎
10:32
|
(57)это как на 701 странице?
|
|||
65
Ranger_83
18.04.12
✎
10:32
|
(63)Сцу ко прочитай книжку на 701 старнице блеать:)
|
|||
66
Ненавижу 1С
гуру
18.04.12
✎
10:33
|
(63) процедура ЗаполнитьТЗ - это метод обработки?
объект обработки один и тот же? |
|||
67
Max1986
18.04.12
✎
10:34
|
(65)Прочитал - там 2 строки. Типа использовать Временное хранилище. И все!!!
Примера нет |
|||
68
Ranger_83
18.04.12
✎
10:36
|
(67)Читай от "Второй вариант решения" и далее по тексту
|
|||
69
Max1986
18.04.12
✎
10:38
|
(68)Там написано Записать данные во Временное хранилище.
А как? |
|||
70
vmv
18.04.12
✎
10:38
|
надо Радченко позвать в ветку, чтобы указал абзац и объяснил чо он там накалякал)
|
|||
71
Max1986
18.04.12
✎
10:39
|
(66)процедура ЗаполнитьТЗ - это просто Процедура случайно вызываемая.
|
|||
72
Ненавижу 1С
гуру
18.04.12
✎
10:42
|
(71) пистец, как ей тогда передается ТЗ?
|
|||
73
Max1986
18.04.12
✎
10:46
|
(71)
Перем ТЗ_врем объявлена в начале. Мы в нее загружаем ТЗ. ТЗ_врем = РезультатЗапроса.Выгрузить(); |
|||
74
Max1986
18.04.12
✎
10:46
|
(73)-->(72)
|
|||
75
Max1986
18.04.12
✎
10:48
|
Прочитал.
ПоместитьВоВременноеХранилище(<Данные>, <Адрес>) А Адрес - что передавать? Если уникальный идентификатор формы - то мне же не в форме хранить! |
|||
76
vmv
18.04.12
✎
10:50
|
описание задачи
есть некая обработка в которой есть некий интерфейс выбора объектов, допустим это справочник "Рогатый скот" мы там выбрали "Дойная корова "Глафира"" жмякаем копопку на форме показать "надои за месяц" в модуле обработки присходить вызов экспортной серверной процедуры выбранного объекта Тз = ВыбранныОбъект.ПолучитьНадои("Месяц"); в таюлицу формы обработки загружается полученная таблица доярка правит цам литры и кроит себе в карман жмякаям кнопку на форме обработки "записать надои за месяц" в модуле обработки присходить вызов экспортной серверной процедуры выбранного объекта ВыбранныОбъект.ЗаписатьНадои(); И вот тут автор не может получить ту Тз которая была в первом вызове, а ТЧ обратки он видит. вот так на примере всяких скотов можно просто описать задачу без истерик, просто нужно быть телепатом и все |
|||
77
vmv
18.04.12
✎
10:53
|
(75) адрес хранилища это строка, передается через параметры методов как првавило
|
|||
78
Max1986
18.04.12
✎
10:55
|
(76)один в один задача - верно описана
|
|||
79
Max1986
18.04.12
✎
10:57
|
(76)осталось узнать как сохранить ТЗ.
Мучаю ВременноеХранилище - не понял как Адрес задать. |
|||
80
Max1986
18.04.12
✎
11:00
|
Конечно будите бить - но внятно поясните - почему я не могу увидеть ТЗ заполненную при первом вызове - описано в (76), когда вторично в обработку проваливаюсь?
|
|||
81
Ranger_83
18.04.12
✎
11:21
|
(69)у меня в книге написано как,целиком и полностью приведен листинг процедур.А ты что читаешь,скан чб чтоль?:)
|
|||
82
Max1986
18.04.12
✎
11:23
|
(81)У меня - нет - примеры разные до этого. Но там нет примера
|
|||
83
vmv
18.04.12
✎
11:37
|
// АдресВХ - создать параметр формы типа строка в форме обработки
// Первый вызов хрен знает где в модуле формы // Инициализация Тз и // сохранение во временном хранилище полученной Тз // передаем адрес ВХ в модуль формы как параметр Тз = Объект.ПолучитьНадои("Месяц"); Параметры.АдресВХ = ПоместитьВоВременноеХранилище(Тз, Новый УникальныйИдентификатор()); // Второй вызов хрен знает где в модуле формы обработки // Получение из временного хранилища полученной Тз ВыбранныОбъект.ПолучитьНадои(Параметры.АдресВХ); в модуле объекта Процедура ПолучитьНадои(АдресВХ) Экспорт Тз = ПолучитьИзВременногоХранилища(АдресВХ); Тч = ЭтотОбъект.Надои; // мутим // ОтправитьЦистернуСливок("vmv"); КонецПроцедуры фенита |
|||
84
vmv
18.04.12
✎
11:40
|
АдресВХ можно сделать и реквизитом формы обработки(тип строка) для простоты, чтобы он был доступен в любом контексте
|
|||
85
vmv
18.04.12
✎
11:42
|
второй вызов
Объект.ЗаписатьНадои(Параметры.АдресВХ); если автор еще начнет ныть, что не понятно, то только разлененка его на части будет верным решением проблемы |
|||
86
Max1986
18.04.12
✎
11:44
|
(85)спасибо! Четко и понятно!
Я уже сам сделал. Правда через реквизит объекта - где строку храню. У вас красивее. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |