новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к материалу: Узкое место в COM-соединении

    • #1
    • 12.02.2013 13:29
    0
    Для взаимообмена информациоей между двумя информационными базами без посторонних выгрузок и файлов обмена нет ничего лучше COM-сединения. И с этим трудно поспорить, потому что использовать этот вид соединения в достаточной мере просто и стабильно. Но в и в данном механизме есть одно узкое и неприятное место, о чем и будет рассказано в этой статье.  Подробнее>>
    • #2
    • 12.02.2013 13:30
    0
    Вместо переменной на клиенте, лучше хранить соединение в параметрах сеанса, только желательно проверять на неопределено, висит ли действительно там com соединение, у меня оно примерно минут через 20 отваливается, если нет активности.
    • #3
    • 12.02.2013 13:38
    0
    А почему на сервере то нельзя хранить com-соединение?
    • #4
    • 12.02.2013 13:39
    0
    Какого типа параметр сеанса у вас? На сколько я знаю, раньше нельзя было вешать туда com объект. Хотя возможно, в последних версиях платформы добавились какие то новые типы...
    • #5
    • 12.02.2013 13:40
    • Отредактировано: 12.02.2013 13:40:59
    0
    Вадим
    А почему на сервере то нельзя хранить com-соединение?


    Речь идет о многократном использование com соединения, при выходе из серверной процедуры, все переменные обнуляются и приходиться заново соединяться
    • #6
    • 12.02.2013 13:45
    • Отредактировано: 12.02.2013 13:46:13
    0
    Евгений
    Какого типа параметр сеанса у вас?


    У меня строка = 1024.

    И я сразу не подписал, используется временное хранилище.

    Вот пример кода.

    	ЕстьСоединение = Ложь;
    	Попытка
    		Если ПараметрыСеанса.СтрокаСоединения<> "" Тогда
    			мСоединение = ПолучитьИзВременногоХранилища(ПараметрыСеанса.СтрокаСоединения);
    			ЕстьСоединение = Истина
    		КонецЕсли;
    	Исключение
    	КонецПопытки;
    	
    	Если мСоединение = Неопределено Тогда
    		ЕстьСоединение = Ложь;
    	КонецЕсли;
    	
    	Если НЕ ЕстьСоединение Тогда
    		Попытка
    			Если мСоединение = Неопределено Тогда
    				Коннектор = Новый COMObject("V81.COMConnector");
    				мСоединение = Коннектор.Connect("Srvr = ""serv""; Ref = ""UT""; Usr = ""ВнешнееСоединение""; Pwd = ""123""");
    			КонецЕсли;
    			ПараметрыСеанса.СтрокаСоединения = ПоместитьВоВременноеХранилище(мСоединение, Новый УникальныйИдентификатор);
    			дЗапрос = мСоединение.NewObject("Запрос");
    		Исключение
    			Сообщить("Соединение с базой УТ не установлено. " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
    			Возврат;
    		КонецПопытки;
    	КонецЕсли;
    	ПараметрыСеанса.СтрокаСоединения = ПоместитьВоВременноеХранилище(мСоединение, Новый УникальныйИдентификатор);
    • #7
    • 12.02.2013 23:21
    0
    Начислено 1000 рублей в рамках акции
    • #8
    • 21.02.2013 09:10
    0
    Ну автор молодец конечно. Все картинки из моей статьи скопировал)

    http://devel1c.blogspot.ru/2012/12/com-1.html
    • #9
    • 21.02.2013 12:02
    0
    этот автор несколько ваших статей выложил
    • #10
    • 21.02.2013 12:22
    0
    Пермитин Юрий Анатольевич
    Ну автор молодец конечно. Все картинки из моей статьи скопировал)


    Юрий Анатольевич, это статьи из вашего блога? К сожалению не сразу проверили на копипаст. Можно поступить следующим образом: удалить статьи или поменять в них авторство на ваше, указав ссылку на источник. Обращайтесь в приват.
    • #11
    • 21.02.2013 15:39
    0
    Приношу свои извинения. сам был как посредником в публикации статей и не проверял ничего.
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться