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

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

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

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

UPD 01.12.2026. Добавлена 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 не будет опубликован. Обязательные поля помечены *