Культурно це має виглядати так:
//Ожидание для возможности работы других пользователей (по совету Олега Яковлева из ЧПТФ "ЮСИ")
Процедура Задержка(Секунд)
Для Инд=1 По Секунд Цикл
ТекВремя=ТекущееВремя();
Пока ТекВремя=ТекущееВремя() Цикл
КонецЦикла;
КонецЦикла;
КонецПроцедуры;
Тут хоча б можна сказати яка саме буде затримка.
Доречі стосовно того, навіщо затримка.
Ось приклад, коли затримка НЕОБХІДНА.
Спробуйте часто змінювати значення константи методом
Константа.Счетчик=Константа.Счетчик+1;
коли в базі чоловік 50. Побачите , що з того буде.
Така функція ЧАСТКОВО знімає проблему:
Функция _УстановитьЗначениеКонстанты(Имя,Значение) Экспорт
Блокировка=1;
Сч =0;
Пока Блокировка=1 Цикл
Попытка
НачатьТранзакцию();
Константа.УстановитьАтрибут(Имя,Константа.ПолучитьАтрибут(Имя));//блокируем
Блокировка=0;//константа заблокирована не была - можем работать
Исключение//константа заблокирована !!
Сч=Сч+1;
ОтменитьТранзакцию();
//Ожидание для возможности работы других пользователей (по совету Олега Яковлева из ЧПТФ "ЮСИ")
Стр=ТекущееВремя();
Пока Стр=ТекущееВремя() Цикл
КонецЦикла;
Если Сч=3 Тогда
//Сообщить("Капец");
Возврат 0; //залипло капитально
КонецЕсли;
КонецПопытки;
КонецЦикла;
Константа.УстановитьАтрибут(Имя,Значение);
ЗафиксироватьТранзакцию();
Возврат 1;
КонецФункции //_УстановитьЗначениеКонстанты