Имя: Пароль:
1C
1С v8
Работа с внешним соединением иногда завершается аварийно, а иногда нет.
0 Knowledge
 
12.09.13
19:56
Запускаю Внешнюю обработку из  bat файла .  Обработка открывает внешнюю базу данных с помощью объекта  «V82.COMConnector» (cntr = Новый COMObject("V82.COMConnector");
connection = cntr.Connect(…)". Сначала считываются данные из справочника вызывающей базы, затем на основе этих данных создаются и заполняются элементы справочника в вызываемой базе. Затем соединение с базой уничтожаются (обнуляются переменные connection =””; cntr).
По какой- то причине 1с иногда завершается с аварийным кодом, а иногда всё походит гладко.
Работы происходят на Server 2003 в терминале.
В чем может быть причина? (код не могу предоставить, сервер на работе недоступен сейчас).
1 Knowledge
 
12.09.13
20:43
Up
2 Knowledge
 
13.09.13
07:42
Up
3 Knowledge
 
13.09.13
07:46
Вот Код:

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    ПолучитьСписокСотрудников();
    ПолучитьСоиденениеСвнешнейБазой();
    //-------------------------------------    
    Если ПараметрЗапуска = "Stop" Тогда
        Сформировать();
        ОтключитьСоидененниеСвнешнейБазой();
        Отказ = Истина;
        ЗавершитьРаботуСистемы(Ложь);    
    КонецЕсли;    
КонецПроцедуры

//-------------------------------------------------
Функция ПолучитьСоиденениеСвнешнейБазой()
    Если Подключено Тогда
        Сообщить("Соединение с базой: "+ СтокаПодключения + " уже установлено !");
        Возврат Подключено ;
    КонецЕсли;
    Возвращаем = Ложь;    
    Попытка
        cntr = Новый COMObject("V82.COMConnector");
        connection = cntr.Connect(СтокаПодключения);
        Сообщить("+++++ Соединение с базой: "+ СтокаПодключения + " установлено +++++");
        Подключено = Истина;
        Возвращаем = Подключено;
    Исключение
        Сообщить("-----Соединение с базой: "+ СтокаПодключения + " не установлено ------");
    КонецПопытки;
    Возврат Возвращаем;
КонецФункции //ПолучитьСоидененниеСвнешнейБазой

//-------------------------------------------------
Процедура ОтключитьСоидененниеСвнешнейБазой()
    Если Подключено = Ложь Тогда
        Сообщить("Соединение с базой: "+ СтокаПодключения + " уже разорвано!");
        Возврат ;
    КонецЕсли;
    connection ="";
    cntr="";
    Подключено= Ложь;
    Сообщить("Соединение с базой: "+ СтокаПодключения + "  разорвано!");
КонецПроцедуры //ОтключитьСоидененниеСвнешнейБазой
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.