|
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
|
(12) + Статья http://www.pokatashkin.com/it/1c/1197
|
|||
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
|
Только про флажок не забывайте, а то вы никогда форму закрыть не сможете.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |