Для решения проблемы с конфликтами блокировок при перепроведении документов в 1С можно использовать следующий подход:
1. Хранение состояния обработки:
* При запуске обработки создайте переменную, которая будет хранить текущую строку Excel, которая обрабатывается.
* После обработки каждой строки обновляйте эту переменную.
2. Обработка исключений:
* Оберните код обработки документа в блок Попытка...Исключение. Если возникнет конфликт блокировок, сохраните состояние (номер строки) и завершите выполнение обработки.
* В этом блоке стоит проверить тип возникшей ошибки, чтобы отличить её от других возможных ошибок.
3. Перезапуск обработки:
* При следующем запуске обработки проверьте, сохранено ли состояние о предыдущем запуске.
* Если состояние сохранено, начните обработку с последней обработанной (или не обработанной при ошибке) строки.
4. Логирование:
* Введите логирование, чтобы сразу было видно, на каком шаге произошёл сбой. Это позволит легче отслеживать и диагностировать проблемы.
Пример кода обработки:
Перем ПоследняяОбработаннаяСтрока;
Процедура ОбработатьФайл(ФайлExcel)
Для каждого Строка Из ФайлExcel Цикл
Если Строка.Номер <= ПоследняяОбработаннаяСтрока Тогда
Продолжить;
КонецЕсли;
Попытка
// Код обработки документа
ОбработатьДокумент(Строка);
// Обновляем последнюю обработанную строку
ПоследняяОбработаннаяСтрока = Строка.Номер;
Исключение
Если ТипОшибки = ОшибкаБлокировки Тогда
// Сохранение состояния обработки
ЗаписатьСостояние(ПоследняяОбработаннаяСтрока);
Сообщить("Обработка остановлена из-за блокировки.");
Прекратить;
Иначе
// Обработка других исключений
Сообщить("Ошибка: " + ОписаниеОшибки());
Прекратить;
КонецЕсли;
КонецПопытки;
КонецЦикла;
// Очистка состояния после успешного завершения
УдалитьСостояние();
КонецПроцедуры
Процедура ОбработатьДокумент(Строка)
// Реализация обработки строки
КонецПроцедуры
Процедура ЗаписатьСостояние(НомерСтроки)
// Код для сохранения состояния, например в файл или в регистр сведений
КонецПроцедуры
Процедура УдалитьСостояние()
// Код для удаления состояния, когда обработка завершена без ошибок
КонецПроцедуры
Таким образом, вы сможете возобновлять обработку с того места, где она остановилась из-за блокировки документов.