Нашел пример обработки с использованием ReconnectNative() для группового проведения документов, немного подправил для своего случая, но увы при проведении после второго реконнекта 1С вываливается без звука
Процедура Выполнить()
База=СоздатьОбъект("ODBCDatabase");
Запрос=СоздатьОбъект("ODBCRecordset");
Запрос.УстановитьТекстовыйПараметр("НачДата",НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата",КонДата);
ТЗ=Запрос.ВыполнитьИнструкцию("
|select
| iddoc [Документ $Документ],
| iddocdef Документ_вид
|from _1sjourn j (nolock)
|where j.date_time_iddoc between :НачДата and :КонДата~
// | and closed = 1
|order by j.date_time_iddoc
|");
ДоковВСеансе=5;
Сч=ДоковВСеансе;
ДокОбъект=СоздатьОбъект("Документ");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
Док=ТЗ.Документ;
Если ((Док.Вид()="РасходнаяНакладная") Или (Док.Вид()="ПеремещениеТМЦ")
Или (Док.Вид()="КорректировкаСклада") Или (Док.Вид()="СписаниеТМЦ")
Или (Док.Вид()="РасходнаяНакладнаяИтог") Или (Док.Вид()="ПоступлениеТМЦ")
Или (Док.Вид()="РезервированиеТовара") Или (Док.Вид()="КорректировкаПоступлениеТМЦ")
Или (Док.Вид()="ОприходованиеТМЦ") Или (Док.Вид()="СчетФактураВыданный")
Или (Док.Вид()="ТовЧек_Накладная") Или (Док.Вид()="НакладнаяУпр"))Тогда
ДокОбъект.НайтиДокумент(Док);
Сообщить(ТЗ.Документ);
ДокОбъект.Провести();
Сч=Сч-1;
Если Сч=0 Тогда
Сообщить("============================ Реконнект ================================");
База.ReconnectNative();
Сч=ДоковВСеансе;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
пробовал изменять переменную ДоковВСеансе - все равно закономерность четкая сразу после второго реконнекта 1С вываливается
1С 25sql -релиз, 1С++ 1.8.1.6
Вываливается и именно при попытке выполнить
ДокОбъект.Провести()
для первого документа проводимого после второго реконнекта
Забыл упамянуть обработка тестируется на sql2000 SP4
вернулся к оригиналу обработки, единственно заремил строку | and closed = 1, т.к. в моем случае нужно сначала делать все документы непроведенными (что и было сделано до этого другой обработкой не использующей данный метод)
Вообщем эффект вываливания 1С тотже, при почти исходном коде
Процедура Выполнить()
База=СоздатьОбъект("ODBCDatabase");
Запрос=СоздатьОбъект("ODBCRecordset");
Запрос.УстановитьТекстовыйПараметр("НачДата",НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата",КонДата);
ТЗ=Запрос.ВыполнитьИнструкцию("
|select
| iddoc [Документ $Документ],
| iddocdef Документ_вид
|from _1sjourn j (nolock)
|where j.date_time_iddoc between :НачДата and :КонДата~
// | and closed = 1
|order by j.date_time_iddoc
|");
ДоковВСеансе=5;
Сч=ДоковВСеансе;
ДокОбъект=СоздатьОбъект("Документ");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
ДокОбъект.НайтиДокумент(ТЗ.Документ);
Сообщить(ТЗ.Документ);
ДокОбъект.Провести();
Сч=Сч-1;
Если Сч=0 Тогда
Сообщить("============================ Реконнект ================================");
База.ReconnectNative();
Сч=ДоковВСеансе;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Пробовал проводить в другой базе не отменяя проведение документов за выбранный период
- процесс длится немного дольше, происходит порядка 6-7 реконектов, но затем выскакивает ошибка
"Invalid Handle", а затем сообщение "Невосстановимая ошибка базы" и 1С снова вываливается