![]() |
|
Два com-соединения | ☑ | ||
---|---|---|---|---|
0
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 (ПараметрСоединения); Исключение КонецПопытки; |
|||
1
vicof
13.01.13
✎
18:49
|
Какие ошибки конкретно?
Во второй базе точно табличная часть называется "Товары"? |
|||
2
Vadimir
13.01.13
✎
19:02
|
конкретно
{Форма.Форма.Форма(12)}: Значение не является значением объектного типа (Очистить) док.Товары.Очистить(); я же говорю, если вызывать только ФСНажатие или БГНажатие хоть сколько раз - все прорабатывает на ура. Только стоит вызвать вторую процедуру - эта ошибка :( Платформа 8.2.17.153 Конфигурации бухгалтерий изменены, но они идентичны |
|||
3
andry73
13.01.13
✎
19:03
|
Может попробовать для каждого соединения свой COMОбъект создавать?
|
|||
4
vicof
13.01.13
✎
19:03
|
(2) Назови ПараметрСоединения2
и потом БазаФС = V8.Connect (ПараметрСоединения); |
|||
5
vicof
13.01.13
✎
19:03
|
т.е. БазаФС = V8.Connect (ПараметрСоединения2);
|
|||
6
vicof
13.01.13
✎
19:06
|
Ну и описаниеОшибки() во второй попытке выведи
|
|||
7
Vadimir
13.01.13
✎
19:19
|
попробовал и свой com-объект, и ПараметрСоединения2 - не помогает. ОписаниеОшибки() выдает
{Форма.Форма.Форма(13)}: Значение не является значением объектного типа (Очистить) |
|||
8
Fragster
гуру
13.01.13
✎
19:27
|
сделай 2 разных объекта Новый COMОбъект ("V82.COMConnector")
|
|||
9
Vadimir
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); Исключение КонецПопытки; |
|||
10
Vadimir
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); Исключение КонецПопытки; |
|||
11
vicof
13.01.13
✎
19:43
|
(7) Чего-то ты не договариваешь...
Форма в COM-соединении не доступна, если чо. |
|||
12
andry73
13.01.13
✎
19:48
|
(11) в (7) просто значит что код, работающий с COMОбъектом размещен в форме
|
|||
13
vicof
13.01.13
✎
19:48
|
(12) Да, ступил, спасибо)
|
|||
14
Vadimir
13.01.13
✎
19:53
|
да, код размещен именно в форме. перенес все в модуль обработки. Результат:
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(13)}: Значение не является значением объектного типа (Очистить) :(:(:(:(:( |
|||
15
vicof
13.01.13
✎
19:57
|
(14) я имел ввиду, что в базе, к которой цепляешься по сом-соединению, нельзя обращаться к формам объектов.
Короче, бери в руки отладчик и смотри, чего не так. Кстати, выведи Сообщить(Док); Если подозрение, что документ просто не находится. |
|||
16
vicof
13.01.13
✎
19:57
|
*Есть подозрение
|
|||
17
Vadimir
14.01.13
✎
05:07
|
Сообщить(Док) не поможет, потому что выведется "COMОбъект". А сам документ находится, смотрел в отладчике. Да и, если бы он не находился, то уже при первой попытке подключения была бы ошибка. А к любой базе подключается на ура и все прорабатывает. Тут дело именно в com-соединении... может косяк платформы? Только вот он нигде не документирован
|
|||
18
Vadimir
14.01.13
✎
09:41
|
есть еще одна зацепка...
в одной из бухгалтерий я создавал реквизит документа(НЕ реквизит ТЧ, а именно документа) для синхронизации. так вот... если этот реквизит удалить - все шикарно работает. Если его добавить(неважно как он называется и какой тип имеет) - все слетает. есть соображения? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |