Имя: Пароль:
1C
1C 7.7
v7: Неудачная попытка создания объекта (V77.Application)
0 Маркусс
 
01.10.14
13:06
Запускаю скриптом обработку выдаёт ошибку:

ТиС = СоздатьОбъект("V77.Application");
{D:\BASE\1C\TORG\MERC\EXTFORMS\КОМПЕРЕНОСЗАКАЗОВРТУ.ERT(759)}: Неудачная попытка создания объекта (V77.Application)

Это находится в процедуре ПриОткрытии()

Запускаю тоже самое руками - всё работает.
Скрипт запускаю также вручную.
1 Wobland
 
01.10.14
13:08
и чо?
2 DrZombi
 
гуру
01.10.14
13:10
(0) Не кошерно при открытии пытаться делать долгоиграющие шаги :)
3 DrZombi
 
гуру
01.10.14
13:11
+(0) Сделай кнопку, как Руками :)
4 DrZombi
 
гуру
01.10.14
13:12
+(0) А ты уверен, что руками ты делаешь тоже самое "V77.Application"?

Бывает, что в "V77.Application", нужно еще и "V77s.Application" и другие буковки вставлять в зависимости платформы :)
5 Маркусс
 
01.10.14
13:13
(1) чёто надо сделать штоп заработало при запуске скриптом.
6 Маркусс
 
01.10.14
13:16
(4) вручную то почему запускается?
V77s.Application не проканало. та же ошибка
7 Маркусс
 
01.10.14
13:17
Мне кажется это в винде чего-то
8 DrZombi
 
гуру
01.10.14
13:17
(6) Что-то мне это все до боли напоминает :)
9 DrZombi
 
гуру
01.10.14
13:17
(7) А винда кокая?
10 Маркусс
 
01.10.14
13:19
(9) 2003 32 бит
11 Chai Nic
 
01.10.14
13:22
Для корректной регистрации 1с v7 как OLE-сервер нужно не просто установить 1с, но и запустить её с правами администратора хотя бы раз.
12 Маркусс
 
01.10.14
13:22
(11) под админом запускал
13 DrZombi
 
гуру
01.10.14
13:37
(12) Я делал так.

Процедура УстановитьПодключение(ПутьКБазе,ЮзерВБазе,ПарольВБазе)  
    Состояние("Подключение...");
    ИБПр=CreateObject("V77S.Application");        
    Если ИБПр.Initialize(ИБПр.RMTrade,"/d"+СокрЛП(ПутьКБазе)+" /n"+СокрЛП(ЮзерВБазе)+" /p"+СокрЛП(ПарольВБазе), "No_splash_show") =0 тогда
        Предупреждение("Ошибка открытия информационной базы!");
        Подключен=0;                                
        Возврат;
    иначе
        Подключен=1;
        Сообщить("Подключена база "+ПутьКБазе);
    КонецЕсли;          
КонецПроцедуры    


S - только убери или оставь :)
14 DrZombi
 
гуру
01.10.14
13:37
15 DrZombi
 
гуру
01.10.14
13:37
Прочти её
16 lavalit
 
01.10.14
15:05
БазаДонор = СоздатьОбъект("V77.Application");
            OLEПодключена = БазаДонор.Initialize(БазаДонор.RMTrade," /D "+СокрЛП(Путь),"NO_SPLASH_SHOW");  
у мня как раз на серванте 2003 работает вот так
17 lavalit
 
01.10.14
15:06
В принципе как и у (13)
18 Маркусс
 
01.10.14
15:26
(14)(17) У меня всё замечательно и давно работает. Но исключительно при запуске вручную.
Через скрипт не хочет. Добавил прав в реестре перегружу ночью проверю
19 Franchiser
 
гуру
01.10.14
15:31
Тонкий клиент? не на сервере ли скрипт выполняется?
20 Torquader
 
01.10.14
15:52
А через script - это как ?
Из сценария VbScript запускаем одну 1С, а уже из неё подключаемся к другой ? Если так, то может и не работать.
OLE-сервер не всегда может быть одновременно и OLE-клиентом, особенно в случае LocalServer32, когда используется Marshaling.
21 Torquader
 
01.10.14
15:53
(19) На тонком клиенте всё решается правильной настройкой DCOM или запуском программы с ключом -embedded перед подключением.
22 varelchik
 
01.10.14
16:02
(0)Вы бы уточнили от какого пользователя стартует скрипт.
И еще на какой машине стартует скрипт и с какой машины запускаете вручную.
И вообще какая стоит задача.
23 Franchiser
 
гуру
01.10.14
16:11
(21) о том то и речь, если на сервер dcom+ не настроен и объект 1с 7.7 не создастся...
24 Franchiser
 
гуру
01.10.14
16:12
пока мне не понятно о каком скрипте речь, и где и как он запускается
25 varelchik
 
02.10.14
08:46
(24)Вполне с вами согласен.
Чел походу сам незнает че надо делать.
26 lavalit
 
02.10.14
10:11
(19) Это семерка.. там нет тонкого клиента.. к тому же(20) семерочка всегда может бытьодновременно и ОЛЯ-клиентом и ОЛЯ-сервером
27 Franchiser
 
гуру
02.10.14
12:16
(26) Семерку запускают скриптом откуда-то, возможно из 1с 8 тонкого клиента.
28 lavalit
 
02.10.14
12:21
(27) но код в (13) по ходу семерошный.. отсюда и вывод, что из семерки все
29 Franchiser
 
гуру
02.10.14
12:21
(26) хотя действительно наверно 7-ку запускают из 7-ки, т.к. "СоздатьОбъект()"
30 Franchiser
 
гуру
02.10.14
12:26
Скорее всего скрипт запускается через планировщик задач (скорее всего под System) на x64 сервере где 1с 7.7 ставилась копированием каталога или как то нестандартно, там нужно давать разрешения на DCOM+ этому пользователю.
31 lavalit
 
02.10.14
12:43
А вот да... Автор, таки код в студию... а то пока не понятно откуда вызов то?
32 lavalit
 
02.10.14
12:45
ПриОткрытии() то можно где угодно нарисовать))))) хоть на Си с плюсом)))).
33 Злопчинский
 
03.10.14
01:12
правильный ответ в (30) - в правах пользователя под которым запускаетсяскрипт - в пофигуртаоре поставь соответсвующие права на использование оли
34 kupec
 
03.10.14
08:24
а V7Plus не надо загрузить?
35 Маркусс
 
03.10.14
09:49
(20)
"А через script - это как ?
Из сценария VbScript запускаем одну 1С, а уже из неё подключаемся к другой ?"
именно так
36 Маркусс
 
03.10.14
09:49
(28) все базы семёрочные
37 DrZombi
 
гуру
03.10.14
09:50
(18) Как вручную? Вручную, через Ярлык "1cv7s.exe"?
Или вручную, по нажатию кнопки в обработки?
38 Маркусс
 
03.10.14
09:51
Винда 2003 Энтерпрайз сп2 32 бит
39 Маркусс
 
03.10.14
09:51
(37) в 1с открываю обработку и запускаю . всё робит
40 DrZombi
 
гуру
03.10.14
09:52
(35) Т.е. у тебя 2 этапа.
1. Запускается Басик, где 1С 100% выполняется.
2. Запускается еще одна 1С по методу ОЛЕ, из запущенной 1С по Басику.

Так?
41 DrZombi
 
гуру
03.10.14
09:53
+(39) А пользователя вы какого указываете при запуске первой 1С?
42 DrZombi
 
гуру
03.10.14
09:54
Так то лучше полные права и галочку "Использование ОЛЕ" или типо того. Вообще проставь все галочки :)
43 DrZombi
 
гуру
03.10.14
09:55
+(39) Все же не забывай, что может права у 1С 7.7 похуже, чем у 8-ки. Но затыки тоже случаются :)
44 Маркусс
 
03.10.14
09:57
(40) первая база запускается, запускается обработка и вываливается с ошибкой "Неудачная попытка создания объекта (V77.Application) "
45 Маркусс
 
03.10.14
09:59
(42) галки все стоят
46 Маркусс
 
03.10.14
10:00
(43) я пока сделал по колхозному. в принципе робит, но хочется сделать нормально
47 Новый участник
 
03.10.14
10:03
В реестре есть ветка с именем V77.Application? Она возникает при штатной установке программы, при копировании каталога программы - не возникает и тогда такой вызов не сработает.
48 Маркусс
 
03.10.14
10:04
(47) есть.
49 Новый участник
 
03.10.14
10:07
Под локальным админом запускаешь? На сервере или своём компе?
50 lavalit
 
03.10.14
10:26
согласен с (42) галка нужна .. но (47) есть в какой базе? в той Из которой подключаешься или в той к которой подключаешься? Надо бы и там и там поставить. Потому как галка гласит о использовании базы ОЛЯ как сервера
Но суслик по ходу где то еще живет... у автора ведь не создается объект, и в этот момент еще пока не известно к какой базе цепляться. так что грешить на базу-донора пока рановато.
51 lavalit
 
03.10.14
10:30
ОЛЕ в данном случае может быть трех вариантов:
локальная на одного пользователя - V77L.Application
Сетевая версия - V77.Application
Версия SQL -V77.Application
(0) У вас какая из них счас используется?
52 lavalit
 
03.10.14
10:32
При этом для вызывающей базы по барабану какая база донор (дбф или скуль)... ТО есть надо определиться какая база вызывающая
53 lavalit
 
03.10.14
10:33
очипятка в (51)
Версия SQL -V77s.Application конечно же)))
54 Новый участник
 
03.10.14
10:52
(53) Там и в сетевой ошибка (V77n, кажется). Но по V77 запускается любая (или первая?) из установленных "семёрок".
55 lavalit
 
03.10.14
10:58
(54) Сетевая версия - V77.Application
56 lavalit
 
03.10.14
11:00
Лучше конечно выбирать ту, которая соответствует.
на моей запускается и 77 и 77s но думаю, что если локальная версия то может запустится только 77L
57 lavalit
 
03.10.14
11:01
77n тоже запускает
58 DrZombi
 
гуру
03.10.14
11:03
(56) Были инциденты, что вот запускалось только V77s и ни в какую не хотела видеть другие.
Но, судя по ссылке из (14), все дело в том, какая версия 1С установлена на данном ПК ил Сервере :)
59 DrZombi
 
гуру
03.10.14
11:07
+(48) (0) Попробуй запускать вторую 1С с паузой :)
Ведь разница в нажатой кнопки "Старт" и "При открытии".
Только в не показанной форме обработки. :)


Ну, еще вариант, установить при открытии Форма.ОбработкаОжидания("Запустись",5).

В процедуре "Запустись"
Форма.ОбработкаОжидания("Запустись",0), что бы не запускалось более :)
60 lavalit
 
03.10.14
11:15
(59) При чем тут пауза? Автор гласит, что не создается объект в процедуре  ПриОткрытии(). Давай те при каждом создании обекта ставить паузу.. Ну не сурьезно же. До подключения к базе даже жело не доходит...
61 Маркусс
 
03.10.14
11:27
(51) 77 SQL
62 lavalit
 
03.10.14
11:40
(61) а вот может быть уж совсем бузумная идея.... а переменная ТиС... она случаем уж не глобально где нибудь занята.... а тоя как то попробовал назвать переменную запрещенным именем (ну тпа КонецЦикла.. ради прикола)))) ... оно блин ругалось ооочень матерно)))))
63 DrZombi
 
гуру
03.10.14
12:07
(60) Не сурьезно, а как показала практика, Паузы в 1С ой как не хватает :)
Ну и да, если он же открывает туже самую обработку и так же жимкает кнопку, то все работает. Это то хоть о чем то говорит?
64 lavalit
 
03.10.14
12:12
(63) ну у меня есть несколько поделок  и в ПриОткрытии() есть создание обекта аналогично как у автора... но как то не было ни разу потребностей в паузе.... да и если вдруг паузу... то какую?
65 lavalit
 
03.10.14
12:14
Конечто делаю через попытку... но она сама по себе вроде как паузу не обеспечивает
66 lavalit
 
03.10.14
12:16
(63) .. да вот конечно если по кнопе она срабатывает а при открытии() нет....странно как минимум...
67 lavalit
 
03.10.14
12:17
(63) да.. вот чего .. если дело в паузе, то это можно легко проверить... пойти в отладчик.. поставить точку останова вот тебе и пауза сколько хочешь...
68 lavalit
 
03.10.14
12:19
(0) а Покажи ка плиз код... ПриОткрытии(), если есть все, что в самом низу кода .. которое не в процедурах... и если вдруг есть ПослеОткрытия()... мож там суслик где то?
69 Маркусс
 
03.10.14
12:19
(67) пауза не помогает
70 lavalit
 
03.10.14
12:20
НО если кнопком включаешь,  то все без фокусов?
71 Маркусс
 
03.10.14
12:26
(70) с кнопки всё робит
72 Маркусс
 
03.10.14
12:27
(68) да фигли выкладывать? так же как в (16)
73 Franchiser
 
гуру
03.10.14
12:36
(72)скрипт запускает 1с под тем же пользователем 1с под которым ты сам заходишь и выполняешь обработку? если нет проверь в конфигураторе что в роли есть право на ole automation как тебе писали в (33)
74 Franchiser
 
гуру
03.10.14
12:37
проверь журнал ошибок windows, наверняка там что-то есть.
75 lavalit
 
03.10.14
12:44
(74) журнал ошибок вондовоза возможно ничего не покажет... у автора не создается объект.. а ето кухня самой 1С... Прикинь, если на каждое создание объекта в журналах винды что то регистрилось.... только запуск одной 1С тащит за собой кучу созданых объектов... весь диск станет одним большим журналом)))) Вот если объект создался.. но к базе не подключились.. вот тут да журнал виндовоза  засечет енто событие.... но до этого дело не доходит)))
76 lavalit
 
03.10.14
12:47
(72) .. так в (16) ето я и сообщал))) что то ты недоговариваешь... не может быть таких чудес, что с кнопки арбайт а при открытии() нет... где то суслик должен быть))...
77 Абыр
 
03.10.14
12:49
(0) а так?
СоздатьОбъект("V1CEnterprise.Application")
78 lavalit
 
03.10.14
13:15
(77) ну да может прокатить конечно... но ... таки остается открытым вопрос почему с кнопы арбайт а при открытии не арбайт....
79 Маркусс
 
03.10.14
13:18
(73) есть все галки) ваще все)
80 lavalit
 
03.10.14
14:09
не верю... ну не может такого быть что бы одна и та же поделка то работало то не работало
81 КонецЦикла
 
03.10.14
14:23
как 1с устанавливалась? и что конкретно делается руками?
вот тут есть что-то: http://1c911.by/stati_1s/statya-1s-77-i-windows-7.htm#4
82 Franchiser
 
гуру
03.10.14
17:07
Каким образом происходит запуск скрипта? вручную?
83 Franchiser
 
гуру
03.10.14
17:11
(75) В журнал ошибок пишутся в т.ч. ошибки по нарушению прав к каталогам, например. Поэтому м.б. что будет ошибка аудита.
84 Franchiser
 
гуру
03.10.14
17:13
м.б. скрипт не может даже получить доступ к каталогу установки 1с.
85 lavalit
 
03.10.14
17:55
(83).. оператор СоздатьОбъект() какой каталог пользует?
Если только при запуске программы их создается докучи...и не ругается... Разве СоздатьОбъект("V77.Application") будет обращаться в какой то специальный каталог? Вот когда объект уже создан и этот объект обращается к каталогу базы-донор... вот тут согласен, журнал отсечет это дело.... а на этапе создания объекта - увы в журнал ничего не попадет.
  Тем более автор утверждает, что с кнопки арбайт.... стало быть права к каталогам как минимум правильные.
86 Franchiser
 
гуру
03.10.14
18:06
(85) во первых для Оле обычно нужно писать не СоздатьОбъект() а CreateObject(), т.к. русские обозначения не работают или не всегда работают. Какой каталог использует СоздатьОбъект("V77.Application") прописано в реестре windows где прописан путь к экзешнику 1с 7.7.
87 lavalit
 
03.10.14
18:13
(86) Видимо у мня как раз тот случай, когда срабатывает русское СоздатьОбъект(). Вот если я хочу создать объект уже на ОЛЕ, там да латинское однозначно. НО опять же... с кнопы то арбайт.
88 Franchiser
 
гуру
03.10.14
20:37
Предлагаю вместо скрипта на vbs использовать батник, уверен что с ним больше вероятность что сработает
89 Torquader
 
03.10.14
21:19
Вообще-то, для 1С пауза не нужна - она живёт в другом процессе, но для обмена данными нужна очередь событий, которая при открытии формы может быть просто заблокирована, так как очередь задана созданием окна.
Не забываем, что при открытии - это всё равно что формула на форме, а там не все действия допустимы.
Советую, при открытии сделать Форма.Закрыть(0),
а уже при закрытии сделать СтатусВозврата(0) и создать ваш несчастный объект - он должен создаться.
90 Torquader
 
03.10.14
21:28
Только про флажок не забывайте, а то вы никогда форму закрыть не сможете.