|
|
|
Для чего временное хранилище? | ☑ | ||
|---|---|---|---|---|
|
0
AdApter
30.06.10
✎
14:28
|
Для чего в 8.2. следует использовать ВРЕМЕННОЕХранилище? Из него на запустишь файл. Пытаюсь понять что полезного можно сделать с этим адресом временного хранилища. Можно ведь сразу помещать файлы в постоянное хранилище (реквизит)
|
|||
|
1
YF
30.06.10
✎
14:29
|
(0) Я вот туда перемещаю вайлы с клиента, чтобы их распарсить на сервере
|
|||
|
2
AdApter
30.06.10
✎
14:34
|
а можно на понятных примерах?
|
|||
|
3
AdApter
30.06.10
✎
14:37
|
а ну кажется понял. А если дополнительная обработка\проверка файлов до записи объекта не нужна, то и врем. хран тоже не нужно?
|
|||
|
4
YF
30.06.10
✎
14:39
|
Модуль формы обработки:
&НаКлиенте //------- © Яшенев Ф. В. aka YF -------------------- // По кнопке "Загрузить данные" на форме Процедура команда_ЗагрузитьДанные(_команда) // Инициализируем переменную, содержащую результат проверки результатПроверки_ = Истина; // Возьмем путь к файлу в переменную путь_ = СокрЛП(ИмяФайла); // Начнем проверку // Проверим чтобы путь был не пустой Если путь_ = "" Тогда результатПроверки_ = Ложь; КонецЕсли;//путь_ = "" // проверим файл на существование файл_ = Новый Файл(путь_); Если файл_.Существует() Тогда Если файл_.ЭтоФайл() Тогда иначе результатПроверки_ = Ложь; КонецЕсли;//Файл_.ЭтоФайл Иначе результатПроверки_ = Ложь; КонецЕсли;//файл_.Существует // Посмотрим на компьютер Если Объект.Компьютер.Пустая() Тогда результатПроверки_ = Ложь; КонецЕсли;//Объект.Компьютер.Пустая() // Итак, если результат плох, то на этом все Если результатПроверки_ Тогда Иначе Сообщить("Проверка на клиенте: Некорректно заполнены реквизиты!"); Возврат; КонецЕсли;//результатПроверки_ // Имеем положительный результат проверки, продолжаем работать // Нужно вызвать процедуру по загрузке данных файлТекстовый_ = Новый ДвоичныеДанные(путь_); Объект.АдресХранилища = ПоместитьВоВременноеХранилище(файлТекстовый_, Новый УникальныйИдентификатор); // Вызовем серверную процедуру загрузки ВыполнитьЗагрузкуИзМодуля(); // Отчитаемся о выполнении Предупреждение("Загрузка выполнена!", 60); КонецПроцедуры//команда_ЗагрузитьДанные &НаСервере //------- © Яшенев Ф. В. aka YF -------------------- // Запускаем экспортную процедуру загрузки данных из модуля объекта Процедура ВыполнитьЗагрузкуИзМодуля() обработка_ = РеквизитФормыВЗначение("Объект"); обработка_.ЗагрузитьДанные(); КонецПроцедуры//ВыполнитьЗагрузкуИзМодуля |
|||
|
5
YF
30.06.10
✎
14:39
|
Модуль объекта обработки
&НаСервере //------- © Яшенев Ф. В. aka YF -------------------- // Загружаем данные из текстового файла Процедура ЗагрузитьДанные() Экспорт // Инициализируем результат проверки результатПроверки_ = Истина; // Фозьмем файл из внешнего хранилища и, если его размер 0, тогда //будем считать, что файл не выбран файл_ = ПолучитьИзВременногоХранилища(СокрЛП(АдресХранилища)); Если файл_.Размер() = 0 Тогда результатПроверки_ = Ложь; КонецЕсли;//файл_.Размер()= 0 // Если плохой результат проверки - то закончим Если результатПроверки_ Тогда Иначе Сообщить("Проверка на сервере: Некорректно заполнены реквизиты!"); Возврат; КонецЕсли;//результатПроверки_ // Имеем положительный результат проверки, продолжаем работать // Положим двоичные данные во временный файл временныйФайл_ = КаталогВременныхФайлов() + "\" + СтрЗаменить(СокрЛП(АдресХранилища),"/", "-") + ".log"; файл_.Записать(временныйФайл_); // Прочитаем текст из файла текст_ = Новый ТекстовыйДокумент; текст_.Прочитать(временныйФайл_); текст_ = текст_.ПолучитьТекст(); // Удалим временный файл УдалитьФайлы(временныйФайл_); // Вызовем процедуру по переносу текста в документ записи логов РаботасТекстами.ПеренестиТекствДокумент(текст_, Компьютер, ТекущаяДатаСеанса()); КонецПроцедуры//ЗагрузитьДанные |
|||
|
6
YF
30.06.10
✎
14:40
|
Мне это было нужно, чтобы файл обрабатывать на сервере, а не на клиенте
|
|||
|
7
YF
30.06.10
✎
14:42
|
пост на эту тему:
v8: 8.2 Передать файл с клиента на сервер |
|||
|
8
AdApter
30.06.10
✎
14:43
|
т.е. клиент загружает какой-то файл. Текстовый например, а ты смотришь правильно ли в файле заполнены значения. И если нет, то не загружаешь?
|
|||
|
9
YF
30.06.10
✎
14:45
|
(8) Не это у меня конфига для обработки файлов-логов межсетевого экрана, она записи событий из файла сохраняет себе в базу, чтобы отчеты строить.
Берем файл, далее по нему нужно пробежаться и раскидать по базе. Решил делать это на сервере, чтобы не грузить клиента, вот и понадобилось сначала файл на сервер перебросить |
|||
|
10
AdApter
30.06.10
✎
14:51
|
Думаю для этого не нужно временное хранилище. Можно поместить в обычное хранилище (реквизит дока или справочника с типом "Хранилище"), на сервере из него достать, сохранить в любой каталог на сервере и обрабатывать.
в той темке писали что двоичныеДанные нельзя получить в веб-клиенте, хотя по синтаксис помощнику этого не скажешь. щас проверю |
|||
|
11
Defender aka LINN
30.06.10
✎
14:51
|
v8: v8: 8.2 как работать с COMObject
Вот для этого, например. |
|||
|
12
YF
30.06.10
✎
14:52
|
(10) "Можно поместить в обычное хранилище (реквизит дока или справочника"
так нуно сначала создать такой справочник в конфигураторе, а нафига лишний объект в базе? |
|||
|
13
AdApter
30.06.10
✎
15:01
|
проверил, в веб-клиенте не отрабатывает :(
|
|||
|
14
AdApter
30.06.10
✎
15:03
|
ну тогда вопросов нет, спасибо
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |