Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:
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С получала необходимый ей интерфейс? Перепробовал уже кучу атрибутов и т.д. и т.п. но не прокатывает. Подскажите что-нибудь, заранее благодарен.
Может быть, проблема не в коде. У меня та же проблема была под Citrix. При регистрации компоненты (/первом запуске твоего отчета/обработки) нужны права администратора (под Win2k)
Здравствуйте, 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.....
Заранее спасибо!
Здравствуйте, Alexandr Sulimov, Вы писали:
AS>Здравствуйте, Bootch, Вы писали:
B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:
AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.
Под анонимом, енто мое сообщение, просто не залогинился..сори
Здравствуйте, Alexandr Sulimov, Вы писали:
AS>Здравствуйте, Bootch, Вы писали:
B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:
AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.
Спасибо, за пример на VB, он поднялся без проблем всяких, теперь буду у себя баги выискивать...
Здравствуйте, Bootch, Вы писали:
B>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:
Здравствуйте, 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 нет, вот я и не могу с ентим свыкнутся....
Здравствуйте, Alexandr Sulimov, Вы писали:
AS>Здравствуйте, Bootch, Вы писали:
B>>Здрава, всем!!! Столкнулся с проблемой создания компоненты для 1С, а именно: любая компонента, которую подключаешь из 1С должна реализовывать определенные интерфейсы (обязательно IInitDone), его описание на IDL следующее:
AS>Есть шаблон компоненты 1С на VB.NET (не мой, скачал где-то). Могу выслать, если интерессно.
А можно и мне scalder_xp собака mail.ru
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 >>
и солнце б утром не вставало, когда бы не было меня
может я чего не понял. во всяком случае .нет я еще не видел , но вот то, что init должен быть описан как STDMETHODIMP CAddIn::Init(IDispatch *pConnection) и возвращать return S_OK — могу поспорить