Ситуация.
Осуществляется OLE синхронизация базы на одном сервере с другой базой на другом (ОС - Win 2003 /лиц./, железо хорошее. 1С 7.7 /лиц./, сетевая, 25 релиз).
Кроме того после установления коннекта через OLE для ускорения некоторых операций синхронизации цепляемся к другой базе на уровне dbf-файлов через ODBC.
И понеслась ...
Это все происходит по ночам после сохранения базы и ее переиндексации (по событию "ОбработкаОжидания").
По ночам у нас никто не работает.
После того как синхронизация отрабатывает 1С закрывается.
Все прекрасно работало уже больше года до предыдущих выходных.
После них при ночном старте обработки по расписанию появляется сообщение
Заголовок окна - "Сервер занят"
Само сообщение -
"Действие не может быть завершено, так как другая программа занята
Для перехода к этой программе воспользуйтесь кнопкой "Переключится""
и три кнопки "Переключится", "Повторить" и "Отмена" (неактивная)
После нажатия клавиши "Переключится" все замечательно работает. В ручном режиме
когда запускаешь обработку никаких впоросов и сообщений не возникает - в не зависимости
от того сколько пользователей в какой базе работает.
В 1С никого. Все базы реиндексированы. С процедурой "ПриНачалеРаботыСистемы" все впорядке.
Вопрос.
Как сделать так чтобы это окошко не появлялось или автоматически в нем нажималась бы кнопка "переключится"?
Из-за чего оно стало появлятся если в исходном коде и в расписании синхронизаций никто ничего не менял?
// 1) Запуск OLE
---------------
Если ФС.СуществуетФайл(Пут+"1Cv7.md")=1 Тогда
Попытка
Открыта=База.Initialize(База.RMTrade," /d"+Пут+" /N" + ПользовательДиалог+ " /P" +Пароль, "NO_SPLASH_SHOW");
...
---------------
// 2) Цепляемся через ODBC драйвер
---------------
Попытка
конект_l1 = СоздатьОбъект("ODBCRecordSet");
Исключение
Если ЗагрузитьВнешнююКомпоненту("1cpp.dll")=0 тогда
Предупреждение ("Компонента 1с++ не найдена");
СтатусВозврата(0);
Возврат;
КонецЕсли;
конект_l1 = СоздатьОбъект("ODBCRecordSet");
КонецПопытки;
м = СоздатьОбъект("MetaInfoClasses");
Если м.ЭтоSQL_Версия()=0 тогда
СтрокаПодключения = "driver=Microsoft Visual FoxPro Driver;Exclusive=No;SourceType=DBF;SourceDB="+СокрЛП(Пут);
Одбс = СоздатьОбъект("ODBCDatabase");
ДрК = Одбс.DriverConnect(СтрокаПодключения);
Если ДрК = 0 Тогда
Сообщить(Одбс.ПолучитьОписаниеОшибки());
КонецЕсли;
конект_l1.УстБД(Одбс);
КонецЕсли;
---------------