Имя: Пароль:
1C
1С v8
Отложенный запуск процедуры
0 ДенисЧ
 
07.12.15
16:31
Дайте идею....
Есть обмен с удалёнными программами. По принципу запрос-ответ
То есть моя 1с выгружает некий файл-флаг, который различным способом добирается до получателя. Тот его читает и выдаёт ответ, который тоже различным способом добирается до меня и его нужно прочитать.
Задержка может составлять от 10 секунд до 2-3х суток.
Соответственно.
Первое регламентное пишет файлик. И хочется, чтобы оно само назначило срок запуска второй процедуры.
дайте идею, как красивей сделать подобное...
1 Mort
 
07.12.15
16:37
Первое задание просто включает второе. Второе повторяется пока не будет успеха, потом отрубается.
Как вариант сделать чтобы второе повторялось быстро в начале и реже в конце. Т.е. первый час - каждые полминуты, после - каждые 5 минут и т.д.
2 Fannasankh
 
07.12.15
16:38
Первое устанавливает дату запуска в какую-то константу и включает второе. Второе выполняется с некоторой переодичностью, проверяет дату и время и выполняется если пора, потом отключается
3 ДенисЧ
 
07.12.15
16:38
хотелось бы минимизировать количество РЗ...
4 Casey1984
 
07.12.15
16:39
(0) А зачем, ответный файл для второго задания может появится без первого файла?
5 ДенисЧ
 
07.12.15
16:41
(4) может и не получиться.
В первом файле говорится, что именно нужно выдать.
А это в разных случаях может быть разной информацией...
6 Casey1984
 
07.12.15
16:42
(5)(3)(0) Устанавливай программно дату запуска второго рег. задания каждый.
7 Casey1984
 
07.12.15
16:42
(6) ... каждый раз.
8 ДенисЧ
 
07.12.15
16:42
(7) см (3).
Так-то я и сам могу... но это некрасиво...
9 Casey1984
 
07.12.15
16:43
(8) почему?
10 Casey1984
 
07.12.15
16:45
(8) тут два рег задания, куда меньше то?
11 ДенисЧ
 
07.12.15
16:48
(10) Потому что два - это только в примере. Их должно быть по каждому на удалённую точку....
12 aleks_default
 
07.12.15
16:50
(11)если делать асинхронно, то меньше и не получится..
13 Casey1984
 
07.12.15
16:51
(11) в одной базе?
14 Garykom
 
гуру
07.12.15
16:55
(0) Идея использовать нечто внешнее
Которое когда уже и дернет 1с

Ну или не выделываться и в одной регламентной все ответы проверять
15 ДенисЧ
 
07.12.15
16:58
(13) Да, в одной... А что?
16 mikecool
 
07.12.15
16:58
недавно проскакивало - оповещение операционной системы, толи в ветках про нет-связку с 1с
но это все равно - внешняя пиналка
17 Casey1984
 
07.12.15
16:59
(15) мы же можем для одного рег. задания в метаданных создать несколько экземпляров с разными ключами вроде?
18 Fragster
 
гуру
07.12.15
17:00
я хз, что там у тебя, но у меня был РС с "заданиями" (ссылка на справочник внешних обработок, параметрами, "исполнителем" и местом для отчета), узлы через задание лезли на вебсервис, если что-то видели для себя, делали, и запихивали результат в центр через вызов другого метода веб сервиса.

такой способ применялся для формирования отчетов, запуска обработок, обмена данных в обход обычного обмена (например пользователь мог отправить любой док почти моментально (запросы шли раз в минуту) в нужный узел).
19 ejikbeznojek
 
07.12.15
17:06
(0)
А вторая процедура это загрузка пришедшего в неизвестный момент файлика?
Если не известно когда он появится, то как первая процедура определит когда что запускать?
Может быть просто загружать перед выгрузкой?
20 ДенисЧ
 
07.12.15
17:07
(19) Для каждого конкретного узла известно с точностью до разрыва связи.
21 ejikbeznojek
 
07.12.15
17:13
Может быть какое-нибудь расписание сделать в этих узлах?
А регламентное задание будет запускаться раз в 5 минут и проверять кого пора загружать?
22 ДенисЧ
 
07.12.15
17:14
(21) Единственное, что можно узнать и задать - период ожидания ответа...
23 ejikbeznojek
 
07.12.15
17:17
А можно чтобы 1Ска в секретном файлике писала и смотрела
Когда выгружала и какие узлы пора загружать.
24 User_Agronom
 
07.12.15
17:57
Я бы наваял одно регламентное задание, которое делало бы две вещи:
1. ваяло файл выгрузки
2. Засасывало ответы (перемещая успешно загруженные файлы ответов в другую папку)

Если выгрузка вручную - то только п.2
25 Drac0
 
07.12.15
19:55
(0) Веб-сервис?
26 Мэс33
 
07.12.15
20:05
Я бы сделал внешними средствами.
27 ДенисЧ
 
07.12.15
20:20
(26) (25) стороннюю программу, мзвните, вы тоже будете переделывать? Кто сказал, что там 1с?
28 Zamestas
 
07.12.15
20:29
29 Drac0
 
07.12.15
20:30
(27) А что сторонняя умеет? Послать запрос к Odata могет?
30 Zamestas
 
07.12.15
20:31
31 ДенисЧ
 
07.12.15
20:48
(29) нет. Только сохранять файл в каталоге или на фтп.
32 ДенисЧ
 
07.12.15
20:48
Ну, почта ещё... Но это мы отменяем сразу.
33 Drac0
 
07.12.15
21:20
(32) Почему? Хотел как раз про почту сказать :)
34 ДенисЧ
 
07.12.15
21:21
(33) Почта ещё хуже, чем фтп.
35 User_Agronom
 
07.12.15
21:34
(34) Чем тебе регзадание, проверяющее наличие ответа не нравится?
Так многие обмены работают.
36 boozin
 
07.12.15
22:40
Делаешь регистр сведений что-то типа:
Измерения: ЗапросНаПолучениеДанных
Ресурсы: Ответ, ОтветЗагружен(Булево).

При формировании запроса пишешь запись в регистр.
Дальше регзаданием проверяешь ответы по незакрытым записям в регистре. Считал ответ - закрыл запись. Регистр можно чистить периодически(или сделать периодическим по конкретному виду запроса). Соответственно одно регзадание по всем обменам. Можно регистр усложнить...
37 Мэс33
 
08.12.15
06:14
(27) Зачем переделывать?
Создал бы роль, под которым запускал бы одинэсину, под которым проводились бы какие-то работы, под которым потом отправлялось бы оповещени и одинэсина бы закрывалась. Вот и все.
А внешнее средство - например xStarter.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой