Вход | Регистрация
    1  2  3  4  5  6  7  8  9  10  11   

Собираюсь писать ВК для 1С на C#

Ø [длинная ветка, 21.12.20 - 20:41]
Собираюсь писать ВК для 1С на C#
Я
   Гений 1С
 
11.12.20 - 19:44
Пример буду брать из "Технологии внешних ВК" на ИТС.
Вопрос такой - где брать платформу C# (IDE)?

По сути, мне надо обертку над DLL писать.
Раньше ее писал на VB6, но пора переходить на C#, у производителя оборудования пример на C#, кроме того нужна версия компоненты на 32 и 64 разряда.
 
 Партнерская программа EFSOL Oblako
   lEvGl
 
601 - 18.12.20 - 15:58
(599) да почему бы нет, какая разница, если функционал устраивает, хоть счеты пусть достают, на них спецы пока еще есть
   lEvGl
 
602 - 18.12.20 - 16:08
(584) а у алжирского дея под самым носом шишка (с)
и что
это исключение, а не правило
   Гений 1С
 
603 - 18.12.20 - 16:12
(602) перечитай статью. тебя возможно удивит, но рынок мирового COBOL в несколько раз больше рынка 1С.
   dangerouscoder
 
604 - 18.12.20 - 16:23
(595) заказчику тоже неделю расказываешь про чиновников США?
Или ВК уже написана отлажена и внедрена?
   Гений 1С
 
605 - 18.12.20 - 16:27
(604) со сроками все путем
   lEvGl
 
606 - 18.12.20 - 16:29
(603) рынка 1С, серьезно? представляю восколько раз рынок Виндовс больше рынка 1С.
   lEvGl
 
607 - 18.12.20 - 16:31
+ или того же рынка cobol
   Гений 1С
 
608 - 18.12.20 - 16:39
(606) иди изучай COBOL, 50$ в час больше чем 20$
   lEvGl
 
609 - 18.12.20 - 16:47
кобол, шмабол - все эти дела меняются по три раза на день, лучше уметь что то более постоянное, например предметную область, для которой на коболе делаешь, а там хоть на ворде
   lEvGl
 
610 - 18.12.20 - 16:50
(608) 20$ - это действительно баснословные деньги, от слова басня, если про кодинг 1с говорить
   lEvGl
 
611 - 18.12.20 - 16:52
ну если не франч, имею ввиду, но и часов там не 160 в месяц, а если 160 то не 20$
   Гений 1С
 
612 - 18.12.20 - 16:58
(611) я думаю там коболисты загружены 8*5, хотя учитывая, что они старички, может дедкам и 4*4 хватает
   acht
 
613 - 18.12.20 - 17:50
Геня, ты все еще собираешся, или уже пишешь?
Неделя уже прошла, есличо.
   Гений 1С
 
614 - 18.12.20 - 17:51
(613) пока вы еще не мой секретарь, за сроками слежу я сам. Говорю же, все пучком.
   H A D G E H O G s
 
615 - 18.12.20 - 18:13
   Кирпич
 
616 - 18.12.20 - 20:39
Гений съезжает на кобол :) Похоже сдулся
   Конструктор1С
 
617 - 19.12.20 - 10:25
(597) "спецы по 77 наверное скоро будут стоить столько же, сколько по Коболу"

Не будут. У них совершенно разные условия. В кобол американские банки в своё время вложили вагоны $$$. В семеру в своё время вложили сто рублей российские ларьки. И если американскому банку не на что заменить свою уникальную миллиардную систему, то семера российского ларько легко заменяется на восьмеру или любое из 100500 представленных на рынке решений
   Конструктор1С
 
618 - 19.12.20 - 10:27
(616) банально не умеет доводить дела до конца. Поэтому как тот ветренный юнец прыгает с одного на другое
   Гений 1С
 
619 - 19.12.20 - 12:30
(618) те дела, за которые мне платят, я довожу до конца. ;-)

Кстати, коллеги, а 64-разрядная COM-компонента сможет на сервере работать?
не охота Native писать, она же в 77 не подцепится и в других системах, это по сути, только для 1с
   Гений 1С
 
620 - 19.12.20 - 12:56
(617) Кстати, да, у USA не очень хорошо с документированием и поддержкой. Вон, документацию по полетам на Луну полностью утратили. Хотя специалисты теории заговора говорят, что полетов не было, но если полеты были, то так потерять документацию - позор. Наверное и с Коболом так же
   Кирпич
 
621 - 19.12.20 - 13:06
(620) Ага. Давай ветку флудом про кобол и луну закидаем, чтобы не видно было где наш Гений окончательно обосрался.
   jbond
 
622 - 19.12.20 - 14:46
(585) Java, Cobol, Python, C, C++, C#...
   H A D G E H O G s
 
623 - 19.12.20 - 14:52
(619) Все может. Если что то не может - то это кривые руки, Гений.
На Сервере недоступны некоторые функции AppDispatch, но это решаемо, хоть ты и не поймешь, про что я.
   H A D G E H O G s
 
624 - 19.12.20 - 14:52
Компонента уже дописывается, я правильно понимаю? Документация уже пишется, Сергей?
   Гений 1С
 
625 - 19.12.20 - 15:22
(624) пока что обновляется VC, чтобы протестировать компиляцию C++ примера компоненты от 1С.
   Гений 1С
 
626 - 19.12.20 - 15:25
(623) а как именно? Вот я написал 64-разрядную COM-компоненту. и что, регсервом из сисвов64 реглю и запускается?
почему же у меня NET компонента в &НаСервере не регилась в тонком?
   Serginio1
 
627 - 19.12.20 - 15:25
(619)Любой ком объект можно использовать где угодно, кроме линукса.
Главное быть зарегистрированной в нужных ветках реестра для определенной разрядности ос.
ВК ПодклюищитьВнешнююКомпоненту как ты уже знаешь на сервере не работает.
AppDispath, ILanguageExtender и прочие интерфейсы на сервере не нужны. достаточно IDispatch
   Serginio1
 
628 - 19.12.20 - 15:27
(626)
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
   Кирпич
 
629 - 19.12.20 - 16:06
(628) "Внимание! Вариант метода не работает на сервере и во внешнем соединении."
Кризис IT во всей красе
   Garykom
 
630 - 19.12.20 - 16:19
(629) Честно говоря я не понимаю почему еще в 1С не сделали нормальный удобный и везде работающий способ написания ВК.
Причем не только на C++ но других популярных ЯП.
 
 
   Конструктор1С
 
631 - 19.12.20 - 16:46
(630) для полуоблачной 1с технология внешних компонент сама по себе скорее атавизм
   Garykom
 
632 - 19.12.20 - 16:53
(631) тогда хотя бы http сервер в клиента 1С встроить, чтобы внешние события без ВК ловить
   Конструктор1С
 
633 - 19.12.20 - 17:07
(632) имхается мне, со временем фирма 1с будет развивать возможности интеграции с другими системами. Это прям жизненная потребность. В ларьке в 2005-м году платформа 1с саме себе такая красавица, ни о ком не хотела знать. В холдинге в 2020-м такой самозамкнутость уже недостаток. В крупных предприятиях over дохрена всяких технологий, и вся эта кухня интегрируется друг с другом
   Гений 1С
 
634 - 19.12.20 - 17:09
(628) и как быть?
   H A D G E H O G s
 
635 - 19.12.20 - 17:13
(634) Позвать специалиста
   Ненавижу 1С
 
636 - 19.12.20 - 17:27
Native
   acht
 
637 - 19.12.20 - 17:34
(632) И как сервер взаимодействия тогда продавать? =)
   Serginio1
 
638 - 19.12.20 - 18:26
(634) Добавь к своей компоненте методы. Пометь их на всякий случай [ComVisible(true)]
и создавай через новый COMОбъект(ProgID)
И вызывай методы также как4 и ПодключитьВнешнююКомпоненту(ProgID) и Создать(ИмяКомпоненты)
Только вызыватся для  COMОбъект будут через IDispatch а не ILanguageExtender.
Ты кстати можешь в  CallAsProc и CallAsFunc GetPropVal вызывать эти методы. И будет у тебя 2 в одном!
   Serginio1
 
639 - 19.12.20 - 18:40
Только метод должен быть публичным
[ComVisible(true)]
public object СоздатьОбъект(object Тип, params object[] argOrig)

Про  ComVisible можно почитать здесь.
https://docs.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.comvisibleattribute?view=net-5.0

Если хочешь, что бы все типы были по умолчанию [ComVisible(true)] то задай в AssemblyInfo.cs
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
   Кирпич
 
640 - 19.12.20 - 19:59
(639) 0 бит. Слишком много непонятных букв.
   ДедМорроз
 
641 - 19.12.20 - 20:25
А компонента на сервере и события передавать же не может
Тогда вопрос-а зачем она вообще нужна,если пнуть что-то можно через КомандаСичтемы?
   H A D G E H O G s
 
642 - 19.12.20 - 20:34
(641) Работать с объектами 1С внутри ВК.
   ДедМорроз
 
643 - 19.12.20 - 20:41
На клиенте - да,а на сервере?
Просто,можно подключить внешнюю обработку и уработаться по самые уши.
А если ещё и магический оператор Выполнить,то счастье будет.
   ДедМорроз
 
644 - 19.12.20 - 20:43
Просто,web-клиент оператор Выполнить не умеет
Правда,он и компоненты умеет достаточно ограниченно.
   Serginio1
 
645 - 19.12.20 - 21:04
(642) Передавай в методы Com объекта любые объекты 1С и будет тебе счастье. Можешь ссылку на модуль передать и вызывай все методы модуля из комобъекта.
А сообщить и прочая лабуда на сервере не нужна
   H A D G E H O G s
 
646 - 19.12.20 - 21:36
(645) Например, закрыть код
   Serginio1
 
647 - 19.12.20 - 22:15
(646) Не понял. Как закрыть код?
   Garykom
 
648 - 19.12.20 - 22:22
(647) часть функционала из 1С выносится в ВК
   acht
 
649 - 19.12.20 - 22:23
(647) Это второй вариант ответа на "а зачем она вообще нужна". Закрыть код на 1С выносом функционала в dll.
   Serginio1
 
650 - 19.12.20 - 22:43
(648) Ну еще раз передай в объект ссылку на модуль где есть методы Новый(), выполнить и методы с  возвращающий менеджер  Справочник Документ.
Ты же будежь делать обработку ну и передавай ЭтотОбъект и закрывай код.
   H A D G E H O G s
 
651 - 19.12.20 - 22:46
(650)
Нехватающего сделал через ОМ

Функция ВыполнитьВычисление(Выражение,Параметр) Экспорт
    Возврат Вычислить(Выражение);
КонецФункции

Процедура ЗапуститьВыполнение(Выражение) Экспорт
    Выполнить(Выражение);
КонецПроцедуры

Функция ЭтоСервер() Экспорт
    Результат=Ложь;
    #Если Сервер Тогда
        Результат=Истина;
    #КонецЕсли
    Возврат Результат;
КонецФункции

Процедура ЗаполнитьЗначенияСвойствПереопределенный(Приемник, Источник,СписокСвойств=Неопределено,ИсключаяСвойства=Неопределено) Экспорт
    ЗаполнитьЗначенияСвойств(Приемник,Источник,СписокСвойств,ИсключаяСвойства);
КонецПроцедуры

Функция СравнитьЗначения(Значение1,Значение2) Экспорт
    Возврат Значение1=Значение2;
КонецФункции

Для всего остального хватает ОМ
   H A D G E H O G s
 
652 - 19.12.20 - 22:46
Для всего остального хватает ОМ ->
Для всего остального хватает AppDispatch
   Serginio1
 
653 - 19.12.20 - 22:49
(0) https://its.1c.ru/db/metod8dev#content:3221:hdoc:_com_warning

Особенности разработки компонент с использованием COM
Компоненты, разработанные с использованием технологии COM, могут быть изначально не установлены на компьютере пользователя. Метод ПодключитьВнешнююКомпоненту(<МестонахожденияКомпоненты>, <ИмяМетки>, ТипВнешнейКомпоненты.COM), получает из информационной базы файл внешней компоненты, если последняя находится там, и вызывает функцию регистрации объектов компоненты DllInstall. Если регистрация "для пользователя" завершилась неудачно, то вызывается функция DllRegisterServer. Если пользователь ограничен в правах, то регистрация и подключение внешней компоненты может закончится неудачей. Разработчик должен предусмотреть возможность регистрации компоненты для пользователя, под его текущими правами. Если внешняя компонента имеет свой инсталлятор, то она должна регистрироваться для компьютера.
   Serginio1
 
654 - 19.12.20 - 22:52
(652) Так как ты на сервере подключишь?
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
   H A D G E H O G s
 
655 - 19.12.20 - 22:56
(654) Жесть какая.

Глобальный контекст (Global context)
ПодключитьВнешнююКомпоненту (AttachAddIn)
Вариант синтаксиса: По имени и местоположению
Синтаксис:
ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>)
   Гений 1С
 
656 - 19.12.20 - 23:27
(638) кстати, да, как вариант.
   Serginio1
 
657 - 19.12.20 - 23:37
   H A D G E H O G s
 
658 - 19.12.20 - 23:41
(657) На что не ответил?
   Garykom
 
659 - 20.12.20 - 00:13
(657) Если правильно помню то ВК на сервере не могут дергать сервер 1С, только сервер дергать методы ВК
   H A D G E H O G s
 
660 - 20.12.20 - 00:33
(659) Нет, не могут. Если ты про ВнешнееСобытие или ДобавитьОбработчик
 
 
   pavig
 
661 - 20.12.20 - 01:38
(221)
Ты попутал чего-то
   Garykom
 
662 - 20.12.20 - 01:47
(660) Угу, поэтому смысл ВК на сервере теряется, можно заменить публикацией на веб-сервере и сервисом в 1С
И сервер 1С может дергать внешний веб-сервис вместо вызовов методов ВК, конечно это тормозней

Т.е. ВК нужна для скорости или дергать 1С на клиенте
   ДедМорроз
 
663 - 20.12.20 - 08:18
В vk можно реализовать функцию Sleep, которая на сервере очень нужна,особенно,когда фоновое задание чего-то ожидает.
   Вафель
 
664 - 20.12.20 - 09:47
(662) наделают микросервисов, а потом хрен тестовую базу развернешь
   acht
 
665 - 20.12.20 - 10:28
(664) Ты чо, это же наоборот, дает бесценную возможность невозбранно портить продуктовые базы вызовами из тестовых баз!
   ДедМорроз
 
666 - 20.12.20 - 10:42
Если грамотно прописать адреса для обмена,то независимо от технологии тестовые будут лезть в тестовые,а рабочие в рабочие.
Это только у того,кому день писать,потом тестовая база гадит в рабочую.
   Serginio1
 
667 - 20.12.20 - 11:14
(658) На последний вопрос v8: Не могу понять, вызывает ли сервер 1С внешнюю компоненту...
Как раз про AppDispatch
Уважаемый HADGEHOGs,
может быть Вы сможете еще помочь мне прояснить следующую ситуацию:
через PBackConection (pConnrection) пытаюсь получить ссылку на AppDispatch. Вызов m_iConnect->GetIDsOfNames(...  отрабатывает нормально (возвращает 0). Но далее, при попытке вызова m_iConnect->Invoke(... rphost активно что-то пытается делать, затем вылетает с ошибкой (наверное по таймауту).
Точно такой же код, но в 32-битной версии и при выполнении на клиенте отрабатывает без проблем (понятно, что там работет 1cv8.exe а не rphost). Сервис агента 1С грузится под администратором. Соответственно возникли два вопроса:
1. В принципе, rphost должен воспринимать нормально запрос на Invoke или нет?
2. Можно ли каким либо образом расширить логирование rphost, чтобы он туда клал больше информации?
   ДедМорроз
 
668 - 20.12.20 - 13:03
Там нужно внимательно читать про выравнивание данных,так как по умолчанию для 64 бит это 8 байт и очень вероятно попасть мимо поля объекта.
   H A D G E H O G s
 
669 - 20.12.20 - 13:29
(667) Тема 6 летней давности.
Последний вопрос парень задал на сл. день от моего ответа и его я скорее всего просто не заметил.
У тебя там все нормально?
   H A D G E H O G s
 
670 - 20.12.20 - 13:34
Все нормально ВК работают на сервере, в x64, что за недоверие?
http://prntscr.com/w6ghzk
   Serginio1
 
671 - 20.12.20 - 14:00
(670) Я про AppDispatch на сервере
   ДедМорроз
 
672 - 20.12.20 - 14:47
Там,кстати,ещё и разделение по потокам должно быть,так как на сервере несколько потоков должны одну и ту же компоненту разделять,а так как там не оконный интерфейс,то размещение в одном потоке должно приводить к вызову через rpc всех методов,а они у windows через очередь сообщений,которая у серверного процесса если и есть,то работает криво.
   Serginio1
 
673 - 20.12.20 - 14:56
(672) Там через окно созданной в потоке синхронизацию можно производить. В моих примерах http://catalog.mista.ru/1c/articles/417830/
для событий я использую
if (SynchronizationContext.Current == null)
        SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());

Ну и аппартамент должен инициализирован. Но это вроде не касается AppDispatch, от то как раз и зовется в вызывающем потоке
   Serginio1
 
674 - 20.12.20 - 15:00
673+ Вообще то ВК может быть создана в одном потоке, а вызываться в другом. Могут быть проблемы.
   H A D G E H O G s
 
675 - 20.12.20 - 15:01
   Serginio1
 
676 - 20.12.20 - 15:02
Учитывая, что потоки скорее всего пул потоков
   Serginio1
 
677 - 20.12.20 - 15:03
(675) Ок, спасибо!!!
   H A D G E H O G s
 
678 - 20.12.20 - 15:03
Проблем с многопотоком нет. Ни с AppDispatch, ни с iEvent
   Serginio1
 
679 - 20.12.20 - 15:06
(678) На шарпе были. Поэтому и делал  WindowsFormsSynchronizationContext(). Проблема скорее всего была в аппартаметах и пуле потоков которые были непринициалмзированы
   Serginio1
 
680 - 20.12.20 - 15:08
(678) Напомни пожалуйста откуда берется промежуточное имя после Addin.
   H A D G E H O G s
 
681 - 20.12.20 - 15:10
(680) Сам задаешь в 1С

"Alcosphere"

Возврат ПодключитьВнешнююКомпоненту(ПутьКМакетуСКомпонентой,"Alcosphere",ТипВнешнейКомпоненты.COM);
   Serginio1
 
682 - 20.12.20 - 15:11
(681) Спасибо!
   Serginio1
 
683 - 20.12.20 - 15:40
(679) В Delphi ты можешь проинициализировать поток  через CoInitialize   CoUninitialize;
А в .Net нельзя, только создав поток вызвав SetApartmentState и затем запустить
   Гений 1С
 
684 - 20.12.20 - 16:08
Пример от 1С открылся, но сборка не работает:

Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Предупреждение    MSB8003    Could not find WindowsSdkDir_71A variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.    AddInNative    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140_xp\Toolset.targets    36    
Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Предупреждение    MSB8003    Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.    AddInNative    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets    366    
Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Ошибка    C1083    Не удается открыть файл включение: windows.h: No such file or directory,    AddInNative    m:\fixin\1s8mytools\anviz биометрия\+\проект cs anvizcchex 2020\vncomps\vncomps\vncomp83\template\stdafx.h    9    


в общем, решил собирать с нуля.
Тем более, решил использовать на С++ не NATIVE, а COM, т.к. COM - универсальный, а Native - только для 1С.
На сервере можно продублировать методы ВК в методы самой компоненты, в принципе, или пусть запускают из запускаемого по расписанию приложения, как раньше.
   H A D G E H O G s
 
685 - 20.12.20 - 16:28
(684) тебя просто подавила компонента.
   H A D G E H O G s
 
686 - 20.12.20 - 16:34
Состояние подавления:
Обнаружен рукопоп, выполняю подавление.
   Кирпич
 
687 - 20.12.20 - 16:53
(686) У одной женщины тоже такое сообщение показало. Вызвали скорую - оказалось ковид.
   Кирпич
 
688 - 20.12.20 - 16:54
(687) это к (684)
   Гений 1С
 
689 - 20.12.20 - 17:05
Гм, создал шаблон ATL-DLL компоненты, получил ошибку: Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Ошибка    MIDL1005    cannot find C preprocessor cl.exe    AnvizCCHEX    m:\fixin\1s8MyTools\Anviz биометрия\+\Проект CS AnvizCCHEX 2020\AnvizCCHEX-CPP-COM\AnvizCCHEX\midl    1
   Кирпич
 
690 - 20.12.20 - 17:19
(689) Сотри уже VS и живи как жил
   H A D G E H O G s
 
691 - 20.12.20 - 17:22
Это именно те веселости взрослых ЯП, о которых я говорил выше, Сергей.

Их, кстати, почти не в умершей Дельфи и ущербном Паскале.
   pereval
 
692 - 20.12.20 - 17:22
(0) долго боролся с этой темой
Создание dll на C# для 1С 8

вот что получилось. пока черновик решения
http://catalog.mista.ru/public/1318084/
   H A D G E H O G s
 
693 - 20.12.20 - 17:23
VS подавляет Сергея всеми силами

Sergey's lives matter!
   Кирпич
 
694 - 20.12.20 - 17:26
(691) 0 бит. Единственное, что Сергей знает о программировании - это паскаль западло и Delphi умер.
   Гений 1С
 
695 - 20.12.20 - 18:23
Путем плясок с бубном удалось собрать сборку динамической DLL (COM).
Но извраты еще те:
Включаемые каталоги:
$(VC_IncludePath);$(WindowsSDK_IncludePath);k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.20.27508\atlmfc\include\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\include\
Каталоги библиотек:
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\atlmfc\lib\spectre\x86\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\lib\onecore\x86\

Но еще надо разобраться, как добавить методы к моей DLL, за основу смотрю:
http://catalog.mista.ru/public/115486/
   Гений 1С
 
696 - 20.12.20 - 18:28
Гм, при добавлении ATL Simple Object ошибка fatal error RC1107
invalid usage; use RC /? for help

по ходу RC не включена в PATH, счас буду искать, что это такое
   H A D G E H O G s
 
697 - 20.12.20 - 18:28
   Гений 1С
 
698 - 20.12.20 - 19:12
(696) Пиздец, забавное решение проблемы: https://stackoverflow.com/questions/8912136/vc-compile-error-rc-fatal-error-rc1107-invalid-usage-use-rc-for

Теперь это работает, но не понятно, как добавить новые методы. В VC19 это выглядит несколько иначе, чем в VC10
тест = новый COMОбъект("AnvizCCHEX.Device");
   H A D G E H O G s
 
699 - 20.12.20 - 19:18
(698)
Решение:
Добавьте слэш в конце пути. Если слэш в конце пути уже есть - удалите его.

Дым на небе, дым на земле
Вместо людей машины
Мертвые рыбы в иссохшей реке
Зловонный зной пустыни
   Гений 1С
 
700 - 20.12.20 - 20:21
Не хочу реализовывать всю технологию ВК от 1С, хочу просто добавить свои методы, объект создается, но метод Test не видится:

тест = новый COMОбъект("AnvizCCHEX.Device");
тест.Test();

ЧЯДНТ?

library AnvizCCHEXLib
{
    importlib("stdole2.tlb");
    [
        uuid(e1ee7273-ab6d-4516-9492-251418282fc1)
    ]
    coclass CAnvizCCHEX
    {
        [default] interface ICAnvizCCHEX;
    };
};


[
    object,
    uuid(AB634003-F13D-11d0-A459-004095E1DAEF),
    helpstring("ILanguageExtender Interface"),
    pointer_default(unique)
]

interface ILanguageExtender : IUnknown
{
    [helpstring("method Test")] HRESULT Test();
};
  1  2  3  4  5  6  7  8  9  10  11   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.