Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обойти ошибку SQL

Обойти ошибку SQL
Я
   Morig
 
12.07.19 - 10:21
Есть необходимость группой проводить документы.
В течение рабочего дня периодически вылетает ошибка "Конфликт блокировок".
Написал обработку для группового проведения.
Провожу документ через попытку. Но, в случае блокировки, попытка не помогает - обработка останавливается, вылетает модальное окно.
Пока "ОК" не нажмёшь, обработка будет ждать реакции пользователя.
Сделал через ОбработчикОжидания. Картина аналогичная. При любых ошибках, кроме ошибок SQL, обработка продолжает работу.
Как сделать так, чтобы конфликт блокировок SQL не вызывал остановку обработки?
 
 
   Slypower
 
1 - 12.07.19 - 10:22
   kzot
 
2 - 12.07.19 - 10:55
(1) "Если у вас клиент-серверная (SQL) версия 8.0 или 8.1 - вам не нужно ничего ставить (проблемы с блокировками там нет)."

это копия строчки текста из твоей ссылки... )
   Morig
 
3 - 12.07.19 - 11:48
(1)(2) там ни о том вообще
   palsergeich
 
4 - 12.07.19 - 12:06
1) Грызи ТЖ, выяви пространства блокировок, виновника, жертву и исправь
2) Забей болт и перепроводи ночью
3) Забей болт и выкини всех из базы и перепроводи в монопольном режиме.
   Septera
 
5 - 12.07.19 - 12:13
(0) > Провожу документ через попытку. Но, в случае блокировки, попытка не помогает - обработка останавливается, вылетает модальное окно.
а вот это странно, какая субд? на постгре Попытка отрабатывает спокойно эту ошибку
   Morig
 
6 - 12.07.19 - 12:15
(5) Microsoft SQL
   Septera
 
7 - 12.07.19 - 12:21
(6) наверное для MSSQL 1С распознает ошибку и обрабатывает ее как "особенную"
   Septera
 
8 - 12.07.19 - 12:22
много документов проводится?
   Morig
 
9 - 12.07.19 - 12:25
(8) не много
   Septera
 
10 - 12.07.19 - 12:27
(9) добавь таймаут между проведениями
   Morig
 
11 - 12.07.19 - 12:36
(10) таймаут не повлияет на других пользователей. вопрос в том как эту ситуацию обойти. пусть вылетит ошибка. пусть документ останется не проведённым. нужно, чтобы обработка продолжала автономную работу.
   arsik
 
12 - 12.07.19 - 12:40
Натрави на нее какой ни будь кликер
   Septera
 
13 - 12.07.19 - 12:41
Запускай обработку чаще, фиксируй на каком документе остановился и начинай с него или за исключением тех что провел ранее
   arsik
 
14 - 12.07.19 - 12:41
Ну или попробуй к базе через ком соединится и проводи через ком, в случае ошибки, возможно в ком-е нормально отработает.
   Morig
 
15 - 12.07.19 - 12:46
(13) момент когда ошибка вылетела как отловить? как программно закрыть модальное окно?
   Morig
 
16 - 12.07.19 - 12:48
(12)про кликер оригинально. а есть кликер, к которому можно цепляться через ком?
   Morig
 
17 - 12.07.19 - 12:48
(12) или кликер с расписанием?
   Septera
 
18 - 12.07.19 - 13:00
(15) каждый проведенный док куда-то записывай или помечай, добавь рег. задание
   Morig
 
19 - 12.07.19 - 13:04
(18) это не нужно. я могу в любой момент запросом вытащить всё, что нужно. проблема как отловить появление ошибки и обойти модальное окно
   arsik
 
20 - 12.07.19 - 13:16
Ну или сам напиши на AutoIt.
   Morig
 
21 - 12.07.19 - 13:26
программное нажатие на кнопку в 1С кто-нить реализовывал?
   arsik
 
22 - 12.07.19 - 13:31
(21) Изнутри ты этого сделать не сможешь, только снаружи. Соответственно это или готовый кликер, который может кликать конкретное выскочившее окно или писать свой "кликер" на AutoIt, который будет кликать на кнопку в определенном окно при его появлении.
Ну или разобраться с блокировками.
Еще вариант из своей обработки писать лог и если длительный перерыв и обработка еще работает, убивать клиента в винде и поднимать нового.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.