Внешняя компонента для определения IP-адреса терминального клиента (RDP)

IPClientRDP.dll – компонента, не требующая прав администратора и регистрации в системе, так как построена по технологии Native. Предназначена для RDP-клиента Windows в локальной и корпоративных VPN сетях.

Пример работы:

ДвоичныеДанные = ПолучитьМакет("IpRdpClient");
АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ПодключениеВыполнено=ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты,"CAddInNative",ТипВнешнейКомпоненты.Native);
Если ПодключениеВыполнено Тогда
NativeОбъект  = Новый("AddIn.CAddInNative.IPRdpClient");
IPадресКлиента = NativeОбъект.ПоказатьIpRdpКлиента();
Возврат IPадресКлиента;
Иначе
Сообщить("Компонента не подключена: "+ОписаниеОшибки());
Возврат Неопределено;
КонецЕсли;

UPD 01.12.2024. Добавлена 64-битная версия компоненты.

15 Comments

  1. Bonov

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

    Reply
  2. Angealtor

    Если сеанс, в которой запущена 1С, терминальный — возвращает локальный адрес клиентской машины (192.168.X.X). Если не терминальный — возвращает 127.0.0.1.

    Reply
  3. Nykos

    Спасибо большое за ваш труд! Все работает.

    Reply
  4. merlin1975

    Здравия!

    Такой вопрос: а на 7.7 работать будет? Если да, то какой код?

    Благодарю.

    Reply
  5. Angealtor

    (4) Доброго дня! 1С 7.7 не поддерживает технологию компонент Native, только COM. На 7.7 работать не будет.

    Reply
  6. eretic

    компонента почему то не подключается. ПодключениеВыполнено возвращает Ложь

    Reply
  7. Angealtor

    Какие операционная система, релиз платформы, конфигурация, и откуда запускаете?

    Reply
  8. eretic

    win7 х64, 8.3.13.1513, конфигурация пробую на самописной но будет использоваться на ERP последние релизы, библиотеку загрузил в общий макет, при начале работы системы в модуле не подключается как в шапке написано, только «ПодключитьОбщийМакетИсправлено», подключаю локально пока тестирую.

    Reply
  9. Angealtor

    Не совсем понял. Локально работает с диска, с общего макета не загружается?

    Reply
  10. eretic

    с общего макета не загружается библиотека

    Reply
  11. eretic

    Берем dll вставляем в общий макет конфигурации, в модуле при начале работы системы читаем ДвоичныеДанные = ПолучитьОбщийМакет(«IpRdpClient»);

    АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(ДвоичныеДанные);

    ПодключениеВыполнено=ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты,»CAddInNative»,ТипВнешнейКомпоненты.Native);

    Если ПодключениеВыполнено Тогда

    NativeОбъект = Новый(«AddIn.CAddInNative.IPRdpClient»);

    IPадресКлиента = NativeОбъект.ПоказатьIpRdpКлиента();

    Возврат IPадресКлиента;

    Иначе

    Сообщить(«Компонента не подключена: «+ОписаниеОшибки());

    Возврат Неопределено;

    КонецЕсли;

    ПодключениеВыполнено возвращает Ложь.

    Reply
  12. Angealtor

    (11) Компонента писалась давно. Стабильно работает на платформе 8.2 на многих проектах (УТ 10.3, УПП 1.3). Нареканий нет. Возможно, в новой платформе произошли изменения. Проверил на ERP 2.4. Особо не анализировал, времени не было, но , действительно, возвращает Ложь. Надо поднимать исходники, делать отладку, смотреть в чем дело. Напишите в личку, попробуем решить.

    Reply
  13. eretic

    (12)Не могу вам писать в лс неактивное поле ввода сообщений

    Reply
  14. Angealtor

    (13) Попросите ваших коллег мне в личку написать, чтобы я вам на e-mail 64-битную версию отправил.

    Reply
  15. eretic

    (14)

    Попросите ваших коллег мне в личку написать, чтобы я вам на e-mail 64-битную версию отправил.

    Хорошо! Спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *