|
Ожидание с периодической проверкой наличия файла на диске | ☑ | ||
---|---|---|---|---|
0
padaril
03.07.13
✎
14:08
|
С формы отправляется на сервер запрос файла с данными, сервер в виде ответа отправляет на диск файл csv. Вопрос как сделать отслеживание появления этого файла? Наименование и путь к файлу известны.
Может сделать что-то вроде: цикл Пока, внутри через попытку пробовать прочитать файл, если файл прочтен - выходить из цикла, если ошбка - обработать и продолжать цикл. Но полагаю, это сильно загрузит систему. Еще думал через ПодключитьОбработчикОжидания, но тоже не фонтан решение |
|||
1
Maxus43
03.07.13
✎
14:09
|
регл задание, обработчик ожидания. выбирай
|
|||
2
padaril
03.07.13
✎
14:13
|
регламентка не подходит, ибо процедура происходит в процессе создания дока (запрос стороннего сервера на предоставление дисконта)
|
|||
3
Лефмихалыч
03.07.13
✎
14:15
|
(0),(2) хрень какая-то. Ты что-то делаешь не так.
|
|||
4
stix2010
03.07.13
✎
14:15
|
(0) в других средах таймеры всех устраивают, а тебя нет
|
|||
5
padaril
03.07.13
✎
14:16
|
(3) есть другое видение?
|
|||
6
Maxus43
03.07.13
✎
14:27
|
(5) чем обработчик ожидания не устраивает?
|
|||
7
padaril
03.07.13
✎
14:36
|
спасиб, запилил. Если кому интересно:
&НаКлиенте Процедура Получить(Команда) ПодключитьОбработчикОжидания("ПолучитьСервер", 1); КонецПроцедуры &НаКлиенте Процедура ПолучитьСервер() Сообщить("куку"); ИмяФайла = "in.csv"; ПутьКФайлу = "C:\Users\Alex\Desktop\vedroid\" + ИмяФайла; ТекстДок = Новый ТекстовыйДокумент; Попытка ТекстДок.Прочитать(ПутьКФайлу, "windows-1251"); Исключение Возврат; КонецПопытки; // тут обрабатывается файл ОтключитьОбработчикОжидания("ПолучитьСервер"); КонецПроцедуры |
|||
8
Maxus43
03.07.13
✎
14:39
|
раз в секунду частовато долбить то имхо, ну сам смотри
|
|||
9
hhhh
03.07.13
✎
14:39
|
надо в типовых посмотреть. Там есть фишка "Выполнять обмен при появлении файла"
|
|||
10
Поросенок Петр
03.07.13
✎
14:43
|
Мало курили. Надо было данные читать непосредственно с с диска физически.
|
|||
11
Поросенок Петр
03.07.13
✎
14:46
|
"С формы отправляется на сервер запрос файла с данными, сервер в виде ответа отправляет на диск файл csv."
А двоичные данные он не может на клиент прислать? |
|||
12
Smallrat
03.07.13
✎
14:56
|
(7) что за попытка исключение ?
Файл = Новый Файл(имяфайлcsv); Если Файл.Существует() Тогда ТекстДок = Новый ТекстовыйДокумент; ну и там всякие обработки добавить на случай если файл остался от предыдущей сессии |
|||
13
Jump
03.07.13
✎
14:57
|
Делать ожидание файла, в модуле документа, ИМХО очень неразумное решение.
Проблема со связью и будет у тебя док бесконечно ждать погоды. А если и делать то банально по кнопке - кнопка послать запрос, и кнопка проверить наличие ответа. |
|||
14
Smallrat
03.07.13
✎
14:58
|
(13) да кстати - перед записью сделать ожидание ответа, если ответ не пришел то и не начинать проведени. а как пришел так и проводить.
|
|||
15
padaril
03.07.13
✎
15:54
|
у клиента свое ИМХО :)
необходимо МИНИМУМ вмешательства в систему. Он видит все решение как внешняя обработка. |
|||
16
savaB
03.07.13
✎
16:08
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |