22.11.13 — 07:53
Доброго времени суток, уважаемые знатоки 1С !
Прошу помочь мне с такой проблемой (изначально я нашел похожее описание здесь: v8: Как из 8.2 через ком подключиться к 7.7 SQL, но потом пошел дальше). Изначально имею код:
v7 = Новый COMObject(«V77.Application»);
Пользователь = «админ»;
Пароль =»админ»;
ПутьКБазе77 = «D:basesбаза2012»;
v7.Initialize(v7.RMTrade,»/D» + ПутьКБазе77+ » /N»+Пользователь+» /P» + Пароль,»NO_SPLASH_SHOW»);
Спр = v7.СоздатьОбъект(«Справочник.Валюты»);
Спр.Выбрать();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Сообщить(Спр.Наименование);
КонецЦикла;
Цель у меня какая: подключиться к базе 7.7 из 8.2 и делать выборки некоторых объектов, как если бы я находился в Конфигураторе 7.7. На данный момент имею ошибку:
{Форма.Форма.Форма(31)}: Метод объекта не обнаружен (СоздатьОбъект)
Спр = v7.СоздатьОбъект(«Справочник.Валюты»);
Что может быть не так?
1 — 22.11.13 — 09:03
Строку
Спр = v7.СоздатьОбъект(«Справочник.Валюты»);
заменил на:
Спр = v7.CreateObject(«Справочник.Валюты»);
Ошибок нет, но 1с 8.2 стала просто зависать((((
Уважаемые, прошу, не проходите мимо!
2 — 22.11.13 — 09:05
В каком месте виснет?
3 — 22.11.13 — 09:05
При выполнении этой процедуры.
4 — 22.11.13 — 09:11
И чего всех прет подключатся из 8.х к 7.7.?
из 7.7. к 8.х по СОМ намного удобнее же работать!
Мазохисты.
5 — 22.11.13 — 09:13
(0) по твоей ссылке 9-ый пост v8: Как из 8.2 через ком подключиться к 7.7 SQL
может дело в COMObject(«V77.Application»); вместо COMObject(«V1CEnterprise.Application»); ?
6 — 22.11.13 — 09:18
(5) Менял
v7 = Новый COMObject(«V77.Application»);
на
v7 = Новый COMObject(«V1CEnterprise.Application»);
результат прежний, ошибка остается:
{Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (CreateObject)
Спр = v7.CreateObject(«Справочник.Валюты»);
по причине:
Произошла исключительная ситуация (1С:Предприятие): Неудачная попытка создания объекта (Справочник.Валюты): 0
7 — 22.11.13 — 09:21
По уму нужно v7.Initialize(v7.RMTrade,»/D» + ПутьКБазе77+ » /N»+Пользователь+» /P» + Пароль,»NO_SPLASH_SHOW»); делать в Попытке. Попробуй, посмотри на результат.
7.7 стоит правильно — прописана в реестре и т.д.?
8 — 22.11.13 — 09:22
(4) +100500
9 — 22.11.13 — 09:22
(0) тебе принципиально подключатся к 77 из 82 ? сделай наоборот или подключайся к 77 по ОЛЕ
10 — 22.11.13 — 09:25
(4) и (9) В моем случае база 8.2 одна, а 7.7 — несколько.
Я пробовал сделать:
v7 = Новый COMОбъект(«V77.ComConnector»);
но получил ошибку:
{Форма.Форма.Форма(4)}: Ошибка при вызове конструктора (COMОбъект)
v7 = Новый COMОбъект(«V77.ComConnector»);
по причине:
Недопустимая строка с указанием класса
Что не так?
(7) Пробовал и попытку, ошибка та же, про установку и реестр не в курсе, ставил не я.
11 — 22.11.13 — 09:25
12 — 22.11.13 — 09:32
(10) То есть подключается без проблем?
13 — 22.11.13 — 09:32
«V77.ComConnector»
Мечта…
14 — 22.11.13 — 09:34
(13)+100
15 — 22.11.13 — 09:35
попробуй уж зараз и
v7.EvalExpr(«СоздатьОбъект(«»Справочник.Валюты»»)»);
у меня помнится только так и работало.
16 — 22.11.13 — 09:36
(12) Подключается без проблем СОМОбъект получаю.
(13) Я же описал в (10), что якобы не найден класс.
(11) и (15) Успел применить, но без результатно:
{Форма.Форма.Форма(2)}: Ошибка при вызове конструктора (COMObject)
v7 = Новый COMObject(«V77M.Application»);
по причине:
Недопустимая строка с указанием класса
Заменил на предыдущую:
v7 = Новый COMObject(«V77.Application»);
{Форма.Форма.Форма(35)}: Ошибка при вызове метода контекста (EvalExpr)
Спр = v7.EvalExpr(«CreateObject(«»Справочник.Валюты»»)»);
по причине:
Произошла исключительная ситуация (1С:Предприятие): Неудачная попытка создания объекта (Справочник.Валюты): 0
17 — 22.11.13 — 09:38
(16)>>Ошибка при вызове конструктора (COMObject)
У меня впечатление что ты запускаешь 77 по ярлыку с сервера, а на самой машине локально 77 у тебя нет.
Оно тогда такое и пишет.
18 — 22.11.13 — 09:38
(16) а на кой тут EvalExpr использовать?…
19 — 22.11.13 — 09:39
(16) Уже второй раз справочник не может создать, он там вообще есть нет?)))
20 — 22.11.13 — 09:39
(17) если бы 77 не было, оно бы вообще не подключилось…
21 — 22.11.13 — 09:40
(20)Так он и пишет, что ошибка конструктора
22 — 22.11.13 — 09:40
(17), (20) Как устанавливалась 7.7 не в курсе, но вручную запустить и зайти в базу я могу и справочник такой конечно же есть.
23 — 22.11.13 — 09:41
(21) он пишет, что ошибка создания справочника. я бы тоже самое написал на месте 77. но при этом соединение уже установлено, иначе оно раньше вывалилось…
24 — 22.11.13 — 09:43
(22) я не спец конечно, но может попробовать
Спр = v7.CreateObject(«Справочник.Валюты»);
25 — 22.11.13 — 09:44
(23) он пишет Метод объекта не обнаружен (СоздатьОбъект). Это типично для отсутствия подключения.
26 — 22.11.13 — 09:44
Пробовал другой объект создать, на данный момент имею код:
v7 = Новый COMObject(«V77.Application»);
Пользователь = «админ»;
Пароль =»админ»;
Попытка
v7.Initialize(v7.RMTrade,»/D» + ПутьКБазе77+ » /N»+Пользователь+» /P» + Пароль,»NO_SPLASH_SHOW»); //RMAccnt
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Спр = v7.CreateObject(«Справочник.Банки»);
Ошибка:
{Форма.Форма.Форма(34)}: Ошибка при вызове метода контекста (CreateObject)
Спр = v7.CreateObject(«Справочник.Банки»);
по причине:
Произошла исключительная ситуация (1С:Предприятие): Неудачная попытка создания объекта (Справочник.Банки): 0
27 — 22.11.13 — 09:45
(25) т.е. программист не проверяет, установлено у него соединение или нет? мне такое даже в голову придти не могло…
28 — 22.11.13 — 09:46
(16) А инициализация-то — где?
29 — 22.11.13 — 09:47
(26) Initialize не ошибку порождает, а выдаёт 1 или 0.
30 — 22.11.13 — 09:47
Соединение =v7.Initialize(…….
31 — 22.11.13 — 09:47
Спр = Соединение.CreateObject(«Справочник.Банки»);
32 — 22.11.13 — 09:48
(16) у тебя подключение происходит ? ты в мониторе пользователей его видешь ?
33 — 22.11.13 — 09:49
(27) Перед строкой
Спр = v7.CreateObject(«Справочник.Банки»);
получаю в отладчике:
Свойство Значение Тип
v7 COMОбъект COMОбъект
34 — 22.11.13 — 09:51
(32) В Мониторе вижу среди активных пользователей.
35 — 22.11.13 — 09:52
(30) Соединение у тебя — это будет число. Поэтому (31) — нонсенс.
36 — 22.11.13 — 09:54
Делал:
Попытка
Соединение = v7.Initialize(v7.RMTrade,»/D» + ПутьКБазе77+ » /N»+Пользователь+» /P» + Пароль,»NO_SPLASH_SHOW»); //RMAccnt
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Спр = Соединение.CreateObject(«Справочник.Банки»);
Получил:
{Форма.Форма.Форма(34)}: Значение не является значением объектного типа (CreateObject)
Спр = Соединение.CreateObject(«Справочник.Банки»);
37 — 22.11.13 — 09:55
(35) да, с СОМ перепутал:-)
38 — 22.11.13 — 09:55
(36) попробуй выполнить этот код с машины где точно установлена 1С 7.7
39 — 22.11.13 — 09:55
Рабочий код (правда под 8.1), работает по сей день:
Процедура ПодключитьсяНажатие(Элемент)
БД = «»;
БД = Новый COMОбъект(«V77.Application»);
Попытка
СтрокаПодключения = «/D»»» + СокрЛП(ПутьКБазеДанных) + «»»/N»»» + СокрЛП(Пользователь) + «»» /P»»» + СокрЛП(Пароль) + «»»»;
Открыта = БД.Initialize(БД.RMTrade, СтрокаПодключения, «NO_SPLASH_SHOW»);
Если Открыта Тогда
ЕстьПодключение = Истина;
ЭлементыФормы.СообщениеОПодключении.Заголовок = «База успешно подключена.»
Иначе
Предупреждение(«Ошибка при подключении!»);
ЕстьПодключение = Ложь;
КонецЕсли;
Исключение
Предупреждение(«Ошибка при подключении!»);
ЕстьПодключение = Ложь;
КонецПопытки;
КонецПроцедуры
40 — 22.11.13 — 09:56
(36) Initialize выдаёт _число_!!!
Если Соединение=1 Тогда
Спр = v7.CreateObject(…..
41 — 22.11.13 — 09:59
(39) С подключением и инициализацией у меня проблем нет, проблемы начинаются, когда в этом подключении начинаю создавать объекты.
42 — 22.11.13 — 10:00
(41) Господи! Да как же тяжело с вами…..
Тебе «Открыта = БД.Initialize(БД.RMTrade, СтрокаПодключения, «NO_SPLASH_SHOW»);», что возвращает?
43 — 22.11.13 — 10:05
(42) Ошибка при подключении
44 — 22.11.13 — 10:06
(43) Слава Богу! Еще вопросы есть? Иди рой — как установлена 7.7.
45 — 22.11.13 — 10:15
ПутьКБазе в строке подключения возьми в кавычки.
В отладчике должен увидеть:
/D»D:basesбаза2012″ /Nадмин /Pадмин
46 — 22.11.13 — 10:23
(44) Переустановил платформу, удалил базу из списка, добавл снова, ошибка прежняя:
(45) Строку подключения имею в виде:
/D»D:basesбаза2012″ /Nадмин /Pадмин
(то есть так же)
Ошибка в подключении(((
47 — 22.11.13 — 10:24
Взял в «» пользователя и пароль, то же самое.
48 — 22.11.13 — 10:24
(46) какую переустановил? 7.7?
49 — 22.11.13 — 10:25
(460 как переустановил платформу?
50 — 22.11.13 — 10:25
(48) Переустановил 7.7. Просто по верху запустил установщик.
51 — 22.11.13 — 10:28
(50) Wind’а какая стоит?
52 — 22.11.13 — 10:30
(50) Windows 7 Домашняя базовая
53 — 22.11.13 — 10:31
(50) поищи V77.Application в реестре windows
54 — 22.11.13 — 10:32
(52) почему домашняя. Поставьте нормальный windows
55 — 22.11.13 — 10:35
(52) Не знаю точно, но — тут могут быть проблемы. Домашняя базовая — урезана по куче всего.
А сама 7.7 точно запускается на этом же компе?
56 — 22.11.13 — 10:37
(55) Запускается на этом компе
(53) Есть в реесте (если нужно)
HKEY_CLASSES_ROOTV77.Application
HKEY_CLASSES_ROOTWow6432NodeCLSID{63112D80-94F0-11D2-9F39-008048DA120F}
HKEY_CLASSES_ROOTWow6432NodeCLSID{63112D80-94F0-11D2-9F39-008048DA120F}ProgID
HKEY_LOCAL_MACHINESOFTWAREClassesV77.Application
HKEY_LOCAL_MACHINESOFTWAREClassesWow6432NodeCLSID{63112D80-94F0-11D2-9F39-008048DA120F}
57 — 22.11.13 — 10:41
Пробовал на другом компе (Видовс 7 Проф), 8.2 и 7.7 установлена цивильно, ошибка при подключении.
58 — 22.11.13 — 10:46
(56) 64 бита?
59 — 22.11.13 — 10:54
В реестре найди — HKEY_CURRENT_USERSoftware1C1Cv77.7Titles — что там в путях?
60 — 22.11.13 — 11:50
(58) Да, 64.
(59) Есть ветка:
HKEY_USERSS-1-5-21-1419102363-2094869754-1374439945-1000Software1C1Cv77.7Titles
Параметр:
D:basesбаза2012
Значение:
(рабочая)
61 — 22.11.13 — 11:56
я пропустил или не было информации 8-ка файловая или скульная?
62 — 22.11.13 — 11:58
1С:Предприятие 8.2 (8.2.18.96)
База на SQL-сервере.
63 — 22.11.13 — 12:02
базу 7.7. над прописать для виндового юзера, под которым сервер 1с крутится
на винде где сервер 1с крутится
64 — 22.11.13 — 12:03
(60) И как 7.7 переустанавливал?
65 — 22.11.13 — 12:05
Просто запустил установщик (по верху). Не удалял перед этим, т.к. куча прописанных баз. Обязательно сносить всё перед повторной установкой?
66 — 22.11.13 — 12:07
(65) Подробнее: какой установщик?
67 — 22.11.13 — 12:12
(66) Какой на предприятии дали : ) У всех такой стоит. Но на стандартный из коробки мало похож.
68 — 22.11.13 — 12:16
…пытался из своих запасов установить (коробка, диск, 1с 7.7, 7.70.027), но ругается на версию Виндовс((((((
69 — 22.11.13 — 12:39
(68) так эта штука из (0), она наКлиенте или НаСервере?
70 — 22.11.13 — 12:47
(69) 8.2 запускается на клиенте, никаких директив не указываю, база 8.2 лежит на сервере, на компе-клиенте лежит база 7.7, к ней пытаемся подключиться.
Строка подключения верного формата:
/D»D:basesбаза2012″ /N»админ» /P»админ»
Нужны ли эти все кавычки?
71 — 22.11.13 — 12:52
(70) а почему думаешь, что на клиенте?
создай файловую и там проверь, вот это будет на клиенте точно ))
72 — 22.11.13 — 12:53
(70) На каком сервере и на каком компе? Они разные (физически)?
73 — 22.11.13 — 13:02
(70) не где запускается 8.2, а эта процедура, что там написано? И в каком модуле она?
74 — 22.11.13 — 13:16
(70) D:basesбаза2012 — это на сервере или на твоём компе?
75 — 22.11.13 — 13:26
База 7.7 локальная, на моем компе (к ней жажду подключиться), база 8.2 на сервере (по сути не нужна). Сама процедура во внешней обработке в модуле формы.
76 — 22.11.13 — 13:30
уже сотка не за горами, а автор все еще не впиливает
77 — 22.11.13 — 13:32
(76) Сегодня такая традиция….
78 — 22.11.13 — 13:39
У меня был опыт подключения базы SQL 1с 8.2, также из базы на SQL 1с 8.2, вся разница была в строке подключения (сервер, кластер), но что здесь может быть не верно указано:
v7 = «»;
v7 = Новый COMObject(«V77.Application»);
Пользователь = «админ»;
Пароль =»админ»;
Попытка
СтрокаПодключения = «/D»»» + СокрЛП(ПутьКБазе77) + «»» /N»»» + СокрЛП(Пользователь) + «»» /P»»» + СокрЛП(Пароль) + «»»»;
Открыта = v7.Initialize(v7.RMTrade, СтрокаПодключения, «NO_SPLASH_SHOW»);
Если Открыта Тогда
ЕстьПодключение = Истина;
ЭлементыФормы.СообщениеОПодключении.Заголовок = «База успешно подключена.»
Иначе
Предупреждение(«Ошибка при подключении!»);
ЕстьПодключение = Ложь;
КонецЕсли;
Исключение
Предупреждение(«Ошибка при подключении!»);
ЕстьПодключение = Ложь;
КонецПопытки;
Строка подключения (в отладке) имеет вид:
/D»D:basesбаза2012″ /N»админ» /P»админ»
79 — 22.11.13 — 13:49
Попытка-Исключение — обязательно? Если без попытки, то Открыта возвращает — Истина, но после строк:
Спр = v7.CreateObject(«Справочник.Валюты»);
Спр.Выбрать();
На долго зависает, хотя в справочнике Валюты не более 10 элементов.
Может быть его надо потом как-то закрывать?
80 — 22.11.13 — 13:53
(79) В Исключение используй ИнформацияОбОшибке().
Проверка на открытость не нужна. Если база не откроется, то сработает Исключение.
81 — 22.11.13 — 13:55
(79) Закрывать нужно v7.
v7 = «» или v7 = Неопределено
82 — 22.11.13 — 14:00
(81) + Если не закроешь, то процесс зависнет в памяти и закроется только после выхода из 8.2. Поэтому при втором запуске обработки подключение к базе не произойдет.
И ещё если 77 закроется неправильно, то придётся её запускать в монопольном режиме.
83 — 22.11.13 — 14:05
(79) У себя на компе запусти «Диспетчер задач» — там нет зависших сеансов 7.7?
84 — 22.11.13 — 14:23
Благодарю вас, дорогие мои, что до сих пор уделяете внимание : ) Но правда, не в состоянии я самостоятельно сообразить(((
Есть прогресс!!!
(83) Каждый раз при неудачной попытке проверяю диспетчер, про 1с 7.7 все чисто.
На данный момент код значительно упростился и работает без ошибок:
v7 = «»;
v7 = Новый COMObject(«V77.Application»);
Попытка
СтрокаПодключения = «/D»»» + СокрЛП(ПутьКБазе77) + «»» /N»»» + СокрЛП(Пользователь) + «»» /P»»» + СокрЛП(Пароль) + «»»»;
Открыта = v7.Initialize(v7.RMTrade, СтрокаПодключения, «NO_SPLASH_SHOW»);
Исключение
Сообщить(ИнформацияОбОшибке());
КонецПопытки;
Спр = v7.CreateObject(«Справочник.Валюты»);
Спр.Выбрать();
v7 = «»;
И что же я в итоге увидел: открылась форма списка справочника 7.7 ! Где я просил её открыться? Потом заменил строку:
Спр.Выбрать();
на
Спр.ВыбратьЭлементы();
И… все заработало. Как надо. Последний вопрос — теперь в конфигураторе 8.2 буду писать синтаксис из 7.7 ?
85 — 22.11.13 — 14:26
…даже сетевые папки видит:
ПутьКБазе77 = «\192.168.0.239база»;
86 — 25.11.13 — 10:27
Подключение к базе установлено.
Использую код:
ВыбДок = v7.CreateObject(«Документ.СчетФактура»);
ВыбДок.ВыбратьДокументы(НачПериода, КонПериода);
Пока ВыбДок.ПолучитьДокумент() = 1 Цикл
Сообщить(ВыбДок.НомерДок);
КонецЦикла;
где, начДата и конДата — реквизиты на форме 8.2.
Документы выводятся ВСЕ, но не за период начала и окончания.
Подскажите пожалуйста, как из этого подключения выбрать документы за определенный период?
america2013
87 — 25.11.13 — 10:28
*где, НачПериода и КонПериода — реквизиты на форме 8.2
0
1С 7.x : Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается
Подключение к 7.7 через OLE в регламентном задании из 8.2
Если во время выполнения задания, при попытке подключиться через OLE из 8.2 к 7.7 возникает ошибка:
Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.
поможет следующее
Пуск — Выполнить — DCOMCNFG.
«Службы компонентов» — «Компьютеры» — «Мой компьютер» — «Настройка DCOM».
V77.GeneralPropPage и V77.SalaryPropPage.
На закладке «Безопасность» установить необходимые права для того, от чьего имени запускается сервер 1С (8.2)
1
2
Показывать по
10
20
40
сообщений
Новая тема
Ответить
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Необходимо сравнить данные в трех базах: УТ 10.3, БП 2.0 и Бух 7.7
Хочу использовать для этого COM-подключение к базам 7.7 и 2.0 из УТ.
Если базы поставить на Win XP, то COM-подключение работает.
Начинается лето и некоторое время я хотел поработать на даче. Перенес базы на ноутбук с Win 8.1. Отдельно все базы доступны и с ними можно делать что угодно. Но COM-подключение не работает
Выдается ошибка:
Ошибка при вызове конструктора (COMОбъект)
БазаОлеТек= Новый COMОбъект(«V77.Application»);
по причине:
-2147467262(0x80004002): Интерфейс не поддерживается
Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ?
Платформа 7.7 устанавливалась копированием.
Для УТ и БП использовалась платформа 8.2 и 8.3
Консультант 1С
Дата регистрации: 06.09.2008
Сообщений: 300
pentanom пишет:
Цитата |
---|
Платформа 7.7 устанавливалась копированием |
Я впервые слышу об установке копированием.
Почему бы не установить штатно?
Рисовод
Дата регистрации: 26.12.2007
Сообщений: 25775
Геннадий Новосибрск пишет:
Цитата | ||
---|---|---|
pentanom пишет:
Я впервые слышу об установке копированием. |
но бесплатно …
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Геннадий Новосибрск, На Win 8 (а также и на Win 7) штатно не устанавливается
Почитайте об этом в интернете
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Рисовод, Про «бесплатно» не понятно. Из установочного комплекта 7.7 в Win 8 не устанавливается
Рекомендуют установить платформу на XP, а потом скопировать каталог, в который установлена 7.7, скопировать на компьютер с Win 8.
Так и было сделано. Отдельно все базы доступны работают, а COM-подключение не работает.
И причем здесь «бесплатно» ?
Консультант 1С
Дата регистрации: 06.09.2008
Сообщений: 300
pentanom пишет:
Цитата |
---|
Геннадий Новосибирск , На Win 8 (а также и на Win 7) штатно не устанавливается Почитайте об этом в интернете |
Как-то странноватенько — задавать один вопрос, под которым закамуфлирован на самом деле — другой, для разгадывания которого отсылать в интернет без конкретных ссылок
Там же в интернете и пишут — что делать… надо было очень постараться, чтобы понять это так, чтобы не работало и не устанавливалось…
Первые 2 самых очевидных способа, среди множества других без установок копированием, которые находятся сразу поиском в интернете:
- поднять виртуальную машину с Windows XP из под Windows 8.1 и там всё устанавливать без копирования
- в свойствах файла запуска в разделе Совместимость отметить:
— запустить программу в режиме совместимости c:
Windows XP (Пакет Обновления 3)
— Выполнять эту программу от имени администратора
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Геннадий Новосибирск, Вопрос был: «Что можно (нужно) сделать чтобы все-таки COM-подключение заработало ? «
И хотелось бы получить ответ на этот вопрос.
А если вы что-то советуете по поводу установки 7.7 на Вин 8, то сначала попробуйте сделать это.
А если нечего ответить на мой вопрос, то и не надо отвечать вообще.
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Копировать нужно в каталог Program Files (x86). Тогда COM-подключение работает. В XP можно копировать в любое место (хотя можно и установить из установочного комплекта).
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
Цитата |
---|
В XP можно копировать в любое место |
Это от того, что теперь есть разница между х86 и х64 приложениями. К какой категории относится 7.7 думаю сами догадаетесь…
pentanom
Дата регистрации: 09.04.2014
Сообщений: 40
Денис (САМАРА), теперь -то все умные. А что бы вначале об этом не сказать ?
Лучше подскажите как эту тему закрыть.
Читают тему:
0
— 14.08.2015 — 14:16
Какая-то хрень с подключением к 7-м базам из 8.3.
Открываю интерактивно обработку в базе 8.3 и запускаю на выполнение. Подключение к 7-м базам происходит нормально. Если Запускаю базу с обработкой из командной строки, выдает ошибку подключения к 7-м базам: Не удалось загрузить обороты из базы 1С 7.7 ООО «Агонда». ({Форма.Форма.Форма(1636)**: Ошибка при вызове конструктора (COMобъект): -2147467262(0x80004002): Интерфейс не поддерживается ) и так по всем.
Вот команда запуска: «C:Program Files (x86)1cv88.3.6.2014bin1cv8c.exe» ENTERPRISE /SSaturnConsolidation_3_0 /N»robot» /P»Password» /Execute «D:Archiv_1CZagruzkaOborotov.epf» /DisableStartupMessages /C»AUTO_NIGHT»
Вот код подключения к 7.7:
ДБ = Новый COMобъект(«V77S.Application»);
СтрокаИнициализации = «/D»»»+База77+»»» /N»»»+Логин1С+»»» /P»+Пароль1С;
Если ДБ.Initialize(ДБ.RMTrade,СтрокаИнициализации,»NO_S PLASH_SHOW»)=ИСТИНА Тогда
СтрСообщения = «Подключена база 1С-7.7 «+Фирма+».»;
Сообщить(СтрСообщения);
Иначе
СтрСообщения = «!Не удалось подключиться к базе 1С-7.7 «+Фирма+».»;
Сообщить(СтрСообщения);
КонецЕсли;
Куда копать? Где собака порылась?
1
— 14.08.2015 — 14:36
1) 1С77 как устанавливалась?
Сетапом екзе, или просто каталог БИН скопировали?
Точно SQL-ный движок 77 установлен?
2) До и после /D, /N, /Р попробуйте поставить пробелы.
2
— 14.08.2015 — 14:43
1) Сетапом. Там все нормально, в реестре зарегистрированы V77 и V77S. Да и не работало бы подключение вообще. А так не работает только с программного запуска базы с обработкой. Если интерактивно открыть базу и обработку и нажать Выполнить — все тип-топ.
2) Попробую, но что-то не уверен в успехе. Один и тотже код подключения отрабатывает.
3
— 14.08.2015 — 14:51
2-US1C >
1) Интерактивно открываете под этим же пользователем?
2) Попробуйте в базе 77 дать этому пользователю права на OLE Automation, может поможет…
3) В журнале регистрации 7.7 ничего полезного не пишется при этой неудачной попытке подключения, случайно?
4
— 14.08.2015 — 14:55
А, пардон…
Не прочитал про то, что интерактивно всё работает…
Тогда 1) и 2) отменяются…
5
— 14.08.2015 — 15:04
(1) Кажется сработал вариант с пробелами до и после. Уже к 5-и базам нормально подключилась.
Потестю еще и отпишусь.
Спасибо!
6
— 17.08.2015 — 11:16
Не-а, не взлетело.
Когда запустил батник ручками — все ОК.
А когда батник был запущен планировщиком по расписанию, такую же ошибку выдавал при подключении к 7-м базам.
7
— 17.08.2015 — 11:44
8
— 17.08.2015 — 11:50
(7) Виндовый
9
— 17.08.2015 — 11:52
В эту сторону посмотри:
Глобальный контекст (Global context)
УстановитьБезопасныйРежим (SetSafeMode)
Синтаксис:
УстановитьБезопасныйРежим(<БезопасныйРежим>)
Параметры:
<БезопасныйРежим> (обязательный)
…..
В безопасном режиме:
игнорируется привилегированный режим;
запрещены внешние по отношению к платформе 1С:Предприятия действия: COM; загрузка внешних компонентов; запуск внешних приложений и команд операционной системы; доступ к файловой системе, кроме временных файлов; доступ к Интернету.
10
— 17.08.2015 — 11:52
(8)
запускается с админ. правами?
11
— 17.08.2015 — 12:12
(10) Задание выполняется от моей учетной записи. Плюс установил флажок «Выполнить с наивысшими правами».
12
— 17.08.2015 — 12:27
Проверь всё же что вернёт БезопасныйРежим() перед созданием COM
13
— 17.08.2015 — 12:38
(12) Боюсь, что ничего не вернет. У меня подключение происходит на тонком клиенте в процедуре &НаКлиенте. А там этот метод не работает.
14
— 17.08.2015 — 12:58
+ в строке ENTERPRISE /SSaturnConsolidation_3_0 /N»
описка?
ENTERPRISE /S «SaturnConsolidation_3_0« /N»….
15
— 17.08.2015 — 13:25
(14) Нет, не описка. Без кавычек запускает базу. Тут все нормально.
16
— 17.08.2015 — 13:46
Кстати, да.
В строке запуска 1С8 тоже бы пробелов добавить до и после ключей…
17
— 17.08.2015 — 14:31
(16) Вряд ли в этом причина. База-то запускается нормально и обработка открывается на выполнение.
пытаюсь подключится к базе 7.7 с помощью на некоторых машинах все проходит нормально, но на нескольких возникает ошибка: » Ошибка при вызове конструктора (COMОбъект): Ошибка при выполнении приложения-сервера V7 = Новый COMОбъект(«V77.Application»); по причине: Ошибка при выполнении приложения-сервера » куда копать? и еще — на тех машинах нет службы компонентов V77.GeneralPropPage, но на другой машине, где тоже нет этй службы все работает…
а для запуска кома не достаточно скопировать папочку с каталогом программы..
и служба тут не причем. в реестре есть отдельная ветка классов. вот там надо, чтобы было прописано.
не понял, что значит «скопировать папочку с каталогом программы» устанавливаю как обычно — запускаю setup, локальная установка и т.д
поищи в реестре зарегистрирован ли подобный класс..
какой класс? V77.GeneralPropPage в реестре прописан
ничего не понимаю… сделал на одной машине «V77s.Application» — заработало. но на другой машине такой класс в реестре не прописан. импортировал описание класса в реестр. заработало… когда появляется описание «V77s.Application» в реестре? 7.7 переустанавливал
сделал V7 = Новый COMОбъект(«V77s.Application»);
Тэги:
Комментарии доступны только авторизированным пользователям