Имя: Пароль:
1C
1С v8
Подключиться из 8.2 к 7.7
,
0 Marksman1C
 
06.02.17
12:00
Всем привет!
Пытаюсь подключиться из 8-ки к 7-ке.
Использую код, который указан в помощь на десятках сайтов, в том числе и на этом:

    ПутьКБазе="D:\ВашаБаза\1с77\";
    Пользователь="Админ";
    Пароль="12345";
    МонопольныйРежимOLE = ""; И монопольный тож пробовал, не помогает.
    ЗапускБезЗаставки = 1;
    База = Новый COMОбъект("V1CEnterprise.Application"); И так пробовал:База = Новый COMОбъект("V77.Application");
    СтрокаПодключения = "/D"""+СокрЛП(ПутьКБазе)+""" /N"""+СокрЛП(Пользователь)+""" /P"""+СокрЛП(Пароль)+"""";
    РезультатПодключения=База.Initialize(База.RMTrade,СтрокаПодключения,?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));

    Если НЕ РезультатПодключения Тогда
        Сообщить("Не удалось произвести подключение к информационной базе");
    КонецЕсли;

Этот код не работает! Не понимаю почему, может библиотеки какой-то в системе не хватает?
1 Marksman1C
 
06.02.17
12:01
Под фразой "Этот код не работает" подразумеваю, что ВСЕГДА вылезает ошибка "Не удалось произвести подключение к информационной базе"
2 VladZ
 
06.02.17
12:03
(0) Проблема решается просто: не используй подключение.
3 Heckfy
 
06.02.17
12:03
4 Builder
 
06.02.17
12:05
Иногда бывает надо запустить 7.7 с админскими правами.
Поищи в реестре записи типа "V77.Application", если их нет - это оно.
5 Builder
 
06.02.17
12:07
И если версия SQL, то "V77s.Application"
6 Вафель
 
06.02.17
12:07
1с 77 установлена или просто скопирована?
7 ildary
 
06.02.17
12:14
(0) как насчет испытать подобный код из самой 7.7 - сделать обращение к самой себе? Если прокатило, то думать дальше. Не прокатило - см. (4)+(5)+(6)
8 Marksman1C
 
06.02.17
12:14
(2) Как обычно, не хотят с промежуточным файлом, хотят сразу из одной в другую грузить.
(3) Роюсь там уже неделю, не смог ничего толкового найти.
(4) (5) Файловая. Спасибо, пошел копаться в реестре.
(6) Копированная. Отличный совет, попробую установить, спасибо!
9 abfm
 
06.02.17
12:25
В 77 нет COM есть OLE. Обидно но не смертельно.
10 sonne666
 
06.02.17
12:36
(0) Может, в строке подключения не хватает ENTERPRISE? И с количеством кавычек, помню, были какие-то проблемы.
У меня так работает:
V7 =  Новый COMОбъект ("V77.Application");
СтатусОткрытия =  V7.Initialize(V7.RMTrade,"ENTERPRISE /D" + Путь + " /N" + Юзер + " /P" + Пароль,"");
11 Marksman1C
 
06.02.17
13:15
Вот так все заработало.

Пришлось УСТАНОВИТЬ 1с 77. Ранее она была скопирована. Отдельное спасибо Вафель(Вафелю?)!
Как ни странно, на файловом варианте работает именно 1cv7s.exe (обращаю внимание на S)

    V77 = Новый COMОбъект("V77.Application");        
    Каталог = СокрЛП("D:\1С77\prod") + "\";
    Каталог77 = "D:\1С77\BIN\1cv7s.exe" ;
    Логин = "Администратор";
    Пароль = "123";
    Стр    = """" + Каталог77 + """" + "enterprise /d""" + Каталог     + """"    
    + ?(Не ЗначениеЗаполнено(Логин) = 0, " /n", "")  + """" + СокрЛП("Администратор")  + """"  
    + ?(Не ЗначениеЗаполнено(Пароль) = 0, " /p", "") + """" + СокрЛП("123") + """";
    
    Открыта = V77.Initialize(V77.RMTrade,Стр,"NO_SPLASH_SHOW");

Подключение срабатывает. Осталось понять как теперь оттуда данные вытаскивать :)
12 Builder
 
06.02.17
13:20
(11) Точно срабатывает?
Зачем в "Стр" прописывать строку запуска 1С?
Там должен быть путь к базе.
13 VladZ
 
06.02.17
13:22
(11) "Осталось понять как теперь оттуда данные вытаскивать" - вот сейчас и начнутся проблемы.
14 Вафель
 
06.02.17
13:22
можно и не устанавливать, достаточно 1 раз запустить от админа
15 Marksman1C
 
06.02.17
13:29
(12) Точно. По крайней мере

Если Открыта = 0  Тогда
        Сообщить("Базу данных открыть не удалось!",СтатусСообщения.Информация);
    КонецЕсли;

Вот этот кусок кода в конце не срабатывает.




(13) Да, а дальше начались проблемы.      
Запрос = V77.CreateObject("Запрос");
пишет, что "Значение не является значением объектного типа (CreateObject)". ХЗ в чем проблема и что делать. Пошел гуглить.
16 Builder
 
06.02.17
13:32
(15) Ну ну.
Для начала убрать Каталог77 из Стр и проверить как запускается.
17 Вафель
 
06.02.17
13:37
(15) может проще через КД?
18 Marksman1C
 
06.02.17
13:47
(16) Убрал. Прекрасно работает и без лишних строк)
(17) На моем уровне сложно оценить что проще.. Я же уже целых 4 месяца в 1Ске!
19 Builder
 
06.02.17
13:48
(18) Поздравляю.
Тогда понятно откуда такой код - СокрЛП("123")
20 Marksman1C
 
06.02.17
13:58
В общем, что делать-то? Кто-то решал проблему "Значение не является значением объектного типа (CreateObject)"? Подскажите, плиз.
21 Builder
 
06.02.17
14:06
(20) Да никто не решал. При правильном подключении все работает.
Ищи что где происходит с объектом V77 и как он объявлен.
22 VladZ
 
07.02.17
11:44
(20) Сам себе усложнил задачу. Еще раз: не используй подключение. Теряешь время.