Попытка, Исключение

а при чем тут 7.7?
А при том, что уж если начинаете подсказывать, то хоть пишите правильно.
великолепно
но нужно контролировать ошибки, в смысле проверять что док не проводится из-за конфликта блокировок а не из-за левых данных... 

как это проверить?
...ошибка блокировки из-за выполнения транзаций...
"для этого внутри секции попытка...исключение в секции исключение нужно получить описание ошибки и сравнить его с той ошибкой, что выдается пользователю при блокировке

то есть секция попытка...исключение выглядит в данном случае так
 попытка
восстанавливаемпоследовательность....
исключение
ошибкаСрокой=ОписаниеОшибки();
если стрЧислоВхождений(ОшибкаСтрокой,НашеОписаниеОшибки)>0 тогда//это блокировка
возврат ложь//продолжим работу после паузы
иначе
Сообщить(ошибкаСтрокой);//это для того чтобы видеть что за ошибка произошла
возврат истина //прерываем работу
конецесли;
конецпопытки;



некоторую трудность тут представляет то, что эталонное сообщение об ошибке(в примере это переменная НашеОписаниеОшибки) нужно сначала от системы получить(оно может быть разным в зависимости от того какое ПО установлено, кроме того, для обработки используется не все эталонное сообщение а некоторая часть, которая будет гарантированно повторяться - как правило несколько слов(поэтому в примере и использована функция стрЧислоВхождений() ).
Для того чтобы получить такое эталонное сообщение я связывал переменную НашеОписаниеОшибки с реквизитом формы обработки имеющим тип строка. После чего запускал восстановление. Рано или поздно пользователи блокировали ресурс и обработка останавливалась, выдавая сообщение о блокировке, после чего я копировал несколько ключевых слов из этого сообщения в реквизит формы, отвечающий за эталонное сообщение и обработка начинала обрабатывать ошибки при блокировке..."
При формировании счета в 1С 7.7 Упращенка нет столбца с НДСПрограммное добавление реквизита Формы

Читайте нас: