Попытка, Исключение
15.08.2013
09:42
#24
<pre>но нужно контролировать ошибки, в смысле проверять что док не проводится из-за конфликта блокировок а не из-за левых данных... </pre><br>как это проверить?
15.08.2013
13:56
#26
"для этого внутри секции попытка...исключение в секции исключение нужно получить описание ошибки и сравнить его с той ошибкой, что выдается пользователю при блокировке<br> <br>то есть секция попытка...исключение выглядит в данном случае так<br><pre> попытка<br> восстанавливаемпоследовательность....<br>исключение<br> ошибкаСрокой=ОписаниеОшибки();<br> если стрЧислоВхождений(ОшибкаСтрокой,НашеОписаниеОшибки)>0 тогда//это блокировка <br> возврат ложь//продолжим работу после паузы<br> иначе<br> Сообщить(ошибкаСтрокой);//это для того чтобы видеть что за ошибка произошла<br> возврат истина //прерываем работу<br> конецесли;<br>конецпопытки;<br></pre><br><br> <br>некоторую трудность тут представляет то, что эталонное сообщение об ошибке(в примере это переменная НашеОписаниеОшибки) нужно сначала от системы получить(оно может быть разным в зависимости от того какое ПО установлено, кроме того, для обработки используется не все эталонное сообщение а некоторая часть, которая будет гарантированно повторяться - как правило несколько слов(поэтому в примере и использована функция стрЧислоВхождений() ).<br>Для того чтобы получить такое эталонное сообщение я связывал переменную НашеОписаниеОшибки с реквизитом формы обработки имеющим тип строка. После чего запускал восстановление. Рано или поздно пользователи блокировали ресурс и обработка останавливалась, выдавая сообщение о блокировке, после чего я копировал несколько ключевых слов из этого сообщения в реквизит формы, отвечающий за эталонное сообщение и обработка начинала обрабатывать ошибки при блокировке..."
Читают тему
(гостей: 1)