Имя: Пароль:
1C
1С v8
есть задача на сканирование файла в каталоге, чем?
0 DES
 
14.03.23
18:44
1с8 ОФ через RDP
Видится такая схема:
1с сохраняет файл на локальном диске Клиента, на нем какая то программа ждет этот файл , запускает его обработку, получается другой файл.
И этот фай забирает уже 1с
Вопрос, какая есть программка для полинга файла и запуска другой программы и как ждать появления результрующего файла 1с-кой, чтобы не вешать всю систму в цикле.
1 МихаилМ
 
14.03.23
18:47
(0) если вин то wmi
2 тук-тук
 
14.03.23
18:53
3 azernot
 
14.03.23
19:04
>как ждать появления результрующего файла

Чем не устраивает Регламентное задание?
Или, к примеру, ПодключитьОбработчикОжидания, если речь идёт о невмешательстве в конфу?

А вообще, это что-то типа синхронного вызова при обмене? Отдать данные и тут же получить результат их обработки на приёмнике? Все стараются отойти от синхронных вызовов, старясь работать асинхронно.
4 magicSan
 
14.03.23
19:39
(0) в 1с запускаешь подключитьОбработчикОжидания, либо фоновые
5 Злопчинский
 
14.03.23
19:49
(3) регламентное задание - это как типа все время бегать на почту, чтобы узнать пришло ли письмо. и совсем другое когда к тебе стучатся в дверь и приносят письмо...
6 magicSan
 
14.03.23
20:01
(5) это как типа программа стоит только на сервере, например потому что ей нужен токен.
7 Волшебник
 
модератор
14.03.23
20:02
(5) А если стучатся в дверь, но ты в душе? Вроде слышишь, но не можешь прямо сейчас открыть дверь
8 Злопчинский
 
14.03.23
20:06
(7) Моются те, кому лень чесаться! ;-)
Звонок на двери  есть - позвонит. выйду из душа и возьму письмо.
вариант "почтальон" означает что получатель всегда может ответить на звонок.
Если это не так - то бегаем и проверяем на почту сами.
9 Злопчинский
 
14.03.23
20:06
опять же - почтальон, которому не ответили через день принесет письмо снова...
10 Волшебник
 
модератор
14.03.23
20:07
(8) Ладно, достаточно метафор. Делать-то что?
11 mistеr
 
14.03.23
22:28
(0) Почему на клиенте, а не на сервере?
12 mistеr
 
14.03.23
22:29
Есть программа FreeFileSync, там есть компонент RealTimeSync. Он именно этим и занимается. Ждет файлы и запускает их обработку.
13 DES
 
14.03.23
23:55
(11) такое условие
14 DES
 
15.03.23
00:01
(12) СПС
15 ДедМорроз
 
15.03.23
00:27
Чтобы кто-то увидел,что файл есть,нужно,чтобы он периодически проверял его наличие.
Конечно,можно добавить фильтр в обработчик файловой системы,но это сложно и накладно.
Поэтому,может быть, web-сервис или что-то подобное,которое начинает работать сразу по обращению.
16 Garykom
 
гуру
15.03.23
00:34
(0)
1. 1С файловая или клиент-серверная? Что ОФ понял

2. На клиенте 1С это надо?
Тогда:
а)ОбработкаОжидания по таймауту бездействия https://its.1c.ru/db/metod8dev/content/1820/hdoc
б)ОбработкаВнешнегоСобытия через ВК https://its.1c.ru/db/metod8dev/content/2691/hdoc

3. На сервере 1С это надо?
Тогда:
а) фоновое задание в цикле с паузой
б) публикация http-сервиса, который дернет внешнее приложение
17 DES
 
15.03.23
08:50
(16) без разницы файловая\серверная.
все утыкается в комп пользователя, на котором то и все пляски.
пользователь через RDP юзает 1с8
18 DES
 
15.03.23
08:53
(17) +
нужно на компе удаленно обработать инфу из 1с8 и вернуть в 1с8 как можно быстрее. т.е. опрашивать наличие результат нужно каждую сек. максимум
19 Fedor-1971
 
15.03.23
09:12
(17) схема примерно такая?
- 1С из RDP сохраняем файл на диск пользователя (Attach к RDP?), например, D:\1111\fl.txt
- у пользователя стартует нечто и обрабатывает оный файл, результат появляется, например, D:\2222\flOk.txt
- 1С из RDP должна забрать файлик из D:\2222

Как вариант: использовать шару или FTP примерно так:
- 1С выкладывает в каталог 1111 нужный файл fl.txt
- клиент перемещает его к себе (при удачной попытке, т.е. файл уже дописан корректно) создаёт и держит открытым флаг-файл 1111\fl-isWork.txt
- результат обработки клиент сохраняет в 2222 и отпускает fl-isWork.txt (записывает " ")
- 1С в цикле пытается удалить fl-isWork.txt (при удачной попытке - т.е. файл ответа готов) забираем flOk.txt

нагрузка на процессор минимальна и +/- приемлема
20 Fedor-1971
 
15.03.23
09:14
19+ проверку наличия файла в 1111 повесь в шедулер
21 Галахад
 
гуру
15.03.23
09:15
Одинэснику проще написать на oscript, наверное.
22 Fedor-1971
 
15.03.23
09:18
(21) возможно, но в качестве повышения общей образованности, можно поиграться с bat или PowerShell
23 DES
 
15.03.23
09:18
(20) опрос шедуллера каждую сек ?
24 Fedor-1971
 
15.03.23
09:24
(23) да, в нём просто копирование файла к себе + запуск обработки через start ....bat
т.е. логика работы клиента: забрал файл и стартовал отдельный процесс (start - для win, или просто вызов ещё одного bat - более универсально) его обработки
Создание флаг файла возможно и просто после обработки и сохранения основного, это просто признак для 1С, что можно забирать результат
25 Fedor-1971
 
15.03.23
09:27
24 если файлы большие, то нужно предусмотреть вариант появления файла в процессе копирования
ну и вариант "Старый не забрали, а новый поверху записали" - т.е. обеспечить уникальность имён файлов
26 mistеr
 
15.03.23
14:03
(25) Поэтому лучше взять готовое, написанное тем, кто учел все эти и другие тонкости.
27 magicSan
 
15.03.23
14:40
(23) тебе в самом начале написали, сохраняешь файл в шару или ВХ, далее вызываешь фоновое, оно сохраняет файл из ВХ и пинает нужное тебе ПО. В это время обработчикОжидания опрашивает фоновое и   показывает тебе жирно кота.
28 CaIIIka
 
15.03.23
14:46
Можно после обработки имя файла немного изменить, а 1С по расписанию искать файлы по измененной маске.
29 Fedor-1971
 
15.03.23
15:44
(26) Как я понял, это "Пьеса одного актёра":
- Нажали кнопку - Сформировался файл - Сидим ждём маячок ответа
а тем временем: перелили файл на машину пользователя, подписали, маякнули ждуну "Забирай"
- Дождались маячок - Забираем из 1С готовый файл и дальше по регламенту отправки (хотя можно и сразу с клиента отправить подписанный файл, а 1С вернуть успешность сего действа)

Просто помню, что ТС пытался рулить локальной подписью файлов
30 ДедМорроз
 
15.03.23
19:26
Есть такая вещь,как именованный канал - для этой задачи очень подходит,а лучше всего virtual channel - там можно узнать,что на той стороне делают.
31 DES
 
15.03.23
22:46
шедуллер windows не выполняется чаще чем 5 мин.
А нужно проверять 1-2 сек.
32 DES
 
15.03.23
22:46
(30) где поуточнять?
33 DES
 
15.03.23
22:47
(29) ну, общий план такой, да.
34 DES
 
15.03.23
22:55
(29) + только и подпись тоже должна сидеть ждать и выполняться как можно быстрее
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс