1с8.2 Не сохраняется значение в экспортной переменной модуля объекта #430436


#0 by H A D G E H O G s
День добрый. Ситуация: Есть БП, содержит много строковых данных неограниченной длины. Вынес их в рег сведений, хочу приделать КЭШ. Модуль объекта Перем СтруктураСтроковыхДанныхКЭШ экспорт; Модуль формы: &НаСервере Проблема. В процедуре ПослеЗаписиНаСервере ЭтотОбъект.СтруктураСтроковыхДанныхКЭШ=Неопределено. Такое ощущение, что объект пересоздается. Это так?
#1 by ТелепатБот
#2 by Aprobator
Что-то я не увидел, а откуда вызывается Функция ПолучитьСтроковыеДанныеИнцидента?
#3 by TitanLuchs
Он не пересоздается, он перечитывается из данных формы, а в данных формы переменной СтруктураСтроковыхДанныхКЭШ нет
#4 by TitanLuchs
&НаСервере
#5 by Aprobator
а блин, вот слепой черт.
#6 by Aprobator
почему с формы если речь о модуле объекта?
#7 by TitanLuchs
В перовой строке объект был считан из данных формы, а в форме нет переменной модуля объекта
#8 by Aprobator
Опс,а вот кстати то что имя переменной ЭтотОбъект очень сильно похож на свойство - это вообще нормально?
#9 by Aprobator
+ понятно что в данном случае это исползуется не в модуле объекта или формы, но все таки?
#10 by TitanLuchs
Нормально, не нормально... Может автор так видит мир ))))
#11 by H A D G E H O G s
Автор почти доковырял.
#12 by Aprobator
и в чем трабла была?
#13 by H A D G E H O G s
В . Ну и в дятлизме архитекторов Тонкого клиента. Счаст отлажу код и напишу.
#14 by H A D G E H O G s
Мистец какой - то. Теперь трагедия разворачивается в модуле формы. Полностью.
#15 by H A D G E H O G s
все работает. То есть, мы спокойно вызываем другую серверную процедуру, заполняем переменную "СтруктураСтроковыхДанныхКЭШ" и ее пользуем: Для Каждого Элемент ИЗ СтруктураСтроковыхДанныхКЭШ Цикл>> Все на сервере. Тоесть, переменная модуля формы - хранится на сервере. Отлично. Но в момент ПослеЗаписиНаСервере СтруктураСтроковыхДанныхКЭШ=Неопределено; Че, опять форма пересоздалась?
#16 by H A D G E H O G s
Можно конечно пойти через ВременноеХранилище, но я все таки оптимизацией занимаюсь, а не "дырозатыканием". Где я туплю?
#17 by TitanLuchs
Вернусь с обеда - поковыряем
#18 by TitanLuchs
А про временное хранилище я тебе сразу сказал ))
#19 by H A D G E H O G s
З.Ы. Изначально, в 8.0/8.1 нас 1Ска приучала расчетную часть и работу с данными выносить в модули объектов, а работу с интерфейсом - в модуль формы. С Тонким клиентом, насколько я понял - все будет в форме. Что за фиг?
#20 by TitanLuchs
Вовсе нет, почему все в форме? Закидывай во временное хранилище из модуля формы, оттуда бери обратно.
#21 by tsr
Желательно как можно больше в форму засунуть. А так никто не запрещает и в модуле писать. Только потом с твоей нетленкой никто работать не захочет по инету
#22 by tsr
+21 В смысле на клиента, чтобы было как можно меньше передач с клиента на сервер и обратно
#23 by H A D G E H O G s
При использовании Временного Хранилища падает нахрен. Вот звиздец..
#24 by H A D G E H O G s
Спокойно, я просто туплю. Рекурсия без возврата у меня образовалась. Ждёёём..
#25 by H A D G E H O G s
Вот так взлетело:
#26 by H A D G E H O G s
Счаст мегабайтными текстами потестю ваше ВременноеГнобилище
#27 by H A D G E H O G s
Где можно Войну и Мир скачать?
#28 by H A D G E H O G s
Критически гляньте вот на это:
#29 by Sadovnikov
#30 by H A D G E H O G s
Счаст засунул "Войну и мир". Записывается/читается - на раз. А вот с прорисовкой - хня какая то. Такое ощущение, что оно постоянно перерисовывает "многострочное" поле ввода.
#31 by H A D G E H O G s
Не, Война и Мир - сильно круто. Закину модуль "Отражение ЗП в рег учете". Как раз.
#32 by H A D G E H O G s
Итак, мы видим, что при Чтении 57 % занимает строчка    АдресКэша=ПоместитьВоВременноеХранилище(СтруктураСтроковыхДанныхКЭШ,ЭтаФорма.УникальныйИдентификатор); Плохо, офигительно плохо. При ЗАПИСИ 18% СтруктураСтроковыхДанныхКЭШ=ПолучитьИзВременногоХранилища(АдресКэша); 40% Данные=ЭтаФорма[Элемент.Ключ]; - это понятно, это с клиента ползет. Но временное хранилище я юзаю только на сервере. Таким образом делаю вывод, что ВременноеХранилище мигрирует на Клиент сразу же при его изменении, а не тогда, когда я его самостоятельно попытаюсь прочитать на клиенте. Плохо. Есть у кого какие мысли, как избавится от ВременногоХранилища?
#33 by Jolly Roger
в 8.1 это реализовано, епта...
#34 by H A D G E H O G s
Попрошу не выражаться.
#35 by H A D G E H O G s
Короче, ВременноеХранилище - зло. Стал КЭШ хранить - на клиенте - на передачу с сервера на клиент - уходит 4 % времене, остальное - на запрос. Вот код: &НаСервере &НаКлиенте ЭтаФорма.СтруктураКЭША  - реквизит формы с типов "Произвольный"
#36 by H A D G E H O G s
И последняя оптимизация: &НаКлиенте &НаКлиенте
#37 by TitanLuchs
Как клиент себя чувствует? Память не отжирается, тормозов нет при загрузке "Войны и мира"?
#38 by H A D G E H O G s
Хреново. И проблема не в памяти, а в отображении (текста) - обновлении формы.
#39 by H A D G E H O G s
Попробуй гиганский текст в многострочное поле вставить и засейвь.
#40 by TitanLuchs
Гигантский начинается от скольки гиг?
#41 by H A D G E H O G s
Гы.. 3 метра.
#42 by TitanLuchs
Мож лучше его тогда открывать и редактировать не в форме, а во внешнем приложении, блокноте например?
#43 by ptiz
из документации: В серверной переменной формы невозможно сохранить данные между двумя вызовами серверной стороны формы.
#44 by H A D G E H O G s
Ааа. Слабаки. Уникальный собственный ГУЙ 1Сv8 не может нормально вывести текст размером 3 метра. Что 8.1, что 8.2
#45 by H A D G E H O G s
Прошу подтвердить
#46 by TitanLuchs
Согласен, тоже постоянно форма тупит, когда сайт редактирую. А там значительно меньше 30х метровю
#47 by H A D G E H O G s
Прям хоть свои ActiveX - вставляй...
#48 by TitanLuchs
А 8.2 не вставишь - не поддерживается. Только открывать во внешнем приложении.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С