Имя: Пароль:
1C
 
COM соединение NewObject Запрос в другой базе
0 DenisVich
 
10.04.17
08:54
Здравствуйте, вот у меня следующая проблема есть обработка которая должна соединиться с внешней базой, но NewObject в 8.3 почему-то не работает.Выдает: "Метод объекта не обнаружен (NewObject)" Как решить проблему? Спасибо.
Конфигурации идиентичны. УФ. Платформа 8.3.9.2170.
Код:
Функция ПолучитьПодключениеКОсновнойБДМагазина(Путь,ИмяУдаленногоПользователя,ПарольУдаленногоПользователя)
    Если СОКРЛП(ПарольУдаленногоПользователя) = "" Тогда
        ПараметрыСоединения = "File="+Путь+"; Usr="+ИмяУдаленногоПользователя+";";

    Иначе
        ПараметрыСоединения = "File="""+Путь+"""; Usr="""+ИмяУдаленногоПользователя+""";Pwd="""+ПарольУдаленногоПользователя+""";";
    КонецЕсли;
    Попытка
        V83COMConnector= Новый COMОбъект("V83.COMConnector");
        Base1С = V83COMConnector.Connect(ПараметрыСоединения);
        Возврат Base1С;
    Исключение
        //Предупреждение ("Ошибка подключения!");
        Сообщить("Ошибка подключения!");
        Сообщить(ОписаниеОшибки());
        Возврат Неопределено
    КонецПопытки;                        
КонецФункции

Основная процедура:
        Соединение = ПолучитьПодключениеКОсновнойБДМагазина(Объект.ПутьКБазеДанных,Объект.ИмяПользователя,Объект.Пароль);
        Если Соединение = Неопределено Тогда
            Сообщить("Не удалось подключиться к базе");
            Возврат
        КонецЕсли;
        Запрос = Соединение.NewObject("Запрос",
        "ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.Склад,
        |    ТоварыНаСкладахОстатки.Номенклатура,
        |    ТоварыНаСкладахОстатки.Характеристика,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток,
        |    ТоварыНаСкладахОстатки.ор_РезервОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Склад = &Склад
        |    И ТоварыНаСкладахОстатки.Номенклатура = &Номенклатура");
        Номенклатура = Соединение.Справочники.Номенклатура.НайтиПоКоду(Объект.Номенклатура.Код);
        СкладМагазина = Соединение.Справочники.Склады.НайтиПоКоду(Объект.Склад.Код);
1 DenisVich
 
10.04.17
08:54
А например:
"Номенклатура = Соединение.Справочники.Номенклатура.НайтиПоКоду(Объект.Номенклатура.Код);"
Находит значение
2 Рэйв
 
10.04.17
09:12
ТипЗнч(Соединение) в табло что говорит перед вызовом метода?
3 DenisVich
 
10.04.17
09:24
Да COM там.
Притом если без текста запроса:
Запрос = Соединение.NewObject("Запрос");
Работает, но как запрос подставить?
4 Rovan
 
гуру
10.04.17
09:26
а может так лучше

Запрос = Соединение.NewObject("Запрос");
Запрос.Текстзапроса = "ВЫБРАТЬ
5 Dotoshin
 
10.04.17
09:29
(3) Попробуй вместо "Запрос" написать "Query"
6 Dotoshin
 
10.04.17
09:32
+ (5) И еще имя переменной Запрос я бы поменял на другое, не пересекающееся с зарезервированными именами....
7 DenisVich
 
10.04.17
09:32
Глюкануло платформу. Выключил почистил кэш. Все нормально. Параметры отказывался видеть - Запрос.Текст.
Закон Брукера: Даже маленькая практика стоит большой теории.