компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > 1C (Все версии) > WEB расширение 1С 8.0

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 27.04.2006, 07:01   #1
Пользователи
 
Регистрация: 27.04.2006
Сообщений: 9
По умолчанию

В форме, предназначенной для авторизации ASP-приложения, создается соединение с базой данных 1С.

Есть другая форма (стартовая страница приложения), созданная конструктором. В ней список документов определенного типа. При открытии этой формы (после авторизации) создается новое соединение.

Как сделать, чтобы эта вторая форма на открывала новое соединение с базой, а использовала то, которое было создано на этапе авторизации?




D_sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
27.04.2006, 07:01
Техник
реклама
По умолчанию

Старый 28.04.2006, 06:20   #2
Пользователи
 
Регистрация: 06.04.2004
Сообщений: 714
По умолчанию

Приходит на ум две причины.

1 Юзера разные. Может быть при первом коннекте соединяешься один юзером (например что-бы найти пользователя в справочнике), а потом соединяешься другим, рабочим. Каждому юзеру свое соединение. Это нормально.

2. Где-то получаешь какой нибудь объект ( ComObject ), тем самым открываешь ещё одно соединение. Такие соединения всегда надо закрывать. Я для этого using использую
pauluss вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 28.04.2006, 11:29   #3
Пользователи
 
Регистрация: 27.04.2006
Сообщений: 9
По умолчанию

С юзерами не совсем все просто.
Система интернет-заказов. Пользователь базы 1С один - звать его, скажем, "WEB". Имя и пароль прописаны в web.config.
Клиентов много, они меняются - создавать для них пользователей в 1С не нужно.
Для них есть регистр сведений с именами и паролями.
При авторизации создается соединение, которое затем помещается в параметр сессии Session["Connection"]. На стороне 1С создается есть параметр сеанса (по которому потом идет отбор данных)

Но больше похоже на 2. Где-то форма создает новое подключение (несмотря на то, что объектам типа
...DataSource свойство Connection назначаю непосредственно в процедуре инициализации форм.

Отладка помогает, но несильно. Не могу въехать, где открываются и закрываются соединения.
D_sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 28.04.2006, 11:49   #4
Пользователи
 
Регистрация: 06.04.2004
Сообщений: 714
По умолчанию

Ты решил подойти нестандартно. Значит надо смотреть на код.
Где открываются соединения можно понять юзая сервер приложений.
Запусти "Серверы 1с предприятия", потом иди отладчиком и смотри чё изменилось на каком шаге.
pauluss вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 28.04.2006, 12:32   #5
Пользователи
 
Регистрация: 27.04.2006
Сообщений: 9
По умолчанию

Я бы и рад подойти более стандартно, но видимо не совсем прочувствовал идеологию веб-приложения, да еще в сочетании с асп.

Наставил ловушек в 1С - оказывается за время сеанса моего приложения (пока только форма авторизации и форма списка неких документов) - события "ПриНачалеРаботыСистемы" и "ПриЗавершенииРаботыСистемы" отрабатывают раз по 8 каждое... Мягко говоря, озадачен.
Учитывая, что сеанс 1С открывается 1 единственный раз (по мнению журнала регистрации).

Похоже, веб-расширение создает и удаляет соединения на каждый чих. Поди их отлови.
D_sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 29.04.2006, 09:03   #6
Пользователи
 
Регистрация: 06.04.2004
Сообщений: 714
По умолчанию

Вот блин, вчера уже отвечал в этой теме, видать не сохранил

В обчем советую идти стандартным путем.
Из переменных сессии соединение убей, лучше храни там id клиента или логин с паролем, как удобнее.
Убей все ".. = new V8DbConnection", и "Connection.Open"
Контролы источники данных сами создают соединения, сами закрывают, парится не надо.
Посмотри что получилось, а потом потихоньку осторожно юзай ComObject-ы там где это надо, заворачивай их в using
pauluss вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 03.05.2006, 06:46   #7
Пользователи
 
Регистрация: 26.04.2006
Сообщений: 5
По умолчанию

Спасибо за помощь!

Есть еще несколько вопросов:

1. Источники данных создают подключения сами, но можно ли при создании подключений заставить их передавать в 1С повторно авторизационную информацию (те самые id клиента и логин с паролем)?
Проблема - во второй сессии приложения эти контролы используют соединение, созданное первой сессией - а этого нужно избежать, либо заново авторизоваться (в том числе и при обновлении формы).

2. В чем смысл "using"? (сорри, так уж вышло - не знаю)

3. Где назначаются обработчики событий начала, конца сессии, приложения?
Тупое копирование процедур из global.asax не помогает.

D-sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 05.05.2006, 14:38   #8
Пользователи
 
Регистрация: 06.04.2004
Сообщений: 714
По умолчанию

По поводу авторизации юзеров: Лучше когда каждый юзер авторизуется под собой, пример уже приводили, поищи. Было это.

2. Почитай документацию по C#
3. на вебе это glabal.asax. Не пойму зачем что-то оттуда копировать? На стороне 1С это модуль внешнего соединения.
pauluss вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 10.05.2006, 08:56   #9
Пользователи
 
Регистрация: 26.04.2006
Сообщений: 5
По умолчанию

Цитата:
По поводу авторизации юзеров: Лучше когда каждый юзер авторизуется под собой, пример уже приводили, поищи. Было это.

2. Почитай документацию по C#
3. на вебе это glabal.asax. Не пойму зачем что-то оттуда копировать? На стороне 1С это модуль внешнего соединения.

Да, спасибо! Так и делаю. Закрываем тему.
D-sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 08:53. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2