#0
by ШангриЛа
Есть обработка. В модуле объекта обработки заполняется табличная часть обработки у которой есть колонка "АдресВремХранилища" (Строка). В цикле перебираются строки табличной части, по каждой строке создается ТабличныйДокумент с картинками. Табличный документ помещается во временное хранилище и адрес хранилища записывается в колонку строки табличной части. Далее, управление переходит на клиента. В итоге, в форме получается заполненная табличная часть в каждой строке которой есть строка с адресом временного хранилища. Пользователь кликает по строке табличной части, считывается табличный документ из временного хранилища и открывается. Это можно реализовать с помощью ПоместитьВоВременноеХранилище или по окончанию работы процедуры модуля объекта, временное хранилище уничтожится?
#5
by ИсчадиеADO
Параметры: Тип: Произвольный. Данные, которые необходимо поместить во временное хранилище. Тип: УникальныйИдентификатор; Строка. Адрес во временном хранилище, по которому надо поместить данные. Или уникальный идентификатор формы, во временное хранилище которой, надо поместить данные и вернуть новый адрес. В случае, если передается УникальныйИдентификатор формы, то значение будет автоматически удалено после закрытия этой формы. Если параметр не указан, помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
#6
by ШангриЛа
В модуле объекта: Для каждого СтрокаТаб Из ТабличнаяЧасть Цикл Что надо сделать, чтобы потом хранилище жило пока не закроется форма?
#9
by ИсчадиеADO
"В случае, если передается УникальныйИдентификатор формы, то значение будет автоматически удалено после закрытия этой формы" це
#11
by ШангриЛа
Меня смущает то, что если бы я это делал в модуле формы, то сомнений бы никаких не возникало. А я хочу это делать в модуле объекта. Разве разницы нет?
#12
by ИсчадиеADO
главное, чтобы УИД жил нужное тебе время. Можешь в любой модуль передать УИД как параметр, главное чтобы он объявлялся и жил на клиенте
#13
by ШангриЛа
То есть в запуск процедуры модуля объекта передаю ЭтаФорма.УникальныйИдентификатор. А в модуле объекта запихиваю его при создании врем. хранилища?
#14
by ШангриЛа
попробовал на практике, спасибо. Надеюсь, что пока жив УИД формы, все будет ништяк :)
#15
by ШангриЛа
Набросок: В ФОРМЕ: &НаКлиенте В МОДУЛЕ ОБЪЕКТА ОБРАБОТКИ: Думаю, что перед перезапуском заполнения табличной части надо еще применять УдалитьИзВременногоХранилища. А то юзер 50 раз нажмет у обработки кнопку "Сформировать" и сервер ляжет.
#16
by ШангриЛа
Спасибо всем за помощь и советы. Если есть что еще добавить, с удовольствием послушаю.
#17
by ШангриЛа
Еще вопрос. Есть ли смысл сохранять ТабДок в файл на сервере, запихивать его во врем хранилище или лучше на клиенте сохранить?
#18
by ШангриЛа
+ В смысле, что на сервере: - сохраню табличный документ в файл - файл запихаю как двоичные данные во временное хранилище - передам на клиент адрес хранилища. Если надо, то потом просто получу двоичные данные по адресу и сохраню в папку. Есть в этом смысл или лишняя нагрузка на сервер?
#19
by ШангриЛа
Так-то удобнее все в модуле объекта обработки все обстряпать, а потом просто на клиенте из хранилища все тянуть.
#20
by ШангриЛа
Временное хранилище в памяти создается или это на диске сервера? В смысле, сильно память оперативная сервера отожрется, если я создам пару тысяч временных хранилищ и помещу в каждое двоичные данные?
#22
by ШангриЛа
пля, а куда деваться, если надо массово формировать по нескольким тысячам строк табличный документ с картинками, и сохранять их в PDF на рабочем столе юзера. Набуя - второй вопрос. Надо!
#31
by H A D G E H O G s
ВремХран храниться в темповых файлах винды в клиент-серверной и в файле 1Cv8tmp.1CD в файловом режиме.
#33
by H A D G E H O G s
Когда выполнял формирование печатных форм рег отчетности на сервере (ибо памяти клиента не хватало) - передавал табдок через временное хранилище (с КЛИЕНТА на СЕРВЕР). Передачи ДвоичныеДанные приводили к лютым тормозам, прямая передача табдока приводила к ошибке XDTO преобразования. Табличный док был размера 600 метров примерно. Его надо было разбить на листы для печати, вставим шапку и подвал на каждый лист (типовой алкгоритм, бил бы за него, но менять нельзя).
#34
by blopp
, См. руководство разработчика 20.2.3 ...При получении на сервере значения из временного хранилища следует учитывать то, что оно получается по ссылке. В действительности, ссылка эта указывает на значение, которое хранится в кэше. В течение 20 минут, с момента помещения в хранилище или же с момента последнего обращения, значение сохранится в кэше, а затем записывается на диск и из кэша удаляется. ... Это как бы намекает...
#38
by blopp
Пусть меня считают некропостером но все же вдруг это еще кто-то прочитает кроме неадекватных ежей. Вопрос в был про потребление памяти. Поэтому правильный ответ на вопрос - помещать во временное хранилище значительные объемы данных нельзя, особенно при многопользовательской работе. Обращение к сеансовым данным всегда происходит через кэш - т.е. будет расходоваться память рабочего процесса. Кроме того, эти данные будут пересылаться через сеть в менеджер кластера.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- УТ 10 или 11
- Как обновить форму документа после заполнения ТЧ. УФ
- Склонение без компоненты
- Высокий % времени ядра на терминальном сервере 1С
- v8: Не выгружаются в кассу часть остатков
- v7: Выполнение кода в табло 1С 7.7 в режиме предприятия
- Документооборот ПРОФ. Правила автозаполнения шаблонов файлов.
- БСП 2.1. Подсистема "Печать" печать с выбором печатной формы.
- Режим ввода пароля
- Как запретить менеджерам по продажам видеть чужие заказы? (УТ 11.1.2.6)
- Использование GPU в ESXI
- Инструменты разработчика. Консоль запросов. Поддержка WQL (WMI)
- v7: ОткрытьФорму() Как проверить закрытие формы.
- v7: 1С 7.7 вылетает при удалении помеченного объекта
- А есть такая программка? Видеть часть неактивного окна в отдельном окне
- OFF: ТабДокумент.ПроверитьВывод(). входит и выходит
- нет вкладки предоплата
- Партии в УПП. Восстановление последовательности расчетов.
- Вопрос по СКД с выводом периода в колонках
- 1с 82 Рисунок в табличной части