|   |   | 
| 
 | УФ. Как сделать переменную доступной на клиенте и на сервере. Что бы не терялась | ☑ | ||
|---|---|---|---|---|
| 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)спасибо! Четко и понятно!
  Я уже сам сделал. Правда через реквизит объекта - где строку храню. У вас красивее. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |