Вирішення проблем із реєстрацією зовнішніх компонентів у терміналі. Встановлення зовнішніх компонентів та розширень платформи Підключення зовнішньої компоненти 1С 8.3

Найчастіше у програмістів виникають проблеми з підключенням зовнішніх компонентів (наприклад, драйверів торгового обладнання), коли користувачі працюють з 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-х бітної 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



Подібні публікації