Также вот столкнулся с проблемой паузы.
Запретили использование как скриптов так и внешних компонент. Возмутило страшно, тем более что не обосновали такой подход (хз. может на Линуксе парятся и что-то переписывают).
Идея: реализовать паузу с использованием ОбработкиОжидания, передать ей список объектов и пусть она кусками выполняет действия через определенное время.
Изменяемые реквизиты существующих объектов передавать в ТаблицеЗначений. Графа Объект - Объект МД, графа реквизиты (тип - СписокЗначений) -список изменяемых реквизитов (типа ДобавитьЗначение("ИмяРеквизита",Значение)).
Для наглядности привожу такой код перепроведения документов с помощью внешней обработки:
перем гпСписДоков;//глобальный список значений
//======================================================================
Процедура ПровестиОжидая()
Если ПустоеЗначение(гпСписДоков) = 1 Тогда
Форма.Заголовок("Проведены все документы");
Форма.ОбработкаОжидания("ПровестиОжидая",0);//Отключаем ожидание
Иначе
НачатьТранзакцию();
лпБлок = 0; // Признак того что документ кем-то открыт
лпДокумент = СоздатьОбъект("Документ");
лпКоличествоДокументов = Мин(100,гпСписДоков.РазмерСписка());
Для лпНомСпис = 1 По лпКоличествоДокументов Цикл
лпДокумент.НайтиДокумент(гпСписДоков.ПолучитьЗначение(лпНомСпис));
Если (лпДокумент.Блокировка(1)=1) Тогда
лпДокумент.Блокировка(0);
лпДокумент.Провести();
Иначе
ОтменитьТранзакцию();
лпБлок = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если лпБлок = 0 Тогда
Попытка
ЗафиксироватьТранзакцию();
гпСписДоков.УдалитьЗначение(1,лпКоличествоДокументов);
Исключение
ОтменитьТранзакцию();
КонецПопытки;
КонецЕсли;
Форма.Заголовок("Осталось провести "+гпСписДоков.РазмерСписка()+" документов");
КонецЕсли;
КонецПроцедуры // ОжиданиеПроведения
//======================================================================
Процедура Сформировать()
гпСписДоков = СоздатьОбъект("СписокЗначений");
лпДокумент = СоздатьОбъект("Документ");
лпДокумент.ВыбратьДокументы();
Пока лпДокумент.ПолучитьДокумент(НачДата, КонДата) = 1 Цикл
Если лпДокумент.Проведен() = 1 Тогда
гпСписДоков.ДобавитьЗначение(лпДокумент.ТекущийДокумент());
КонецЕсли;
КонецЦикла;
Форма.ОбработкаОжидания("ПровестиОжидая",10);//Запуск через 10 сек.
КонецПроцедуры
Код на 8-й реализуемый, сори но пишу только для 7.7.
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)