×
×
+ Ответить в теме
Показано с 1 по 2 из 2
  1. #1
    kutanou
    Гость

    Интересная проблема с OLE в 1С 7.7

    Ситуация.
    Осуществляется 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.УстБД(Одбс);

    КонецЕсли;
    ---------------

  2. #2
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    У вас что-то на сервере произошло. Скорее всего просто увеличился объем базы и OLE сервер не успевает стартовать за отведённый ранее период.
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

+ Ответить в теме

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы можете создавать новые темы
  • Вы можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •