Вход | Регистрация

1С:Предприятие ::

Метки: 

Два com-соединения

Я
   Vadimir
 
13.01.13 - 18:37
Здравствуйте, уважаемые!
Проблема - пытаюсь из УТ-шки соединиться с 2-мя бухгалтериями по com. Если постоянно связываться только с одной (любой) - все нормально. Только пытаешься свзаться со 2-й - начинают идти ошибки на метод Очистить таб. части отчета комиссионера.
Сначала думал, может в переносе проблема. Смоделировал ситуацию на простой обработке. Если в этой обработке постоянно надимать только на одну кнопку(любую) - все отлично. Если после этого нажать на вторую - та же самая ошибка.
Кто-нибудь сталкивался с таким?
вот код:

Перем V8, БазаБГ, БазаФС;

Процедура БГНажатие(Элемент)
    док = БазаБГ.Документы.ОтчетКомиссионераОПродажах.НайтиПоНомеру("БПБГ140", Дата("20121221")).получитьобъект();
    док.Товары.Очистить();
    док.Покупатели.Очистить();
    Сообщить("ГотовоБГ");
КонецПроцедуры

Процедура ФСНажатие(Элемент)
    док = БазаФС.Документы.ОтчетКомиссионераОПродажах.НайтиПоНомеру("БПФС0000001", Дата("20121011")).получитьобъект();
    док.Товары.Очистить();
    док.Покупатели.Очистить();
    Сообщить("ГотовоФС");
КонецПроцедуры

ПараметрСоединения = "File=""D:\1cBases\БГ Бух"";Usr=""Администратор"";Pwd=""718070""";
V8 = Новый COMОбъект ("V82.COMConnector");
Попытка
    БазаБГ = V8.Connect (ПараметрСоединения);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;
ПараметрСоединения = "File=""D:\1cBases\Фудснаб""";
Попытка
    БазаФС = V8.Connect (ПараметрСоединения);
Исключение
КонецПопытки;
 
 
   vicof
 
1 - 13.01.13 - 18:49
Какие ошибки конкретно?
Во второй базе точно табличная часть называется "Товары"?
   Vadimir
 
2 - 13.01.13 - 19:02
конкретно
{Форма.Форма.Форма(12)}: Значение не является значением объектного типа (Очистить)
    док.Товары.Очистить();

я же говорю, если вызывать только ФСНажатие или БГНажатие хоть сколько раз - все прорабатывает на ура. Только стоит вызвать вторую процедуру - эта ошибка :(

Платформа 8.2.17.153
Конфигурации бухгалтерий изменены, но они идентичны
   andry73
 
3 - 13.01.13 - 19:03
Может попробовать для каждого соединения свой COMОбъект создавать?
   vicof
 
4 - 13.01.13 - 19:03
(2) Назови ПараметрСоединения2
и потом БазаФС = V8.Connect (ПараметрСоединения);
   vicof
 
5 - 13.01.13 - 19:03
т.е. БазаФС = V8.Connect (ПараметрСоединения2);
   vicof
 
6 - 13.01.13 - 19:06
Ну и описаниеОшибки() во второй попытке выведи
   Vadimir
 
7 - 13.01.13 - 19:19
попробовал и свой com-объект, и ПараметрСоединения2 - не помогает. ОписаниеОшибки() выдает 
{Форма.Форма.Форма(13)}: Значение не является значением объектного типа (Очистить)
   Fragster
 
8 - 13.01.13 - 19:27
сделай 2 разных объекта Новый COMОбъект ("V82.COMConnector")
   Vadimir
 
9 - 13.01.13 - 19:32
не работает 
ПараметрСоединения = "File=""D:\1cBases\БГ Бух"";Usr=""Администратор"";Pwd=""718070""";
V8 = Новый COMОбъект ("V82.COMConnector");
V81 = Новый COMОбъект ("V82.COMConnector");
Попытка
    БазаБГ = V8.Connect (ПараметрСоединения);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;
ПараметрСоединения2 = "File=""D:\1cBases\Фудснаб""";
Попытка
    БазаФС = V82.Connect (ПараметрСоединения2);
Исключение
КонецПопытки;
   Vadimir
 
10 - 13.01.13 - 19:33
т.е.

ПараметрСоединения = "File=""D:\1cBases\БГ Бух"";Usr=""Администратор"";Pwd=""718070""";
V8 = Новый COMОбъект ("V82.COMConnector");
V82 = Новый COMОбъект ("V82.COMConnector");
Попытка
    БазаБГ = V8.Connect (ПараметрСоединения);
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;
ПараметрСоединения2 = "File=""D:\1cBases\Фудснаб""";
Попытка
    БазаФС = V82.Connect (ПараметрСоединения2);
Исключение
КонецПопытки;
 
 Рекламное место пустует
   vicof
 
11 - 13.01.13 - 19:43
(7) Чего-то ты не договариваешь...
Форма в COM-соединении не доступна, если чо.
   andry73
 
12 - 13.01.13 - 19:48
(11) в (7) просто значит что код, работающий с COMОбъектом размещен в форме
   vicof
 
13 - 13.01.13 - 19:48
(12) Да, ступил, спасибо)
   Vadimir
 
14 - 13.01.13 - 19:53
да, код размещен именно в форме. перенес все в модуль обработки. Результат:

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(13)}: Значение не является значением объектного типа (Очистить)

 
:(:(:(:(:(
   vicof
 
15 - 13.01.13 - 19:57
(14) я имел ввиду, что в базе, к которой цепляешься по сом-соединению, нельзя обращаться к формам объектов.
Короче, бери в руки отладчик и смотри, чего не так.

Кстати, выведи Сообщить(Док);
Если подозрение, что документ просто не находится.
   vicof
 
16 - 13.01.13 - 19:57
*Есть подозрение
   Vadimir
 
17 - 14.01.13 - 05:07
Сообщить(Док) не поможет, потому что выведется "COMОбъект". А сам документ находится, смотрел в отладчике. Да и, если бы он не находился, то уже при первой попытке подключения была бы ошибка. А к любой базе подключается на ура и все прорабатывает. Тут дело именно в com-соединении... может косяк платформы? Только вот он нигде не документирован
   Vadimir
 
18 - 14.01.13 - 09:41
есть еще одна зацепка...
в одной из бухгалтерий я создавал реквизит документа(НЕ реквизит ТЧ, а именно документа) для синхронизации. так вот... если этот реквизит удалить - все шикарно работает. Если его добавить(неважно как он называется и какой тип имеет) - все слетает.
есть соображения?


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует