Имя: Пароль:
1C
1C 7.7
v7: COM-объект и 8 в 7
0 ДенисЧ
 
18.05.15
15:26
Есть некий ком-объект. В 8ке созлдаётся через Новый COMОбъект("имя").
Делаю в 77 СоздавтьОбъект("имя") - не создаётся "неудачная попытка создания объекта"
Что ему не хватает? Все делается на одной машине, то есть регистрация одна для всех
1 AlexYurg
 
18.05.15
15:29
Попробуй вместо СоздатьОбъект CreateObject.
Иногда помогало в 7-ке.
2 ДенисЧ
 
18.05.15
15:29
неа...
3 AlexYurg
 
18.05.15
15:30
А что за объект-то, если не секрет?
4 ДенисЧ
 
18.05.15
15:30
Addin.UCS_EFTPOS
)
Для работы с терминалом оплаты по картам
5 aka AMIGO
 
18.05.15
15:32
(4)  а библиотека есть в BIN?
6 ДенисЧ
 
18.05.15
15:33
(5) А файлик зарегистрирован по полному пути. Это же не ВК, а просто ком-объект (теоретически)
7 NikVars
 
18.05.15
15:37
(6) Описание встроенного языка 7.7
Глава 40
Связь с внешними приложениями посредством
механизмов DDE и OLE Automation

Про Ком - тишина.
8 AlexYurg
 
18.05.15
15:37
Откуда уверенность, что он вообще с 7-кой должен работать?
В описании сказано, что совместим с 1С 8.2 и 8.3, а про 7.7 - ни слова.
9 ДенисЧ
 
18.05.15
15:38
(7) То есть ADODB работать не должно?
А ведь работает, что удивительно...
10 ДенисЧ
 
18.05.15
15:38
(8) Уверенности нет. Есть вопрос - чего ему не хватает? Почему ком-объект не работает? Я же не пытаюсь ВК грузить...
11 AlexYurg
 
18.05.15
15:40
Спроси у разработчиков - вдруг ответят.
Ты же не один на 7-ке работаешь.
12 NikVars
 
18.05.15
15:41
(9) В 7.7 поддержка только OLE и DDE. Технология COM поновее будет.
13 ДенисЧ
 
18.05.15
15:42
(12) ещё раз - ADODB - не com-объект?
14 NikVars
 
18.05.15
15:44
(13) Хз...
"Одну из возможностей запуска и управления внешними приложениями дает механизм OLE Automation. Встроенный язык системы 1С:Предприятие под­держивает технологию управления объектами OLE. Непосредственно при по­мощи операторов языка можно управлять, например, программами, входящи­ми в Microsoft Office."
Если оно ADODB умеет работать через OLE Automation, то будет работать.
П.С. Я про типовые возможности.
15 aka AMIGO
 
18.05.15
15:49
(0) буковки оператора в ("Имя") тщательно выверил? :)
16 ДенисЧ
 
18.05.15
15:51
(15) Копи-паст и разботающего 8шного кода
17 aka AMIGO
 
18.05.15
15:51
(16) понятно.. :(
18 ДенисЧ
 
18.05.15
15:52
Кстати, в экселе я этот объект тоже вижу...
19 sapphire
 
18.05.15
15:55
(18) а VB-скрипт создает объект?
20 ДенисЧ
 
18.05.15
15:57
(19) Я не умею вб-скрипт ((((
Примерчик можешь показать?
21 sapphire
 
18.05.15
15:58
(18) Смотри, скорее всего компонента - синглетон, т.е. если кем-то уже создан экземпляр и не выгружен, то создать новый нельзя. Аналогично ФР на компоте :)
22 floverr
 
18.05.15
15:59
У меня так вот работает, сейчас, как раз сижу обработку по импорту документов из 1с 8.3 в 1с 7.7 делаю.

Приемник=CreateObject("V83.ComConnector");
Оля = Приемник.Connect(СтрокаПодключения);
Запрос = Оля.NewObject("Запрос");
23 sapphire
 
18.05.15
15:59
(20) Посмотри небось компонент уже запущен
24 NikVars
 
18.05.15
15:59
25 ДенисЧ
 
18.05.15
16:00
(23) Всё позакрывал уже...
26 sapphire
 
18.05.15
16:03
(25) При закрытых создает?
27 ДенисЧ
 
18.05.15
16:04
(26) Я бы тему закрыл бы уже...
28 ДенисЧ
 
18.05.15
16:04
Может, ещё комп перезагрузить...
29 Serginio1
 
18.05.15
16:06
(0) Судя по Addin.UCS_EFTPOS это ВК
30 ДенисЧ
 
18.05.15
16:06
(29) в 8ке (ещё раз) создаётся через новый COMОбъект()
31 sapphire
 
18.05.15
16:07
(30) Но ВК может загружаться и это никак не противоречит.
32 ДенисЧ
 
18.05.15
16:08
(31) ВК там отдельным вариантом подключается, через подключитьВнешнююКомпоненту() и просто Новый().
Хотя да, файл один.
33 sapphire
 
18.05.15
16:10
(32) создай текстовый файл с расширением vbs
Текст ниже:
Set D=WScript.CreateObject("Excel.Application")
Echo "Удачно"

ткни в него мышой, если квакнет "Удачно" значит COM.
34 sapphire
 
18.05.15
16:11
вместо Echo - MsgBox
35 ДенисЧ
 
18.05.15
16:14
Не квакает (((
36 sapphire
 
18.05.15
16:15
(35) Чаво говорит-то?
37 ДенисЧ
 
18.05.15
16:16
(36) "Не удаётся найти класс программируемых объектов"...
Полез в реестр...
38 sapphire
 
18.05.15
16:17
(37) Можешь не лезть.
Путь к библиотечке знаешь?
39 ДенисЧ
 
18.05.15
16:17
(38) Разумеется ))
40 aka AMIGO
 
18.05.15
16:19
это не поможет?
v8: MSScriptControl
41 sapphire
 
18.05.15
16:19
(37)
try
  ПыцПыц=CreateObject("Addin.UCS_EFTPOS");
Except
  ЗагрузитьВнешнююКомпоненту(Путь);
EndTry;
try
  ПыцПыц=CreateObject("Addin.UCS_EFTPOS");
  Сообщить("Успешно");
Except
EndTry;
42 sapphire
 
18.05.15
16:20
(40) Оно помогало загружать ВК? :)
43 aka AMIGO
 
18.05.15
16:20
(40) с помощью этой штуки я читаю Excel-евский файл, в отсутствие MSOffice на компе.. (Правда, есть LibreOffice)
44 sapphire
 
18.05.15
16:21
(43) ЫЫЫ:)
Запрещен по-defaultу на серверах начиная с W2k8
45 aka AMIGO
 
18.05.15
16:23
(42) да не, не помогает :))

(44) у нас, видимо, есть.. сисадмины блюдут то, что, по их мнению, неконтрафактно..
Мне-так работает, и ладно..
46 aka AMIGO
 
18.05.15
16:25
ЗЫ. ДенисЧ , извини за ОФФ..
47 ДенисЧ
 
18.05.15
16:26
(40) Не помогает, не создаётся... (
48 aka AMIGO
 
18.05.15
16:32
(47) Из терминала должна поступить сумма и реквизиты плательщика?
в 8-ке создается?
А может .. может читать инфу в 8-ку, и тут-же переписывать в 77 ?..
на грани, конечно, понимаю, но раз в 7-ке не работает, это может быть выходом?
49 H A D G E H O G s
 
18.05.15
16:32
(47) Ну давай я подключусь, посмотрю
50 ДенисЧ
 
18.05.15
16:34
(48) такой вариант - не вариант...
51 ДенисЧ
 
18.05.15
16:37
(49) Хочешь, я тебе скину файлик - у себя посмотри...
52 H A D G E H O G s
 
18.05.15
16:38
(51) Давай [email protected]
53 ДенисЧ
 
18.05.15
16:41
(52) улетело
54 Serginio1
 
18.05.15
16:41
ИмяВК="Addin.UCS_EFTPOS";
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
        Если ок=0 Тогда
                Сообщить("Не удалось подключить компоненту "+ИмяВК);
        КонецЕсли;
net =СоздатьОбъект(ИмяВК);
55 ДенисЧ
 
18.05.15
16:42
(54) в 77 нет ПодключитьвнешнююКомпоненту(0
56 Serginio1
 
18.05.15
16:46
(55) Хорошо ЗагрузитьВнешнююКомпоненту(Путь)
57 Serginio1
 
18.05.15
16:47
ЗагрузитьВнешнююКомпоненту(Имя.DLL)
58 ДенисЧ
 
18.05.15
16:49
(56) Ошибка при создании объекта из компоненты отсутствует CLSID
59 Serginio1
 
18.05.15
16:51
(58) Значит не ВК.
60 ДенисЧ
 
18.05.15
16:52
(59) Но в то же время в 8ке как ВК оно подключается.
61 aka AMIGO
 
18.05.15
16:53
(58) Друже, ты на компе - администратор?
62 ДенисЧ
 
18.05.15
16:53
(61) Натюрлихь )
63 aka AMIGO
 
18.05.15
16:54
(62) тады капут :)
64 ДенисЧ
 
18.05.15
16:54
Может, ещё поможет...
Вин 8.1 проф 64бит...
65 ДенисЧ
 
18.05.15
16:55
Надо дома будет на старой доброй ХП попробовать ещё...
66 Бубка Гоп
 
18.05.15
16:57
(58) вот тут куча советов по этому поводу, авось что поможет
https://forum.infostart.ru/forum10/topic8079/
67 aka AMIGO
 
18.05.15
16:57
64бит - можно сделать стойку..
у меня 7-ка проф тоже 64бит, удружили.. помучился я с ней с месяц..
68 Serginio1
 
18.05.15
16:58
(55) проверил для интереса

Процедура ТестПодключитьВнешнююКомпоненту()
    
    ИмяВК="Addin.AddInFromITypeInfo";
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
        Если ок=0 Тогда
                Сообщить("Не удалось подключить компоненту "+ИмяВК);
            Иначе
                Сообщить(ок);
        КонецЕсли;
net =СоздатьОбъект(ИмяВК);

КонецПроцедуры // ТестПодключитьВнешнююКомпоненту()


работает
69 ДенисЧ
 
18.05.15
17:01
(68) Ошибка при создании объекта из компоненты <Неизвестная компонента> (отсутствует CLSID)
70 Serginio1
 
18.05.15
17:14
(69) Я к тому, что  в 77 нет ПодключитьвнешнююКомпоненту(
71 Serginio1
 
18.05.15
17:16
А ты в реестре искал Addin.UCS_EFTPOS ?
72 Kvant1C
 
18.05.15
17:17
(0)Предположение: Может в 8-ке объект создается на сервере, где com-объект установлен, а в 77 на клиенте, где он отсутствует.
73 ДенисЧ
 
18.05.15
17:19
(71) Да. Он там есть
(72) Всё локально и файлово.
74 trdm
 
18.05.15
17:20
(72) +1
75 ДенисЧ
 
18.05.15
17:20
(72) (74) Ну вы меня совсем-то за идиота не держите... ))
76 trdm
 
18.05.15
17:20
Как запускается 8-ка и как запускается 7-ка.
Посмотрите под какими юзерами, может права разные.
77 ДенисЧ
 
18.05.15
17:21
(76) См (75)...
Всё запускается локально. Под одним пользователем системы.
78 trdm
 
18.05.15
17:23
Просто в v8 намутили с запуском, думал желательно проверить.
79 trdm
 
18.05.15
17:25
Может ком реализован криво, для v7 нужны одни интерфейсы, а v8 может без них справляться.
80 Бубка Гоп
 
18.05.15
17:29
(0) регистрировалась компонента через regsvr32 ?
81 trdm
 
18.05.15
17:32
(80) Иначе бы v8 её бы не увидела. Запуск то по прогиду идет.
82 Бубка Гоп
 
18.05.15
17:33
(81) зарегистрировать компоненту можно по-разному
83 Ёпрст
 
18.05.15
17:34
дай файло то поглядеть всем
84 trdm
 
18.05.15
17:38
(83)+1
85 trdm
 
18.05.15
17:38
(82) Знаю.
86 trdm
 
18.05.15
17:39
Но обычно команды регистрации генерятся студией.  они типичные.
87 Бубка Гоп
 
18.05.15
17:40
(86) встречалось по-всякому, поэтому и спросил
88 H A D G E H O G s
 
18.05.15
17:57
Все работает

Процедура Выполнить()
New=СоздатьОбъект("addin.UCS_EFTPOS");
Сообщить(New.Version);
КонецПроцедуры
89 H A D G E H O G s
 
18.05.15
17:57
Я долго втыкал в vbs скрипт, запускал его в Word VBA вот в нем не работает.
90 Ёпрст
 
18.05.15
18:01
(88) ну, значит бородач его не зарегел как надо..
надоть с SysWOW64 regsvr32 брать
91 H A D G E H O G s
 
18.05.15
18:03
Кстати, это адова смесь ВК и КОМ объекта :-) С криво написанной библиотекой типов. Забавный экземпляр.
92 ДенисЧ
 
18.05.15
19:14
SysWOW64 пробовал...
Щаз передыхну и попробую на ХП...
93 H A D G E H O G s
 
18.05.15
19:17
(92) Давай я подключусь :-)
94 ДенисЧ
 
18.05.15
19:19
(93) Я уже не на работе.
А тут всё заработало.
Завтра буду ковыряться дальше...
А ты лучше скажи пока, что смотреть...
95 H A D G E H O G s
 
18.05.15
19:21
(94) Я бы смотрел ProcMon-ом и сравнивал лог обращений к реестру свой (там его работает) с твоим логом.
96 H A D G E H O G s
 
18.05.15
19:21
там его работает ->
там где работает
97 Pit0n_08
 
18.05.15
20:21
На Вин 8.1 проф 64бит регистрировать .dll надежнее всего, запустив cmd от имени Администратора и уже там regsvr32
98 ДенисЧ
 
18.05.15
20:22
(97) А ничего, что оно работает в 8 и не работает в 7?
Какая зависимость?
99 H A D G E H O G s
 
18.05.15
20:59
(98) У меня заработала в win7 64x
100 ДенисЧ
 
18.05.15
21:00
(99) И что ты для этого сделал?
101 H A D G E H O G s
 
18.05.15
21:01
(100) regsvr32 от одмина.
102 ДенисЧ
 
18.05.15
21:07
(101) А я чо делал? И почему оно тогда есть в реестре и работает в 8ке?
103 H A D G E H O G s
 
18.05.15
21:09
(102) Прости, я не могу согнуть ложку, Нео. Это невозможно.
104 ДенисЧ
 
18.05.15
21:15
(103) Это непростительно!
105 ДенисЧ
 
19.05.15
09:36
Всё чудесатей...

http://pics.rsh.ru/img/obj_77pupbev.png

Результат запроса в реестр - ключ не найден. Но он там есть. И права на чтение тоже есть...
106 Ёпрст
 
19.05.15
09:53
(105) дык удали обе ветки и заново зареги.. либо /u
107 ДенисЧ
 
19.05.15
09:57
(106) То же самое...
108 Ёпрст
 
19.05.15
10:04
(107) запусти cmd от имени админа, в ней и регь, взяв regsvr32 c папки syswow64
109 ДенисЧ
 
19.05.15
10:07
(108) делал
110 ikea
 
19.05.15
10:09
Как вариант, если стоят последние обновления виндовс, откати их обратно. Недавно не мог поставить Openconf на win7 64, потом убрал последние обновления, все стало.
111 H A D G E H O G s
 
19.05.15
11:27
(109) Не созрел еще?
112 Бубка Гоп
 
19.05.15
11:30
(109) уже бы винду переустановить успел :D
113 ДенисЧ
 
19.05.15
11:31
(111) Может, к вечеру. Сейчас комп сильно нагружен. Да и задача пока не срочная
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший