IE 2017

Шаблон внешней компоненты на C#

Программирование - Внешние компоненты

Шаблон внешней компоненты для 1С:Предприятие на C#.

Написан и успешно компилируется в Microsoft Visual C# 2010 Express. В комплекте RegAddIn.bat как образец для регистрации компоненты в реестре и обработка для проверки работоспособности в 1С. Все проверялось с 1С версии 8.2.16.352.

Upd, 25.04.2016

Компонента успешно пересобрана и проверена на конфигурации:

  • 1С:Предприятие 8.3.7.2027
  • MS Visual Studio Express 2015 для Windows Desktop
  • Windows 10

Скачать файлы

Наименование Файл Версия Размер
AddIn
.zip 37,25Kb
15.04.16
640
.zip 37,25Kb 640 Скачать

См. также

Вознаграждение за ответ
Показать полностью
Комментарии
1. Андрей Краснокутский (Andry.Boris) 53 21.06.12 01:08 Сейчас в теме
Плюсую...
но... есть вопрос?
В длл только элементарные действия или можно работать с базой (справочниками, документами...)
Если можно пример на шарпе с обработкой справочника...
2. Ростислав Кузьмин (Kuzja_R) 298 21.06.12 02:17 Сейчас в теме
(1) Andry.Boris, можно, но я с этим еще не разобрался, поэтому примера нет. Могу, как вариант, дать ссылку. Там этот вопрос рассматривается.
3. TigeRuS 22.06.12 08:36 Сейчас в теме
Вообще не вижу смысла данной компоненты. Все плюсы, которые указывает автор статьи спорные: например, выгрузка/загрузка в xml - это запросто можно сделать используя средства 1С. Я лучше буду программировать либо в 1С, либо на шарпе, но вместе зачем их скрещивать. У них разные области применения.
4. Сергей Самошин (saiten) 216 22.06.12 09:50 Сейчас в теме
А неплохо. Плюсанул. Но кое-что непонятно:
1. Зачем подключено System.EnterpriseServices? Я что-то упустил?
2. Назначение интерфейса IMyComponent.
3. Работа со свойствами не реализована?
5. Ростислав Кузьмин (Kuzja_R) 298 22.06.12 10:05 Сейчас в теме
(3) TigeRuS, данной компоненты - это какой? Я в своей ни о каких плюсах не говорю. По ссылке, которую я привел выше тоже плюсы/минусы не рассматриваются. Слово "xml" там встречается ровно 1 раз, когда говорится о способе хранения настроек проекта VB.NET. Вы о чем? Сам придумал преимущество и сам его опроверг. :)
И тот, и другой пример - просто примеры создания внешних компонент: мой - как это сделать на c#, в статье по ссылке - как из компоненты работать с объектами 1С (ответ на (1)).
С утверждением о разных областях применения согласен. Именно по этому они удачно дополняют друг друга через механизм ВК.
6. Ростислав Кузьмин (Kuzja_R) 298 22.06.12 10:33 Сейчас в теме
(4) saiten,
1. System.EnterpriseServices осталось в наследство от примера из отличной статьи. Там это пространство имен нужно было для работы с COM+. Можно и без него, согласен.
2. Интерфейс IMyComponent нужен для работы процедуры RegisterExtensionAs, которая перебирает все интерфейсы и хэширует имена методов, объявленных в них.
3. Со свойствами - да есть проблема: интерфейсы не могут содержать поля. Может быть кто-то из уважаемой публики предложит решение?

P.S.
Как вариант, добавлять имена свойств в хэш таблицы в процедуре RegisterExtensionAs хардкодом. И реализовать GetPropVal, SetPropVal, IsPropReadable, IsPropWritable.
7. Сергей Самошин (saiten) 216 22.06.12 11:33 Сейчас в теме
Интерфейс IMyComponent нужен для работы процедуры RegisterExtensionAs, которая перебирает все интерфейсы и хэширует имена методов, объявленных в них.
Л-логично... Просто, несколько проще было бы, на мой взгляд делать так: хэш заполнять по this.GetType().GetMethods(), а функционал компоненты отделить от реализации интерфесов:
class myTestComponent:myComponent
{
 public int Go(int Param1, int Param2)
...

А вообще, респект. Делал похожую штуку, только до публикации так и не дошло, бо потребовалась реализация native API под тонкий клиент и не удалось решить красиво проблему со свойствами.
8. Василий Казьмин (awk) 679 23.06.12 01:20 Сейчас в теме
(3) TigeRuS, Только сегодня накатал на C# СОМ обертку для Regex, т.к. VBScript.RegExp не понимает UTF-8.
15 мин и счастье в кармане. Так что есть что расширять в 1С. Хотя регулярных выражений как не было в ней, так и нет. Лучше бы 1С вместо XML регулярные выражения в общие объекты включила.
KilloN; gortol; +2 Ответить
9. Ростислав Кузьмин (Kuzja_R) 298 23.06.12 13:13 Сейчас в теме
(7) saiten, функционал конечно нужно как-то отделять от интерфейса. Только думаю, что так просто не получится. 1С создает и работает с объектом MyComponent (в данном примере). Если мы создаем производный класс myTestComponent и в нем определяем методы, как получит доступ к ним MyComponent? И если принята модель, что пользовательские методы объединяются в отдельный интерфейс, то как туда попадут они из производного класса? Тут нужно что-то другое придумывать...

Если кому интересно, реализовал работу со свойствами. Выложил свежий файл.
10. Сергей Самошин (saiten) 216 24.06.12 12:39 Сейчас в теме
(9)Собственно, 1С создаст объект типа MyTestComponent и будет работать с ним через методы, определённые в MyComponent (естественно, для производного класса, надо установить ComVisible(true) и Guid). При этом this будет указывать на объект MyTestComponent, таким образом ничто не помешает 1С вызывать методы MyTestComponent, имея ссылку на MyComponent через Invoke, т.к. this.GetType().GetMethods() вернёт описания методов как в базового, так и в производного классов. Описывать же пользовательские методы компоненты в отдельном интерфейсе нет необходимости, и логического смысла, в общем-то, тоже: класса вполне достаточно.
11. Ростислав Кузьмин (Kuzja_R) 298 24.06.12 22:18 Сейчас в теме
(10) saiten, да, вынес функционал для подключения к 1С в отдельный класс. Спасибо за предложение!
12. Виталий Ермоленко (vitaliy.ermolenko) 49 27.06.12 11:38 Сейчас в теме
(3) TigeRuS, ВК оч. удобны для связки например 1с со скайпом или тем же астериском, из самой 1с по-моему этого не реализовать
13. - - (Rebelx) 937 29.06.12 19:32 Сейчас в теме
14. albochkov (Aleksey.Bochkov) 19.07.12 00:13 Сейчас в теме
Наивный вопрос - а нет ли такого же примера на vb? :)
15. Ростислав Кузьмин (Kuzja_R) 298 19.07.12 00:21 Сейчас в теме
(14) albochkov, мне, пока я изучал вопрос, вроде не попадался.
16. Тарас (softest) 01.08.12 22:14 Сейчас в теме
Спасибо, мне помогла взял себе на заметку!
17. Леван Иремадзе (IRLes) 185 02.08.12 01:06 Сейчас в теме
Спасибо, нужно будет поработать над ней для своих целей :)
18. Алексей Выхрыстюк (avhrst) 513 31.08.12 23:21 Сейчас в теме
Плюс однозначно
У меня вызвало теплые воспоминания когда я давно давно писал на C# ВК для 1С v7 :)
19. Ростислав Кузьмин (Kuzja_R) 298 01.09.12 15:47 Сейчас в теме
(18) avhrst, да, технологии сто лет, а готового работающего примера с комментариями что и для чего найти не получилось. Теперь есть.
20. Виталий Захаров (vz1987) 15 06.09.12 17:31 Сейчас в теме
Спасибо большое за пример!
Но меня возникла проблема: ПодключитьВнешнююКомпоненту("AddIn.MyComponent") отрабатывает, а создание объекта Новый("AddIn.MyComponent") вылетает с исключением Тип не определен (AddIn.MyComponent)
21. Ростислав Кузьмин (Kuzja_R) 298 06.09.12 18:06 Сейчас в теме
(20) vz1987, регистрация компоненты с помощью regasm.exe проходит без ошибок? В реестре создаются ключи HKEY_CLASSES_ROOT\AddIn.AddIn и HKEY_CLASSES_ROOT\AddIn.MyComponent?

В Visual Studio есть возможность автоматически регистрировать компоненту при компиляции. Для этого в свойствах проекта на закладке "Построение" нужно поставить галку "Регистрировать для COM-взаимодействия" и на закладке "Приложение" -> "Сведения о сборке" -> "Сделать сборку видимой для COM".
22. Виталий Захаров (vz1987) 15 07.09.12 20:45 Сейчас в теме
(21) Kuzja_R, regasm выдает warning RA0000: Registring an unsigned assembly with /codebase can... и в конце пишет, что Types registred successfully.
Ключи создаются в реестре, но по другому пути: HKEY_USERS\S-1-5-21-2345514615-3774356936-3805296294-1001\Software\Classes\AddIn.AddIn. М.б. в этом собака зарыта?
23. Ростислав Кузьмин (Kuzja_R) 298 07.09.12 21:30 Сейчас в теме
(22) vz1987, могу предположить, что у вас нет прав на запись в ветку HKEY_CLASSES_ROOT, поэтому пишет в HKEY_USERS. Попробуйте запускать bat файл с правами администратора.
24. Виталий Захаров (vz1987) 15 12.09.12 15:17 Сейчас в теме
(23) Kuzja_R, удалось записать в HKEY_CLASSES_ROOT, но результат тот же...
25. Виталий Захаров (vz1987) 15 12.09.12 15:41 Сейчас в теме
(23) Kuzja_R, разобрался. Поплотней изучил код вашей компоненты и нашел:
public const string AddInName = "ExpoServer";
Соответственно, в 1С, обращение
Компонента = Новый("AddIn.ExpoServer");
решает все проблемы.
Еще раз спасибо большое за пример, теперь буду развивать его в своем направлении:)
26. Ростислав Кузьмин (Kuzja_R) 298 12.09.12 16:20 Сейчас в теме
(25) vz1987, извините. Да, моя ошибка. Поправил.
27. Аркадий Кучер (Abadonna) 3687 21.09.12 05:32 Сейчас в теме
(23)
могу предположить, что у вас нет прав на запись в ветку HKEY_CLASSES_ROOT

Вот только поэтому я и свалил на технологию Native ;)
Вечная проблема прав, особенно в правильных сетках, где юзверь вообще локальных административных прав не имеет.
28. Dragon Ago (DragonAgo) 8 21.09.12 08:35 Сейчас в теме
Спасибо, можно ввзять на заметку
29. ZOOBR (ZOOBR) 02.11.12 22:55 Сейчас в теме
(27) Легко сказать, да вот примеров типа "как свалить на Native API" я не нашёл(конечно имею ввиду C# и 1С 8.2), хотя только по данной технологии можно сделать кроссплатформенное решение. Относительно Вк, иногда проще написать библиотеку NET для работы с ней по технологии COM, так как зачастую функционал ВК не требует тесного взаимодействия с 1С, а лишь выполняет роль очередного "костыля", у меня например это шифрование и битовые операции. Поэтому рекомендую оценить необходимость написания ВК по технологии 1С, иногда это необходимо, а иногда и наоборот. Автору конечно+.
30. Аркадий Кучер (Abadonna) 3687 03.11.12 06:30 Сейчас в теме
(29) ZOOBR,
Легко сказать, да вот примеров типа "как свалить на Native API" я не нашё

Могу конечно ошибаться, но на ИТС примеры на CPP, он разве шибко от "до диез" отличается?

так как зачастую функционал ВК не требует тесного взаимодействия с 1С, а лишь выполняет роль очередного "костыля"

Тогда ее и писать не стоит, куча всяких костылей :( Я стараюсь делать для себя так, чтобы моя ВК все мои потребности удовлетворяла, не хватило - туда же дописал.
Вот, например: http://dev.1tsm.ru/project/148
31. ZOOBR (ZOOBR) 03.11.12 14:20 Сейчас в теме
(30) НЕ поверишь, отличается. И если бы всё с Native API было так гладко да просто, то инфостарт уже наводнился бы болванками типа "Hello World!" на C#. Конечно когда нибудь всё изменится, разберёмся я думаю, тут ничего невозможного конечно нет.
Под костылём я подразумевал не отдельную библиотеку, а лишь очередную функцию которой она будет пополняться(я у себя например подобную библиотеку юзаю не только для 1С). Всё это я говорил относительно того, что не всегда нужно придерживаться технологии ВК 1С, а можно например просто COM юзать, и пиши туда чего хошь. Да, теряется кроссплатформенность, но этого недостатка не лишена и стандартная ВК 1С(не Native API), которая по сути тот же COM.
32. Аркадий Кучер (Abadonna) 3687 03.11.12 14:28 Сейчас в теме
(31) ZOOBR,
"которая по сути тот же COM"
кто и что по сути com я в курсе, я их испокон веков пишу ;)
Я вот то, что проблема регистрации в реестре мало кого трогает - так это, видать, юзают в сетках, где кому попало такие права на запись раздаются
33. ZOOBR (ZOOBR) 03.11.12 23:59 Сейчас в теме
(32) То что ты в курсе я даже не сомневался, не обижайся. Расписывал скорее для остальных читателей комментов. Насчёт прав не совсем согласен. Например всё то что я упоминал работает у меня исключительно на сервере, где регистрацией COM кроме меня никто не ведает. Клиентские шняги стараюсь не делать, а если и приходится, то далеко не для всех(да и зарегистрить ком для пользователя домена проблемы не составляет). Еще раз подчёркиваю, что я никак не умоляю достоинств Native API, а как раз наоборот. Просто сам пишу сейчас на NET и когда в своё время захотел освоить данную технологию инфы толком не нашёл. Адаптировать с CPP конечно как то можно я думаю, но времени на это сейчас нет как видно и у многих других. Буду рад если кто-то поделится когда нибудь "рыбой". Но что-то я уже конечно флудом занялся. Больше не буду.)
34. Аркадий Кучер (Abadonna) 3687 04.11.12 04:30 Сейчас в теме
(33)
работает у меня исключительно на сервере, где регистрацией COM кроме меня никто не ведает.

Во! Ключевой момент! А у нас в холдинге, например, 1С-УППшник мечтает хотя бы о доле прав. А нех! :)
Если утрировать - без разрешения нашего кабинета даже в туалет сходить нельзя :)))
35. Игорь DC (dragonCat) 28.11.12 16:15 Сейчас в теме
Вопрос: будет ли вышеописанный пример работать на 7.7? Уже почти неделю пытаюсь чформировать ВК на C#, но 7.7 ее видеть категорически отказывается. Зато восьмерка - без проблем.
Попутно вопрос: комунить вообще когда либо удавалось создать ВК на C# для 1С:7.7?
36. Игорь DC (dragonCat) 28.11.12 16:16 Сейчас в теме
К сожалению, скачать приведенный в статье пример пока не могу, да и не уверен, что поможет, т.к. все скрины на восьмерке...
37. Ростислав Кузьмин (Kuzja_R) 298 28.11.12 17:05 Сейчас в теме
(35) dragonCat, с 7.7 не работает. Компоненту, сделанную по этому шаблону, 1С видит и подгружает, но при вызове функций на стороне компоненты возникают ошибки приведения типов. Если получится решить вопрос, дайте знать, пожалуйста.
38. Игорь DC (dragonCat) 28.11.12 17:44 Сейчас в теме
(37) Удалось таки скачать файл, построил по нему dll с небольшими дополнениями (систем формз добавил, что бы мессаджбокс вывести). Все заработало (7.7, 27й движок).

Код в 1С:
	ИмяВК = "AddIn.MyComponent";
	Сообщить("Открываем "+ИмяВК);
	Сообщить("Результат = " + ПодключитьВнешнююКомпоненту(ИмяВК));
	
	ВК = СоздатьОбъект(ИмяВК);
	Сообщить(Строка(ВК));
	
	Результат = ВК.Go(84, 2);
	Сообщить("Компонента посчитала! Ответ = "+Результат);
	
...Показать Скрыть


Результат выводится...
С типами проблема вполне возможна, но она решается гораздо проще, чем заставить 1С увидеть компоненту :)
39. Игорь Steelvan (Steelvan) 30 31.03.13 11:43 Сейчас в теме
Поднять форум на 1С с этой компонентой http://infostart.ru/public/149676/ получится?

Например, объединить http://infostart.ru/public/78388/ и вашу разработку.

Думаю, это было бы интересно службе поддержки франчайзи или фрилансеру.

У нас сейчас используется форум на phpBB, приходится дублировать задачи в 1С.

Позже, может прикрутим автообмен.

Пишу сюда, т.к. там отключены комментарии.
40. Ростислав Кузьмин (Kuzja_R) 298 31.03.13 13:07 Сейчас в теме
(39) Steelvan, получится. Зачатки такого форума есть в решении ExpoServer: Домоуправление. Если есть конкретные вопросы-предложения - в личку.
41. Игор Мудрицкий (Zas1402) 11.06.13 11:25 Сейчас в теме
Вот только поэтому я и свалил на технологию Native ;)

Если по Native API компоненту не нужно регистрировать при любом клиенте?
42. arnold kurkov (fox2010) 17.07.13 15:46 Сейчас в теме
При вызове метода asyncEvent.ExternalEvent не из главного потока (например вызываем в событии DataReceived у SerialPort) происходит слкдующая ошибка:
Невозможно привести COM-объект типа "System.__ComObject" к интерфейсному типу "IAsyncEvent". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-компонента для интерфейса с IID "{AB634004-F13D-11D0-A459-004095E1DAEA}" возвратил следующую ошибку: Интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).

Буду рад любой помощи.
43. Shrek Shrek (Shrek2015) 18.07.13 10:34 Сейчас в теме
44. Антон Лаврухин (Mozar) 7 31.07.13 15:24 Сейчас в теме
Отличный шаблон, давно искал такой.
45. Дуб (Дуб) 70 25.09.13 13:41 Сейчас в теме
Штука интересная. Но ни разу не понял - как инициировать ВнешнееСобытие
46. Ростислав Кузьмин (Kuzja_R) 298 25.09.13 14:35 Сейчас в теме
(45) Дуб, для внешнего события в 1С нужно вызывать asyncEvent.ExternalEvent(...)
47. Alever (Alever) 4 03.02.14 09:38 Сейчас в теме
Спасибо большое за довольно простое и четкое объяснение по работе с ДЛЛ-ками. От себя же могу только добавить - нашел интересное видео как сделать DLL на C# в Visual Studio. - http://www.youtube.com/watch?v=hinh5pfnbII
48. Игорь Нешик (ineshyk) 14.10.14 17:38 Сейчас в теме
Странно, но на сервере не работает ПодключитьВнешнююКомпоненту. В чем может быть проблема?
49. Сергей Биржевой (bsl) 22.11.14 16:15 Сейчас в теме
(42) fox2010, Здравствуйте! Также нарвался на данную проблему, но решилось просто: регистрировать библиотеку надо с ключом /tlb, а не /codebase. Под 8.3 работает прекрасно, спасибо автору!
sigmov; bss; +2 Ответить
50. Виталий Захаров (vz1987) 15 04.02.15 19:10 Сейчас в теме
Kuzja_R, в случае, если на одной машине планируется использовать несколько внешних компонент, подобно этой, как избежать конфликта имен классов? Ведь в этом шаблоне помимо AddIn.<ИмяКомпоненты> регистрируется еще AddIn.AddIn.
51. Dave Nikolsky (dave2000) 86 12.02.15 15:44 Сейчас в теме
Такой вопрос. Если мы обращаемся в 1С к свойствам и методам, описанным в компоненте, то все окей. А если мы вызываем произвольные методы или свойства, тут все как-то странно. Например:

Компонента.Prop = 3; //Правильное свойство
Компонента.Prop1 = 3; //Такого свойства нет, но при присваивании даже не ругается
Компонента.Petyua = 3; //Такого свойства нет, но при присваивании даже не ругается
Компонента.Popa = 3; //Такого свойства нет, но при присваивании даже не ругается

Компонента.Go(10, 5); //Правильная функция
Компонента.Goga(10, 5); //Такой функции нет, но выдает "Недостаточно фактических параметров"
Компонента.Goga_123(); //Такой функции нет, но выдает "Недостаточно фактических параметров"
Компонента.Gogogogogo(); //Такой функции нет, но выдает "Недостаточно фактических параметров"

Почему не ругается на неправильные методы и свойства? Чем это чревато?

Как научить компоненту распознавать русские названия методов и свойств? Помнится, когда-то давно писал ВК на Делфи, там это было реализовано.
52. c+ + (ture) 229 25.02.15 17:45 Сейчас в теме
Ссылка на объект не указывает на экземпляр объекта.
1C 8.2.17
тута ==> asyncEvent.ExternalEvent("AddIn", "error", e.ToString());

после этого ==> булРез=ПодключитьВнешнююКомпоненту("AddIn.MyComponent");
oCom = Новый COMОбъект("AddIn.MyComponent");
oCom.Go(10,0);
53. Dima Dima (bayce) 24 02.03.15 21:30 Сейчас в теме
54. Кирилл Бондаренко (karapuzzzz) 58 23.03.15 12:11 Сейчас в теме
Спасибо. Очень выручил шаблон, когда надо было срочно написать драйвер для работы с весами через COM. Единственное, что я не понял, так это регистрация компоненты. Через regasm все получилось нормально. А можно ли это сделать через стандартный regsvr32? При попытке выдает что точка входа в процедуру dllregisterserver не найдена. Информации я не нашел.
55. Ийон Тихий (cool.vlad4) 41 24.03.15 10:49 Сейчас в теме
(54) karapuzzzz, нет, нельзя. дотнетовские сборки регистрируются только через regasm.
56. Владимир Панимаскин (PoniMan) 21.05.15 02:07 Сейчас в теме
Глупый вопрос - когда у какого-либо из интерфейсов скачанного проекта меняю GUID или банально переписываю 1 в 1 код в свой проект, где устанавливаю свои GUID'ы для соответствующих интерфейсов, при подключении в 1С ругается "Тип не определен (AddIn.MyComponent)". Конечно, перед этим сборку пересобираю и перерегистрирую в винде. Не понимаю, почему так может происходить. Кто-нибудь может подсказать?
57. Амир Хасанов (aworld) 26.05.15 22:18 Сейчас в теме
(56) PoniMan, судя по этой статье у ряда классов должны быть предопределенные guidы
58. Владимир Панимаскин (PoniMan) 09.06.15 12:48 Сейчас в теме
(57) aworld, спасибо огромное, все перерыл. Все оказалось очевидным. Я наоборот думал, что все GUID должны быть уникальными.
59. Николай Крылов (Nikola23) 360 09.08.15 22:32 Сейчас в теме
Да, я очень плохо разбираюсь в шарпе, но подскажите плз:
Я создал на шарпе тип(класс), аналогичный дереву значений 1с с 2мя колонками.
Возвращаю такое дерево в 1с, определяется как Com_объект. Причина такого поведения понятна.
Непонятно, как из компоненты инициализировать тип дерево значений и на стороне компоненты заполнить его, а затем возвратить готовый результат.

А может совсем по другому необходимо действовать?
60. Ростислав Кузьмин (Kuzja_R) 298 09.08.15 23:41 Сейчас в теме
(59) Nikola23, проще всего создать нужное дерево на стороне 1С, потом вызывать функции компоненты, возвращающие простые типы и этими результатами заполнять дерево значений. Если нужно от компоненты получать сложные составные данные, тогда используйте разделители в строках или xml-разметку. На стороне 1С разбираете ответ и заполняете дерево.
61. trade70 10.08.15 04:15 Сейчас в теме
(3) TigeRuS, Внешние компоненты в 1С давно используют для написания обработчиков драйверов ТО. Так как в "сыром" виде эти драйвера использовать в 1С нереально)
62. IMalyshev (allegrosoft) 37 27.08.15 22:08 Сейчас в теме
Почему в win 8 не работает, хотя зарегистрировалась без проблем? В ХР все норм.
63. Валерий Березуцких (spec8s) 232 02.09.15 08:20 Сейчас в теме
(62) allegrosoft, win 10 тоже не работает, сам сом загеристрировался
64. Mishgan (BigTaur) 49 22.01.16 14:56 Сейчас в теме
Не пойму почему событие для 1Ски срабатывает, если возникает в методе вызванном из 1Ски и не срабатывает, если возникает внутри. Т.е.
public void SendEvent()
{
asyncEvent.ExternalEvent("AddIn", "SendEvent", "Внешнее событие");
}
Событие возникает при вызове метода из 1Ски Компонента.SendEvent() и появляется во ВнешнееСобытие().
И если я например напишу:
public void SendEvent()
{
SendEvInternal();
}

public void SendEvent()
{
asyncEvent.ExternalEvent("AddIn", "SendEvent", "Внешнее событие");
}
И вызову Компонента.SendEvent() - то ничего не происходит, 1Ска события не видит.
Помогите пожалуйста, уже всю голову сломал.
65. Mishgan (BigTaur) 49 22.01.16 15:17 Сейчас в теме
Сам себе отвечу ибо идея пришла сразу после мессаджа, нужно методы запихать в один поток или как оно там. Добавление директивы [STAThread] перед методами решает проблему.
66. Сергей Пономарёв (izidakg) 127 04.05.16 23:28 Сейчас в теме
то что проверена на 1С:Предприятие 8.3.7.2027 прекрасно, НО не стоит народ путать
скачивал этот пример еще в 2014, скачал и сейчас - нет ни одного файла чтоб отличался хотя бы временем
только цена за скачивание с 1 до 5 возросла
67. Ростислав Кузьмин (Kuzja_R) 298 04.05.16 23:36 Сейчас в теме
(66) izidakg, где-то обозначено, что есть изменения в публикации? Вроде нет. Написано о том, что шаблон был успешно проверен на новых платформах. Исходный код не менялся, потому что и старый отлично работает. Как говорится, новые песни нужны тому, у кого старые плохие. А цена - да, теперь другая. Инфляция-с.
68. c+ + (ture) 229 05.05.16 16:47 Сейчас в теме
(67) Kuzja_R, что так дешево? разве это не может стоить дороже с Вашей точки зрения?
69. Ростислав Кузьмин (Kuzja_R) 298 05.05.16 17:52 Сейчас в теме
(68) ture, не думаю, что пустая заготовка может стоить дороже. У тех, кто пишет ВК и зарабатывает на этом, полно своего кода. А те, кто только начинает разбираться, вряд ли готовы платить серьезные деньги только за "посмотреть".
70. c+ + (ture) 229 06.05.16 10:05 Сейчас в теме
(69) Kuzja_R, пустая заготовка является началом для любой новой компоненты. Это как чистый лист, чтоб сразу начать работу по выбранному предмету, не теряя время на детали красивого взаимодействия с платформой. По опыту написания на с++ скажу прямо - не смыслят гуру в своем коде, глаз уже замалеван и здесь очень важно делиться опытом и показывать альтернативу, чтоб оставалось в коде только полезное и правильное, а не куча фантомов. По идее первичный образец должна давать 1С, но её образец не рассчитывался на конечный продукт. Этот последний факт открывает целое поле для работы и самовыражения.
71. Николай (the_master) 22.08.16 06:37 Сейчас в теме
Пустая и не рабочая заготовка, но жлобство - "наше все"!!!!
72. Ростислав Кузьмин (Kuzja_R) 298 22.08.16 17:09 Сейчас в теме
(71) the_master, камрад, у тебя 0 рейтинга, 0 публикаций (платных, бесплатных) за 10 лет на сайте. При этом ты позволяешь себе кого-то в чем-то обвинять? Не пиши сюда больше, пожалуйста.
73. Алексинский Александр (user650881_aleksander.ep-rza) 13.12.16 13:22 Сейчас в теме
Вопрос по компоненте
Почему не может инициализироваться на сервере ?
Функция ИнициализацияСервер() всегда возвращает ложь.
скрин во вложении.
Прикрепленные файлы:
74. Supiyan Dzhabrailov (supiyan) 25.12.16 16:22 Сейчас в теме
а по натив апи C# есть что?
Оставьте свое сообщение