Имя: Пароль:
1C
1С v8
Узнать, заблокированы ли записи в системе
0 alexshape
 
12.04.19
11:31
Привет всем. Стоит такая задача: есть реестр записей в регистре сведений, по которым необходимо отправить по вебсервису данные. Но возможна такая ситуация, что могут работать два регламентных задания. Как ГРАМОТНО сделать так, чтобы они не отправляли эти данные повторно.

Сейчас я сделал так: Блокирую запись перед отправкой, при успешной отправке разблокирую, но для второго РЗ проверка, заблокирован ли объект занимает продолжительное время, 20 секунд. Следовательно этот способ не подходит
1 Галахад
 
гуру
12.04.19
11:34
План обмена?
2 alexshape
 
12.04.19
11:45
(1) неа, данные хранятся в регистре сведений, регламентное задание подтягивает от туда и посылает через вебсервис.
3 D_E_S_131
 
12.04.19
12:02
Может не нужно несколько регл заданий на одни и те же данные "натравлять"?
4 alexshape
 
12.04.19
12:09
(3) Как бы да, но не исключено
5 catena
 
12.04.19
12:23
(4)Проверять при запуске рз, если такое же рз уже запущено, завершаться?
6 catena
 
12.04.19
12:23
(3)А если хочется обрабатывать в несколько потоков?
7 azernot
 
12.04.19
12:24
(0) Могу предложить такую методику:

Организуется второй регистр "ЗаписиВОТправке" с дополнительным измерением  "ID" - ключ регламентного (фонового) задания.

Регламентное задание в транзакции берёт записи из основного регистра, копирует их в регистр "ЗаписиВОТправке" со своим ID, удаляет записи в регистре, фиксирует транзакцию.
В другой транзакции отправляет записи из регистра "ЗаписиВОТправке" со своим ID, удаляет записи в регистре "ЗаписиВОТправке" со своим ID, фиксирует транзакцию.

И ещё, перед началом работы фонового задания, проверяются записи в регистре "ЗаписиВОТправке" где ID не в списке ключей активных фоновых заданий. Т.е. поиск записей, которые не были по какой-то причине отправлены, а фоновое задание уже не активно. Такие записи переносятся в основной регистр.
8 alexshape
 
12.04.19
12:39
(7) Может быть, но плодить лишние объекты не хочется, может есть способ как то по проще?
9 FIXXXL
 
12.04.19
18:18
(2) ну так сделай план или узел на подходящем плане
поклади туда наборы
и пока кто-то читает изменения узла - эта информация жестко заблокирована
10 mistеr
 
12.04.19
20:35
(7) Этот метод ненадежен. Лучше использовать платформенные механизмы. То есть планы обмена.
11 Сияющий в темноте
 
12.04.19
22:58
а если блокировать не запись,а накладывать управляемую блокировку и у регистра завести признак:готов к отправке,отправляется,отправлен?