Имя: Пароль:
1C
1С v8
Как программно закрыть ком соединение и вопрос по запросу )
0 Koliaff
 
25.08.11
20:44
1. Подключаюсь по ком из 7-ки в 8-ку.
Соединение    = СоздатьОбъект("V82.COMConnector");
Рез = "File="+""""+СокрЛП(КаталогБазы)+ """;"+"Usr="+ """"+СокрЛП(Пользователь)+""";"+ "Pwd = """+СокрЛП(Пароль)+""";";
База        = Соединение.Connect(Рез);
Как теперь закрыть соединение ?
2. Переношу данные из 7-ки, в 8-ку. В справочнике "Договоры" код в 7-ке состоит из 8-ми символов, в 8-ке из 9-ти. Уже введенные договора отличаются друг от друга тем, что в 8-ке добавлен пробел в самом конце кода. Какой функцией воспользоваться в запосе, чтобы этот пробел убрать для дальнейшего сравнения ?

Запрос = База.NewObject("Запрос");
       Запрос.Текст =  "ВЫБРАТЬ
           |    Договор.Ссылка
           |ИЗ
           |    Справочник.ДоговорыКонтрагентов КАК Договор
           |ГДЕ
           |    Договор.Владелец = &ВладелецСсылка
           |    И Договор.Код = &КодЭлемента
           |    И Договор.Организация=&ВыбФирма
           |    И Договор.ВидДоговора = &ВидДоговора";

=================================
Заранее большое спасибо за ответы )
1 Господин ПЖ
 
25.08.11
20:46
по запросу - ПОДОБНО
2 Koliaff
 
25.08.11
21:14
(Господин ПЖ) По запросу разобрался, спасибо. Остался первый вопрос
3 Ненавижу 1С
 
гуру
25.08.11
21:27
Соединение     = Неопределено;
4 maip1
 
25.08.11
21:28
Соединение = "";
5 Koliaff
 
25.08.11
21:43
(maip1) Соединение = ""; Не прокатило.
(Ненавижу 1С) Соединение     = Неопределено;
Это КОМ подключение, даже База.Неопределено не срабатывает.
6 Koliaff
 
25.08.11
22:19
вверх
7 maip1
 
25.08.11
22:27
Попробуйте: Соединение.Disconnect(Рез);
8 Koliaff
 
25.08.11
22:29
Поле агрегатного объекта не обнаружено (Disconnect)
9 EvgeniuXP
 
25.08.11
22:31
есть процедура по уничтожению КОМ-объекта, где-то на этом форуме пробегало когда-то...
10 DmitrO
 
25.08.11
23:01
(0)1.нужно чтобы были освобождены все объекты внешней базы, находящиеся в переменных модуля (База, Запрос и т.п.). Это можно сделать явно: присваивая им другие значения База = Неопределено; или не явно: при выходе переменной из области видимости.
(3) Соединение - это ведь только коннектор, а не IDispatch глобального контекста (это База), с помощью этого же экземпляра и к другой базе подключиться можно.
11 Koliaff
 
26.08.11
10:30
(DmitrO) Неопределено по ком не работает.
12 DmitrO
 
26.08.11
15:39
(11)что ты вкладываешь в это утверждение? Расшифруй пожалста, а? Я бы вот сказал наоборот: работает. Но поскольку это вообще-то не относится в теме топика, а ты это утверждаешь, вероятно мы имеем в виду разные вещи.
13 DmitrO
 
26.08.11
15:47
ааа, понял у тебя клиент 77.
Ну на самом деле в 77 тоже есть значение Неопределено, просто в языке 77 нет для него литерала, зато для него есть функция которая получает значение по-умолчанию для указанного типа, если тип задать как "", то оно и будет.
В твоем случае не важно каким значением освобождать переменные, можно написать База = 0, главное освобождать их.
14 Koliaff
 
26.08.11
21:39
Ни База=0, ни База=-1, не прокатывает. Соединение остаётся.
Закон Брукера: Даже маленькая практика стоит большой теории.