Разработка .НЕТ-компоненты для 1С.
От: Bootch Россия  
Дата: 23.05.04 16:58
Оценка:
Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:

        [
             object,
             uuid(AB634001-F13D-11d0-A459-004095E1DAEA),
             helpstring("IInitDone Interface"),
             pointer_default(unique)
        ]
    interface IInitDone : IUnknown
    {
        [helpstring("method Init")] HRESULT Init([in] IDispatch *pConnection);
        [helpstring("method Done")] HRESULT Done();
                [helpstring("method GetInfo")] HRESULT GetInfo([in,out] SAFEARRAY (VARIANT) *pInfo);
    };


Что я делаю:


using System;
using System.Runtime.InteropServices;

namespace ExternalComponent
{
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown),
    Guid("28382723-A240-4a45-BD88-3181F9E0D16D")]
    public interface IInitDone
    {    
        [PreserveSig]
        void Init([MarshalAs(UnmanagedType.IDispatch)]Object pConnection);
        
        [PreserveSig]
        void Done();

        [PreserveSig]
        void GetInfo(ref Object[] pInfo);
    }

    [ComVisible(true),
    ProgId("AddIn.AddInTest"),
    Guid("5BC74003-2EAB-4a89-AEB2-F4D81DC68A91"),
    ClassInterface(ClassInterfaceType.None)]
    public class AddInTest : IInitDone
    {
        public AddInTest()
        {
        }

        public void Init([MarshalAs(UnmanagedType.IDispatch)]Object pConnection)
        {
            return;
        }

        public void Done()
        {
            return;
        }

        public void GetInfo(ref Object[] pInfo)
        {
            try
            {
                pInfo.SetValue("1000", 0);
            }
            catch (Exception e)
            {
                throw new COMException(e.Message, e);
            }
        }
    }
}


После регистрации я пытаюсь подключить это в 1С, на что она мне рапортует, что:
Ошибка создания объекта из компоненты <Неизвестная компонента> (Отсутствует интерфейс IInitDone)

ВОПРОС Как необходимо описать класс, чтобы при обращении к объекту данного класса 1С получала необходимый ей интерфейс? Перепробовал уже кучу атрибутов и т.д. и т.п. но не прокатывает. Подскажите что-нибудь, заранее благодарен.
Re: Разработка .НЕТ-компоненты для 1С.
От: Skleroz Россия  
Дата: 23.05.04 22:56
Оценка:
Здравствуйте, Bootch, Вы писали:

Может быть, проблема не в коде. У меня та же проблема была под Citrix. При регистрации компоненты (/первом запуске твоего отчета/обработки) нужны права администратора (под Win2k)
Re: Разработка .НЕТ-компоненты для 1С.
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 24.05.04 06:22
Оценка:
Здравствуйте, Bootch, Вы писали:

B>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Аноним  
Дата: 24.05.04 06:40
Оценка:
Здравствуйте, Skleroz, Вы писали:

S>Здравствуйте, Bootch, Вы писали:


S>Может быть, проблема не в коде. У меня та же проблема была под Citrix. При регистрации компоненты (/первом запуске твоего отчета/обработки) нужны права администратора (под Win2k)


С правами все номано, являюсь локальным админом на своей машине....(к сожалению... )
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Аноним  
Дата: 24.05.04 06:44
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, Bootch, Вы писали:


B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.


Да интересно, если несложно то вышли на два адресса, на butcher@peterstar.ru и на ksv@passage.spb.ru.....
Заранее спасибо!
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Bootch Россия  
Дата: 24.05.04 06:48
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, Bootch, Вы писали:


B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.


Под анонимом, енто мое сообщение, просто не залогинился..сори
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Bootch Россия  
Дата: 24.05.04 07:27
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, Bootch, Вы писали:


B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.


Спасибо, за пример на VB, он поднялся без проблем всяких, теперь буду у себя баги выискивать...
Re: Разработка .НЕТ-компоненты для 1С.
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 24.05.04 09:33
Оценка:
Здравствуйте, Bootch, Вы писали:

B>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


Я давно пишу для 1С обычные объекты автоматизации подключаемые через дополнительную ВК через ItypeInfo. Писать большие ВК по технлогии 1С дело не для слабонервных, да и не нужно.
http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2019
http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2305
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Bootch Россия  
Дата: 24.05.04 20:20
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, Bootch, Вы писали:


B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


S> Я давно пишу для 1С обычные объекты автоматизации подключаемые через дополнительную ВК через ItypeInfo. Писать большие ВК по технлогии 1С дело не для слабонервных, да и не нужно.

S> http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2019
S> http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2305

Да ты понимаешь тут дело на принцип уже пошло просто....
А по поводу ссылок, которые ты показал, спасибо конечно, но я их уже видел, я перед тем как постить поиском не поленился поискать чего есть, т.ч. я их смотрел, кстати ты и писал...и помимо ентого есть и такая фишка Universal 1C LanguageExtender (ULE) здесь но наверное тоже видел....

А у меня понимаешь код на VB.NET работает, а на C#.NET нет, вот я и не могу с ентим свыкнутся....
Re[2]: Разработка .НЕТ-компоненты для 1С.
От: Scalder  
Дата: 25.05.04 05:41
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Здравствуйте, Bootch, Вы писали:


B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:


AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.

А можно и мне scalder_xp собака mail.ru
Re[3]: Разработка .НЕТ-компоненты для 1С.
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.05.04 09:04
Оценка:
Здравствуйте, Bootch, Вы писали:


S>> Я давно пишу для 1С обычные объекты автоматизации подключаемые через дополнительную ВК через ItypeInfo. Писать большие ВК по технлогии 1С дело не для слабонервных, да и не нужно.

S>> http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2019
S>> http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2305

B>Да ты понимаешь тут дело на принцип уже пошло просто....

B>А по поводу ссылок, которые ты показал, спасибо конечно, но я их уже видел, я перед тем как постить поиском не поленился поискать чего есть, т.ч. я их смотрел, кстати ты и писал...и помимо ентого есть и такая фишка Universal 1C LanguageExtender (ULE) здесь но наверное тоже видел....

B>А у меня понимаешь код на VB.NET работает, а на C#.NET нет, вот я и не могу с ентим свыкнутся....

Ну разберешься сообщи. Интересно для общего развития.
... << RSDN@Home 1.1.0 stable >>
и солнце б утром не вставало, когда бы не было меня
Re: Разработка .НЕТ-компоненты для 1С.
От: Аноним  
Дата: 25.08.04 12:01
Оценка:
Здравствуйте, Bootch, Вы писали:

B>public void Init([MarshalAs(UnmanagedType.IDispatch)]Object pConnection)

B>{
B> return;
B>}

может я чего не понял. во всяком случае .нет я еще не видел , но вот то, что init должен быть описан как STDMETHODIMP CAddIn::Init(IDispatch *pConnection) и возвращать return S_OK — могу поспорить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.