Имя: Пароль:
1C
1С v8
временное хранилище 8.2
0 nbIx
 
24.11.11
13:01
Народ, где физически находится временное хранилище в 8.2, в какой папке?
1 SerMaxim
 
24.11.11
13:04
В сервере приложений
2 MaxS
 
24.11.11
13:06
(0) в желтой
3 Maxus43
 
24.11.11
13:06
адрес = ПоместитьВоВременноеХранилище("123");
Сообщить("Ах вот ты где... " + адрес);
4 nbIx
 
24.11.11
13:10
(1) В памяти сервера? Или все таки в каком-нибудь каталоге?
5 Maxus43
 
24.11.11
13:16
(4) чего непонятного в (3)? есно в каталоге
6 DmitrO
 
24.11.11
13:28
в памяти сервера
7 Maxus43
 
24.11.11
13:30
хм. я конечно на файлово
8 Maxus43
 
24.11.11
13:30
*вой проверял, на клиент-серверном может и не так
9 Jaffar
 
24.11.11
13:35
(4) смотря что называть памятью сервера :-)
многие люди и жесткий диск называют памятью...
10 nbIx
 
24.11.11
13:36
(6) Точняк? Тогда зашибись.
(9) Так где, на жестком диске или оперативной памяти?

Еще проблема, не могу форму отчета получить, которую зарегил не сервере...
Объект отчета получает, а вот метод ПолучитьФорму возвращает неопределено.
Так же не работает ОткрытьФорму
11 DmitrO
 
24.11.11
13:39
(7)в файловой, при прямом подключении к базе - вероятно в памяти клиента
в файловой, при подключении к базе через веб-сервер - вероятно в памяти веб-сервера
(9) под памятью я имею в виду именно оперативную память
12 H A D G E H O G s
 
24.11.11
13:45
tmp шник какой-нибудь хреначит
13 nbIx
 
24.11.11
13:48
(12) Вполне возможно.

Можно же положить во временное хранилище и пару гигов файлик.
14 H A D G E H O G s
 
24.11.11
13:52
Судя по монитору - в файле 1Cv8tmp.1CD
что в папке базы создается
15 H A D G E H O G s
 
24.11.11
13:53
В клиент-серверной - отсылает на сервер, что логично.
Сервер пока не отследить, на нем толпа сидит.
16 DmitrO
 
24.11.11
13:56
Во временное хранилище можно положить такие типы данных, которые записать в файл не возможно в принципе.
17 H A D G E H O G s
 
24.11.11
13:57
(16) Ммм?
18 QLgKR
 
24.11.11
13:57
временное хранилище это файл, в любом режиме.

(16) какие же например?
19 H A D G E H O G s
 
24.11.11
13:59
(18) Че так? Откуда инфа?

p.s. Временное валится уже на 600 мегабайтах (вроде бы столько).
20 DmitrO
 
24.11.11
14:02
(18)мутабельное, COMОбъект
21 Jaffar
 
24.11.11
14:03
(10) "Так где, на жестком диске или оперативной памяти? "
имхо - на диске в каком-нибудь временном файле типа (12). иначе я с трудом себе представляю, как можно реализовать (3).
22 Jaffar
 
24.11.11
14:04
(20) и чо - у них нет двоичного представления (образа памяти)?
23 QLgKR
 
24.11.11
14:07
(19)
1. у разработчиков платформы спрашивал
2. Если бы хранилось в оперативке, то о резервировании кластеров можно было бы и не говорить. Перезагрузили и нет хранилища, а по факту работает.
24 H A D G E H O G s
 
24.11.11
14:10
(23)
<<Если бы хранилось в оперативке, то о резервировании кластеров можно было бы и не говорить. Перезагрузили и нет хранилища, а по факту работает.>>

Воот, отлично!
25 H A D G E H O G s
 
24.11.11
14:11
(20) Я те COM объект спокойно сохраню на диск.
Мутабельное, имея к нему доступ как к TObject - тоже
26 H A D G E H O G s
 
24.11.11
14:12
(23) А как ведет себя COM объект? Слетает?
27 DmitrO
 
24.11.11
14:15
(22)оно есть, но получить его может только сам объект
(23)тогда возможно то, что имеет интерфейс сериализации они сериализуют.. но тогда это не эффективно
(25)ты ошибаешься
28 QLgKR
 
24.11.11
14:15
(20)
стоит подождать минут 20 и думаю, что получить уже ничего не получится
29 H A D G E H O G s
 
24.11.11
14:17
(28) Почему такой интервал? Почему нельзя его настроить?
30 QLgKR
 
24.11.11
14:17
(27)
Именно, только то что сериализуется и можно поместить и восстановить из временного хранилища
31 QLgKR
 
24.11.11
14:20
(28)
это только касается тех объектов, которые не должны помещаться во временное хранилище, например, можно поместить ОтчетОбъект и потом его даже получить. Но через какое-то время, будет возвращаться только Неопределено.

20 мин это максимум, так устроен механизм кэширования в платформе, может и раньше.
32 DmitrO
 
24.11.11
14:21
(31)хмм.. если всего 20 мин.. зачем тогда вообще сериализовать? почему не хранить в памяти?
33 QLgKR
 
24.11.11
14:24
(32)
то что можно сохранять объекты, которые не должны сохранятся, это скорее побочный эффект. И то что он будет дальше работать, никто не гарантирует.

Нормальные объекты при привязке к идентификатору формы хранятся пока жива форма.
34 DmitrO
 
24.11.11
14:25
(31)если всего 20 мин.. зачем ради переключения (а оно ведь при отказе только) на другой процесс сериализовать на диск?
да и о каком диске идет речь, господа удавы, в одном кластере может быть несколько физических серверов 1С (диски у них разные).
35 QLgKR
 
24.11.11
14:30
(34)
думаю, что при переключении, COMОбъект потеряется.
Могу только предположить, что сам COMОбъект не сохраняется, а сохраняется только ссылка на него, в итоге счетчик ссылок не обнуляется и объект держится в памяти, а при получении из временного хранилища мы получаем ссылку и может дальше работать.
36 H A D G E H O G s
 
24.11.11
14:30
гхм, интрига!
37 H A D G E H O G s
 
24.11.11
14:31
Могу только предположить, что сам COMОбъект не сохраняется, а сохраняется только ссылка на него

Это как бы очевидно.
38 vmv
 
24.11.11
14:43
39 DmitrO
 
24.11.11
14:43
Имхо, все данные сеанса (в том числе и все что уложили во временное хранилище) хранятся в памяти, при переключении на другой рабочий процесс (который может случится и на другом сервере) данные сеанса восстанавливаются в рамках другого процесса (модуль сеанса отрабатывает заново). Клиент какбы ничего не замечает, пока не продолжит работу с ранее сохраненными данными во временном хранилище.
В платформе, кстати, есть специальные методы чтобы определить жив ли еще ранее полученный адрес, если писать код с учетом этой проверки (по-сути каждый раз перед использованием адреса проверять его, и если протухло, то либо восстанавливать либо начинать заново), то получится вполне отказоустойчиво.
40 apokrit
 
24.11.11
14:49
(39) Все данные сеанса хранятся на диске и пишутся с flush'ом
Проверить очень просто если нажать на reset на сервере, то они ни куда не денутся.
41 vmv
 
24.11.11
14:49
деструкторы всегда были слабым звеном последних платформ 1С.

да что там картинки и временное, даже просто если в секрверной процедуре создавать сложное дерево, напрмер так

ДЗ = Новый ДеревоЗначений;

ДЗ = ЗаполнениеАдскогоДерева();

ЗначениеВРевизитФормы(ДЗ, ИмяРеквизита);


по при вызове этой серверной процедуцры из клиентской, например, при перезаполнении дерева формы, выпадала ошибка типов при передаче управления с сервера на клиент.

Выход прост, в конце сервеной процедуры писать

ДЗ = ЗаполнениеАдскогоДерева();
ДЗ = 0;

Вывод тоже прост, к сожалению деструкторы и сборшики мусора - это последнее о чем думают разработчики платформы, а должно быть хотя бы вторым.
убрать за собой - святое дело)
42 apokrit
 
24.11.11
14:51
(34) Не тему разных дисков - хранится все в менеджере, в сервисе сеансовых данных.
Если сервисов сеансовых данных несколько - сеансы распределяются между ними.
Если используется резервирование кластеров - данные реплицируются на резервные кластеры.
43 QLgKR
 
24.11.11
14:55
(41)
а полный текст процедуры можно увидеть.
может ДЗ это параметр процедуры?
44 nbIx
 
24.11.11
15:01
Господа, никто не знает почему метод внешней обработки
ПолучитьФорму() возвращает неопределено.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс