Современные гаджеты. Здоровье и красота
Поиск по сайту

Установка внешней компоненты. Решение проблем с регистрацией внешних компонент в терминале 1с установка внешней компоненты не выполнена

Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 1С, подключаясь к серверу через терминал.

Это связано с некоторыми особенностями работы функции глобального контекста ПодключитьВнешнююКомпоненту().

При этом пользователи видят, например, картинку представленную в анонсе статьи.

В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.

С чем это связано? Это связано с тем, что, когда пользователи работают через сервер терминалов, они имеют меньше прав, чем при работе на локальном компьютере.

В этом легко убедиться, если зайти на сервер терминалов под учетной записью с административными правами.

Причина такой разницы заключается в том, что 1С не может зарегистрировать внешнюю компоненту в реестре, когда пользователь работает в терминале под обычными правами, т.к. у обычного пользователя нет прав на запись в ветку системного реестра HKEY_CLASSES_ROOT .

В публикациях на тему подключения внешних компонент в терминале предлагаются самые разные методы решения этой проблемы.

Например, такие:

1. Запустить первый раз 1С под административными правами.

Этот вариант далеко не всегда срабатывает. Ниже объясню, почему.

2. Дать обычным пользователям терминала права на запись в ветку системного реестра HKEY_CLASSES_ROOT .

Недостаточно "продвинутым" пользователям лучше этого не делать, иначе могут быть проблемы.

3. С помощью различных "примочек" регистрировать ВК от имени пользователя с полными правами.

Тоже не есть хорошо.

Так как же все таки лучше выйти из этой ситуации?

Я предлагаю свой вариант решения этой проблемы. По моему мнению - простой и красивый, не предлагавшийся на лансере ранее.

Исследуя эту проблему, я задался вопросом - а зачем 1С вообще пытается зарегистрировать ВК по новому пути? Ведь она уже зарегистрирована в системе.

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

ПодключитьВнешнююКомпоненту("Справочник.ПодключаемоеОборудование.Макет.ДрайверАТОЛСканерШтрихкода", "АТОЛСканер");

Как видим, ВК драйвера подключается из макета "ДрайверАТОЛСканерШтрихкода" справочника "ПодключаемоеОборудование".

Что же при этом происходит?

1С сохраняет компоненту во временной папке пользователя, например "C:\Documents and Settings\User\Local Settings\Temp\1032\v8_4_12.tmp"

и пытается зарегистрировать ее в ветке реестра HKEY_CLASSES_ROOT именно по этому пути.

На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.

Теперь о том, как выйти из этой ситуации.

Метод глобального контекста ПодключитьВнешнююКомпоненту() имеет несколько вариантов синтаксиса. Вот этим мы и воспользуемся.

Итак, по шагам:

1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.

2. Используем один из двух дополнительных вариантов синтаксиса метода ПодключитьВнешнююКомпоненту():

Вариант 1:

ПодключитьВнешнююКомпоненту("C:\WINDOWS\SysWOW64\Scaner1C.dll", "АТОЛСканер", ТипВнешнейКомпоненты.COM);

ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");

Вариант 2:

ProgID = "AddIn.Scaner45";

ПодключитьВнешнююКомпоненту(ProgID);

ОбъектДрайвера = Новый (ProgID);

На мой взгляд, вариант № 2 предпочтительнее.

При этом 1С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.

Ну вот собственно и все. Успехов в работе!

/
Разработка пользовательских интерфейсов

Установка внешних компонент и расширений платформы

1.1. Установка внешних компонент и расширений платформы должна быть интерактивной. Пользователь должен самостоятельно принять решение об установке. В диалоге установки должно быть указано, для чего нужна компонента (расширение) и что не будет работать, если ее не устанавливать.

Например, неправильно использовать конструкции вида

Если Не ПодключитьВнешнююКомпоненту(…) Тогда УстановитьВнешнююКомпоненту(…)

Правильно задавать пользователю вопрос в явном виде:

Для продолжения работы требуется установить внешнюю компоненту. Внешняя компонента позволит работать с отчетностью. Для установки компоненты нажмите "Установить". После завершения установки нажмите "Продолжить".

  • Пользователь воспользовался командой «Отправить отчет»
  • Для этого конфигурации необходимо, чтобы была установлена какая-либо внешняя компонента.
  • Конфигурация проверяет, установлена ли компонента.
  • Если компонента не установлена, отображает пользователю информацию о том, что для отправки отчета нужно установить компоненту и кнопку , вызывающую установку компоненты.
  • Пользователь нажимает на кнопку, выполняется установка.
  • После установки пользователь нажимает на кнопку «Продолжить отправку отчета»
  • Программа продолжает отправлять отчет.

Такой сценарий позволит обеспечить, чтобы компоненты (расширения) устанавливались без проблем на всех поддерживаемых браузерах, в том числе, в браузере FireFox .

2. В прикладном решении должны быть предоставлены инструменты для установки пользователем внешних компонент и расширений в любой момент работы. Таким образом, их можно установить не только в ходе решения какой-то задачи, но и в виде отдельного действия (из некоторого административного режима).

При использовании в конфигурации Библиотеки стандартных подсистем для установки расширения для работы с файлами предназначена общая команда УстановитьРасширениеРаботыСФайлами , которую рекомендуется размещать в форме персональных настроек пользователя (см. общую форму _ДемоМоиНастройки в демонстрационной конфигурации). В этой же форме рекомендуется размещать команды по установке внешних компонент, которые могут потребоваться пользователю при его работе.


Это связано с некоторыми особенностями работы функции глобального контекста ПодключитьВнешнююКомпоненту() .

Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 1С, подключаясь к серверу через терминал.

При этом пользователи видят, например, такую картинку:

В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.

С чем это связано? Это связано с тем, что, когда пользователи работают через сервер терминалов, они имеют меньше прав, чем при работе на локальном компьютере.

В этом легко убедиться, если зайти на сервер терминалов под учетной записью с административными правами.

Причина такой разницы заключается в том, что 1С не может зарегистрировать внешнюю компоненту в реестре, когда пользователь работает в терминале под обычными правами, т.к. у обычного пользователя нет прав на запись в ветку системного реестра HKEY_CLASSES_ROOT .

В публикациях на тему подключения внешних компонент в терминале предлагаются самые разные методы решения этой проблемы.

Например, такие:

1. Запустить первый раз 1С под административными правами.

Этот вариант далеко не всегда срабатывает. Ниже объясню, почему.

2. Дать обычным пользователям терминала права на запись в ветку системного реестра HKEY_CLASSES_ROOT .

Недостаточно "продвинутым" пользователям лучше этого не делать, иначе могут быть проблемы.

3. С помощью различных "примочек" регистрировать ВК от имени пользователя с полными правами.

Тоже не есть хорошо.

Так как же все таки лучше выйти из этой ситуации?

Я предлагаю свой вариант решения этой проблемы. По моему мнению - простой и красивый.

Исследуя эту проблему, я задался вопросом - а зачем 1С вообще пытается зарегистрировать ВК по новому пути? Ведь она уже зарегистрирована в системе.

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

ПодключитьВнешнююКомпоненту("Справочник.ПодключаемоеОборудование.Макет.ДрайверАТОЛСканерШтрихкода", "АТОЛСканер");

Как видим, ВК драйвера подключается из макета "ДрайверАТОЛСканерШтрихкода" справочника "ПодключаемоеОборудование".

Что же при этом происходит?

1С сохраняет компоненту во временной папке пользователя, например "C:\Documents and Settings\User\Local Settings\Temp\1032\v8_4_12.tmp"

и пытается зарегистрировать ее в ветке реестра HKEY_CLASSES_ROOT именно по этому пути.

На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.

Теперь о том, как выйти из этой ситуации.

Метод глобального контекста ПодключитьВнешнююКомпоненту() имеет несколько вариантов синтаксиса. Вот этим мы и воспользуемся.

Итак, по шагам:

1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.

2. Используем один из двух дополнительных вариантов синтаксиса метода ПодключитьВнешнююКомпоненту():

Вариант 1:

ПодключитьВнешнююКомпоненту("C:\WINDOWS\SysWOW64\Scaner1C.dll", "АТОЛСканер", ТипВнешнейКомпоненты.COM);

ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");

Вариант 2:

ProgID = "AddIn.Scaner45";

ПодключитьВнешнююКомпоненту(ProgID);

ОбъектДрайвера = Новый (ProgID);

На мой взгляд, вариант № 2 предпочтительнее.

При этом 1С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.

Ну вот собственно и все. Успехов в работе!

[необходимо зарегистрироваться для просмотра ссылки]

Вопрос: Установка внешней компоненты


Подскажите плз как установить внешнюю компоненту. При исполнении следующего кода выдается ошибка. В макете находить NameDecl.dll

Попытка УстановитьВнешнююКомпоненту("ОбщийМакет.Макет"); Исключение КонецПопытки ;
Ошибка: Установка внешней компоненты не выполнена!

Ответ: ()
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет", "NameDecl", ТипВнешнейКомпоненты.Native) выдает ЛОЖЬ ,
Новый("AddIn.NameDecl.CNameDecl", Неопределено) = {()}: Тип не определен (AddIn.NameDecl.NameDecl)

Вопрос: Подключение внешней компоненты в 1с 8.3.6 и Win8


К самописной конфигурации надо подключить ВнешКомпоненту vk_rs232.dll. Вроде зарегистрировала через regsvr32.exe. "Вроде" потому, что получила сообщение что "компонента зарегистрирована, но чего-то там с брандмауэром". Понадеявшись на первую половину сообщения, пишу код в 1с
ПослеПодключения = Новый ОписаниеОповещения("ПослеПодключенияВК",ЭтаФорма); НачатьУстановкуВнешнейКомпоненты(,"C:\Controller\vk_rs232.dll"); НачатьПодключениеВнешнейКомпоненты(ПослеПодключения,"C:\Controller\vk_rs232.dll","ДЛЛ_Весы");
и получаю ошибку, что
"Установка внешней компоненты не выполнена! Возможно отсутствует компонента для используемого клиентского приложения!".

И теперь я не пойму:
1. Может все же компонента не зарегистрировалась в реестре - как ее там проверить?
2. Может ее "версия" не работает под Win8, хотя она у меня 32-бит.
3. Может сама 1с слишком новая, т.е. соответственно не может работать с этой dll-кой?
4. Ну и банальное - я пишу что-то не то.

Ответ: И все это привело меня в следующей проблеме. ВнешКомп Установлена, теперь ее надо Подключить. И тут оба варианта
ПодключитьВнешнююКомпоненту("C:\Controller\vk_rs232.dll","Весы")
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет","Весы")

выдают ЛОЖЬ!!!

Вопрос: Внешняя компонента.dll


Всем Доброго дня.
Такой вопрос.
Компонента dll , которая прекрасно работает в 1С 7.7
в 1с 8.1 не хочет вообще загрузиться...
Пробовал и вставить ее в C:\Program Files\1cv81\bin\cache1c.dll
Пробовал регистрировать средствами regsvr32 "C:\Program Files\1cv81\bin\cache1c.dll"
Регистрируется без проблем.
Когда хочу к ней обратится, получаю сообщение об ошибке:

Ошибка загрузки внешней компоненты! cache1c.dll
Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка ЗагрузитьВнешнююКомпоненту("C:\Program Files\1cv81\bin\cache1c.dll" ); Исключение Сообщить("Ошибка загрузки внешней компоненты!" + " cache1c.dll" ); КонецПопытки; Попытка // Получить объект компоненты. // m = Новый ("cache1c.GTMcmd" ); m = Новый COMОбъект("cache1c.GTMcmd" ); Исключение Сообщить(); КонецПопытки; КонецПроцедуры

Ответ: Банально до невозможности...
Нужно выдержать паузы между вызовами (миллисекунды)...
Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка // Получить объект компоненты. m = Новый COMОбъект("cache1c.GTMcmd" ); Исключение Сообщить("Не удалось создать объект внешней компоненты" ); КонецПопытки; m.RemoteHost = "192.168.1.101" ; m.RemotePort = 6330; m.Подключить(); m.Пауза(100); ...... итд
Для 1с 7.7 - это не нужно, получается, что шустрее обращение.

Вопрос: Внешняя компонента Native Api на C++ под Linux (Ubuntu x64) на 1С 8.3


Пишу ВК, не могу подключить к 1с на ubuntu. Даже экзапл от 1с не подключается. Поэтому вопрос по нему:

1) Пытаюсь подключи ВК из примера VNCOMPS, приведённым в статье

(ссылку можно найти в самом конце: «Копирование»).
Внутри в проекте NativeApi есть makefile. С его помощью я собираю.so библиотеку на Ununtu.
Но при "ПодключитьВнешнююКомпоненту" 1с вылетает.
Аналогично, если собираю при помощи "build.sh" (в корне проекта).

В самом makefile меняю флаг с m32 на m64, т.к. 1с и сама система x64. (с параметром m32 не подцепляется всё равно)
Вот пример вызова ВК из 1С 8.3:
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту ("/home/alexeyubuntux64-20 gb/Документы/VNCOMP83/example/NativeAPI/AddInNative.so", "AddInNative", ТипВнешнейКомпоненты.Native); Есть статейка как раз на эту тему.
Но, насколько я вижу, все эти моменты уж учтены исправили в VNCOMPS примере.

Но по сути дело в параметрах компиляции. Мб 32битная внешняя компонента подцепляется к 32-x битной 1с нормально, но я развернул на Ubuntu x64 1c enterprise83 8.3.5-1486 amd64. И хочу к ней подцепить ВК.

Есть у кого мысли, как решить этот вопрос?)
VNCOMPS-пример должен работать, но походу надо поправить параметры сборки, или сама платформа, на которой я тестирую - некорректна.

Ответ: Интересно, а на яве можно внешнюю компоненту написать?

Вопрос: Работа внешней компоненты с сервером 1С...


Добрый день,

Имеется внешняя компонента, написанная на С++, задача которой получение информации из внешней базы данных и возврат результата запроса в виде Таблицы значений в 1С.
Для формирования таблицы значений на текуший момент используется интерфейс IDispatch* pBackConnection, получаемый в качестве параметра в функции Init(). Далее я просто, используя функции 1С формирую таблицу значений, заполняю ее и возвращаю ее во второй параметр в CallAsFunc(...).
Проблемы начались с переходом на тонких клиентов 1С. На стороне сервера внешняя компонента толком не запускается. Можно запустить на стороне клиента, но это все выглядит как костыли и выпадает из общей логики "клиент-сервер" в 1С. Например клиент не понимает, что такое таблица значений, проблемы с "глобальными" переменными, сеансами и т.п.
NativeAPI еще более урезан в этом плане.
Танцы с бубном привели к тому, что я смог запустить внешнюю компоненту под сервером 1С, НО работа происходит до того момента, пока не производится попытка вызвать Invoke у pBackConnection. 64-битная версия сервера 8.2 что-то пытается делать, пока не отваливается по таймауту, 32-битная (ВК естественно тоже 32 битная) просто сразу отваливается.
Предполагаю, что сервер 1С не обслуживает этот режим работы.
Соответственно возникают вопросы, это временно или логика 1С сводится к отмене этой схемы работы? Если создать внутренние структуры 1С (таблицу значений) таким способом нельзя, есть ли в принципе описание, что из себя представляет таблица значений на системном уровне, чтобы попытаться создать ее на С++ , заполнить, а затем просто подсунуть 1С в качестве возвратного параметра? Хотелось бы хотя бы получить направление, в какую сторону копать.

Спасибо.

Ответ:

Вы пишите одно, и имеете в виду другое.
В среде 1С, объявление переменных, которые будут видны в разных сеансах не невозможна сейчас, и не было такой возможности ранее. Другой сеанс, это физически другой процесс.
Сеанс, это сеанс подключения к базе данных, т.е. сеанс работы пользователя. Или вы что-то своё вкладываете а это понятие?

В рамках одного сеанса можно было, и можно сейчас, объявить переменные в модуле сеанса, которые будут жить и будут видны в рамках сеанса из разных мест... вообще-то, их 4-ре штуки.
- Модуль сеанса;
- Модуль обычного приложения;
- Модуль управляемого приложения;
- Модуль внешнего соединения.

Ну и естественно, нужно помнить про контекст. Серверный контекст напрямую не доступен на стороне клиента и наоборот.

Вообще то, архитектурой 1С предусмотрено, что обмен данными будет идти:
- по средствам параметров/возвратов процедур/функций;
- по средствам так называемых параметров сеансов (не могут быть объектами, ну собственно видно в палитре).

Таблица на форме... а она связана с какой-либо таблицей объекта (обработки, например) ? или нет. Если да, то она доступна и на сервере (&НаСервере) там и редактируйте....

И таки да, ТаблицаЗначений не доступна в УФ на стороне клиента. Ну уж так решила 1С.

Да ладно! Вот с Excel работает, с FSO работает и кучей всего остального, а тут тут не работает. Отлавливайте ошибку и анализируйте....

Попытка
...
ваши действия
...
Исключение
стр = ОписаниеОшибки();
КонецПопытки;

При современных аппаратных возможностях, это вообще не аргумент.

Сугубо Ваше лично мнение. Ничего общего с реальностью не имеет. Ни в каком виде. Повторю ещё раз, 1С прекрасно работает с COM. Как с in-proc, так и с out-proc.

Приведите, код, которым вы загружаете и обращаетесь в ВК.

Кстати, ВК... в Вашем случае, это COM или Native API ?
Если COM, то вы регистрируете её как... через regsvr32... как тогда "разруливаете" вопрос разрядности?

Вопрос: 1С8 и внешняя компонента с типом Native


Добрый день.
Имеется конфигурация БП 3.0.50.12 и желание внедрить в нее взвешивание от компании Весы-Софт с помощью UniServerAuto.
Разработчики скомпилировали компоненту на Native для Windows 32 и 64, и с файлом maifest сложили в архив. Так же есть пример для 1С, как можно считать вес. В нём с помощью макета с двоичными данными указан, я так понимаю, архив этот. В примере всё неплохо: устанавливается компонента, подключается, потом устанавливается связь и считывается вес.
Но как только начинаешь себе в 1С переносить - вес не считывается. Вроде всё просто написано, но где грабли не пойму.
У кого будет немного времени - помогите, гляньте одним глазком, может решение на поверхности, а я хожу где-т не там и делаю не то. Раньше мне не приходилось с технологией Native работать...

А во вложении мой текст обработки

Ответ:

Ну что, есть новости у меня...
Начал просто по шажкам смотреть в какой момент начнет сбоить. Для этого создал пустую базу и обработку с командой. По аналогии с примером поставщика перенес макет в новую конфу - работает со второго раза. Т.е. с первого раза нет, а со второго да. Это натолкнуло на мысль, что всё-таки надо будет в своей обработке развести подключение компоненты и объекта по разным процедурам.
Далее перенес это в свою базу с подключением макета - работает. Фух, уже хорошо.... Но хотелось бы без внесения изменений в конфигурацию, значит идём дальше

Пробую макет добавить в обработку. Её размер сразу увеличивается с 10кб до 3мб и замечается существенное замедление работы - не подходит. Начинаю копать в сторону подключения компоненты через dll. Т.е. по сути к тому же с чего начал. Но тут есть одно "НО": поиском по имени dll по папке пользователя заметил, что эта dll лежит там, где (я так понял) складываются зарегистрированные в 1С dll-ки:
C:\Users\USER\AppData\Roaming\1C\1cv8\ExtCompT
соответственно нет нужды использовать полный путь к dll, можно просто прописать ее имя:
ПодключитьВнешнююКомпоненту("Add1CUniServerAuto32.dll", "UniServerAuto", ТипВнешнейКомпоненты.Native);

Пробую... ругается на регистрацию, но результат взвешивания возвращает. Получается, что уже dll зарегистрирована и значит ее нужно просто подключать. Убираю и всё работает.
Подвожу итог:
1. В обработку взвешивания в процедуру ПриОткрытии внёсподключение внешней компоненты и подключение к объекту.
2. Путь к dll Не писал, указал просто ее имя.

Теперь сижу и думаю, а когда dll установилась в 1С? В момент установки ПО? Вряд ли... В момент запуска конфигурации разработчика этой dll, где она устанавливается при открытии формы? Не знаю, но мне кажется близко... Вы как думаете?
И второе, На новом месте, когда появится нужда установки такого же терминала, что надо сделать чтобы всё заработало? Установить полностью ПО,запустить конфу поставщика чтобы проверить работу и потом (в теории) моя обработка должна заработать? Че-то как-то сложновато... Или же после установки ПО в моей обработке сделать УстановитьВнешнююКомпоненту один раз?

Ваши мысли на этот счет хотелось бы услышать...

Вопрос: Вынесение части кода во внешнюю компоненту


Во многих статьях по защите обработок описано, что часть кода выносят во внешнюю компоненту, но непонятно как именно действует программист в таких случаях.
Кто занимался этим или сталкивался с подобными вынесениями обясните на простом примере сам принцип. Вроде с подключением внешних компонент все понятно.

// Пример заполнения таблицы значений ТЗ.Очистить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка КАК Номенклатура |ИЗ | Справочник.Номенклатура КАК Номенклатура"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Стр = ТЗ.Добавить(); ЗаполнитьЗначенияСвойств(Стр, Выборка); КонецЦикла;
Не могли бы вы на этом примере объяснить, какую часть кода обычно выносят. Логично было бы вынести часть с запросом, но тогда как из внешней компоненты мы обратимся к БД из внешней компоненты в обход платформы? Текст выносить бессмысленно. Или выносить само формирование табличной части. Поделитесь опытом кто сталкивался с этим.

Ответ: А что слово «Несовместимо» всегда означает слово «Плохо»? Да мне кажется, что назови я свой стиль «1С:Самое плохое программирование на этом скриптовом движке, которое существует в природе (в переводе на литературный язык)!» и то наверняка найдутся желающие заценить этого зверя. А так похоже на классику: «Я Пастернака не читал, но я полностью с ним не согласен!»:)

Вопрос: Внешняя компонента на Delphi Не могу подключить r 1C


Скомпилировал проект-пример Внешней компоненты

Получил DLL.
Зарегистрировал ее в системе (Regsvr32 testvk.dll)
Теперь необходимо использовать ее в 1С. Для этого написал внешнюю обработку и в ней:

&НаКлиенте
Процедура Команда1(Команда)
путь="C:\1\Шаблон ВК\TestVK\DLL\testvk.dll";
а=ПодключитьВнешнююКомпоненту(ПУТЬ);
ЗагрузитьВнешнююКомпоненту(Путь);
ОБ = Новый ("Addln.TestVK");Вопрос: Внешние компоненты для 1с 7.7


Здравствуйте. Пишу компоненту для 1с7.7 на c#,подключаю в 1с все нормально, но когда хочу вызвать методы или свойства для 1с, пишет"поле агрегатного объекта не обнаружено",через отладчик выяснил что методы интерфейса ILanguageExtender не вызываются,после реализации интерфейса IInitDone опять вызывается конструктор классы компоненты,по теории написания внешний компоненты 1С,вк должна реализовывать, по крайней мере, два интерфейса – IInitDone и ILanguageExtender, я их реализую, но не могу понять в чем проблема.Может у кого-то есть идеи???

Ответ: Тема закрыта, вопрос решен.

Вопрос: v7: Внешняя компонента для 1С7 на C#


Где можно глянуть простенький пример для создания компоненты для 1С7 на С# начиная с Visual studio 2010??

Ответ:

Смотри
Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF