|
Почему при COM коннекте ошибка при создании объекта | ☑ | ||
---|---|---|---|---|
0
razbiralshik
17.07.13
✎
14:23
|
&НаКлиенте
Перем СтрокаПодключения; &НаКлиенте Перем глБаза; &НаКлиенте Функция Подлкючение() СтрокаПодключения = "Srvr='*****'; Ref='*****'; usr='*****'; pwd='*****'"; Если глБаза = Неопределено Тогда Попытка СистемнаяИнформация = Новый СистемнаяИнформация; ВерсияПлатфомы = Лев(СистемнаяИнформация.ВерсияПриложения,3); Если ВерсияПлатфомы="8.0" Тогда COM = Новый COMОбъект("V8.COMConnector"); ИначеЕсли ВерсияПлатфомы="8.1" Тогда COM = Новый COMОбъект("V81.COMConnector"); ИначеЕсли ВерсияПлатфомы="8.2" Тогда COM = Новый COMОбъект("V82.COMConnector"); КонецЕсли; глБаза = COM.Connect(СтрокаПодключения); Сообщить("Соеденено"); Исключение Сообщить("Ошибка соединения: " + ОписаниеОшибки()); глБаза=0; Возврат Ложь; КонецПопытки; Иначе Сообщить("Возможно соединение уже установленно"); КонецЕсли; КонецФункции &НаКлиенте Процедура Записывание(Команда) Подлкючение(); //НовыйВидСклада=глБаза.Перечисления.ВидыСкладов.Обычный; СправочникМенеджер=глБаза.Справочники.Валюты; глБаза.НачатьТранзакцию(); Для i=1 по 2 Цикл НовыйОбъект=СправочникМенеджер.СоздатьЭлемент(); НовыйОбъект.Наименование=Строка(i); НовыйОбъект.ПараметрыПрописиНаРусском=Строка(i); //НовыйОбъект.ВидСклада=НовыйВидСклада; НовыйОбъект.Записать(); КонецЦикла; глБаза.ЗафиксироватьТранзакцию(); КонецПроцедуры Запись дампа и падает )) В Чем причина? |
|||
1
Maxus43
17.07.13
✎
14:25
|
на какой строке падает? отладчиком иди
|
|||
2
Maxus43
17.07.13
✎
14:28
|
и ничего, что
&НаКлиенте Функция Подлкючение() будет работать только на 8.2, причем в режиме УФ? и проверки на версию платформы просто смешны... |
|||
3
razbiralshik
17.07.13
✎
14:30
|
(1) на строке записи
(2) ну и это помощь? нравится насмехаться? |
|||
4
Maxus43
17.07.13
✎
14:33
|
(3) я не намехаюсь, я говорю что код не имеет смысла, чтобы сразу убрал лишнее.
Убери транзакцию, проверь без неё |
|||
5
drcrasher
17.07.13
✎
14:38
|
(2) у него кривая копипаста:
СтрокаПодключения = "Srvr='*****'; Ref='*****'; usr='*****'; pwd='*****'"; Если глБаза = Неопределено Тогда ---- 8.х Попытка СистемнаяИнформация = Новый СистемнаяИнформация; Исключение Сообщить("Ошибка соединения: " + ОписаниеОшибки()); глБаза=0; --- глХХХХ - это из 7.7, =0 - оттуда же Возврат Ложь; КонецПопытки; так что пофиг, что и где будет исполняться =) а падает из-за кривого подключения (имхо) |
|||
6
razbiralshik
17.07.13
✎
14:43
|
(4) транзакция тут не причем. даже попробовал убрать, бестолку.
да и версию платформы получать, разве можно по другому? только если в константе хранить, а ты знаешь другие способы? (5) а что такое кривое подключение? У меня не из твоего примера, да и подключение стандартное. |
|||
7
drcrasher
17.07.13
✎
14:46
|
для начала идём в сп, вики, гугл, чтонитьещё и читаем концептуальную разницу между процедурой и функцией, потом курим функцию "подлючение", потом идём в 1с и внимательно ищем, в какой строке падает обработка.
|
|||
8
razbiralshik
17.07.13
✎
14:50
|
(7) знаю разницу, это тестовый пример, чтоже все такие умники, но никто не может помочь... и строку нашел где падает и подключение курил
|
|||
9
razbiralshik
17.07.13
✎
14:51
|
вот сп
// Создается объект-коннектор cntr = Новый COMObject("V82.COMConnector"); // создается объект COM-соединение connection = cntr.Connect("File=""c:\InfoBases\Trade""; Usr=""Director"";") если внимательно посмотреть, у меня также! |
|||
10
Maxus43
17.07.13
✎
14:52
|
(6) я сказал что версию платофрмы нет смысла проверять тут.
на платформах 8.0 и 8.1 это работать не будет всё равно |
|||
11
Галахад
гуру
17.07.13
✎
14:59
|
Может код, надо присвоить?
|
|||
12
razbiralshik
17.07.13
✎
15:05
|
(11) ты прав здравый человек )) как я мог такое забыть....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |