Получение IP компьютера в 1С

24.01.12

База данных - Инструменты администратора БД

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

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

Наименование Файл Версия Размер
Получение данных о компьютере
.epf 6,89Kb
115
.epf 6,89Kb 115 Скачать

При удаленном работе с пользователями (например через R-admin), для подключения к компьютеру необходимо что бы пользователь сообщил свой IP. Можно, конечно, вытянуть эту информацию и стандартными способами, но порой сложно объяснить бухгалтеру как это сделать. Данная обработка позволяет нажатием кнопки получить нужные сведения в режиме 1С.

Кроме того, ее можно рассматривать как пример работы с wscript.network

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2972    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3521    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177734    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27374    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61313    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11745    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

3600 руб.

06.02.2017    31109    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10982    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ediks 335 24.01.12 12:33 Сейчас в теме
Не понял на картинке, что такое на "ДомИн пользователя" :)
2. igormiro 714 24.01.12 12:43 Сейчас в теме
Все работает.
А как можно получить IP не терминального сервера, а IP клиентской машины.
Я думаю эта информация больше волнует пользователей.
AK-74S; charushkin; +2 Ответить
3. anig99 2843 24.01.12 14:31 Сейчас в теме
http://infostart.ru/public/79704/
вот тут гораздо больше дает инфы.
6. students 25.01.12 13:21 Сейчас в теме
10. sound 535 26.01.12 13:54 Сейчас в теме
Да и ну и до кучи, как верно было замечено в (3), можно через WMI, пример:

// Host,Mac,User,IP
// Для локального компьютера IP_Host = "."
Функция ПолучитьСетевыеПараметры(IP_Host) Экспорт
	Попытка
		Структура = Новый Структура("Host,Mac,User,IP");
		ServicesSet = GetComObject("winmgmts:{impersonationLevel=impersonate}!\\" + СокрЛП(IP_Host) + "\root\cimv2");
		// Host, UserName
		Items = ServicesSet.ExecQuery("SELECT UserName,Name FROM Win32_ComputerSystem");
		Для каждого Item Из Items Цикл
			Структура.Host	= СокрЛП(Item["Name"]);
			Структура.User 	= СокрЛП(Item["UserName"]);
			Прервать;
		КонецЦикла;
		Если ПустаяСтрока(Структура.Host) Тогда
			Возврат Неопределено;
		КонецЕсли;
		// MACAddress
		Items = ServicesSet.ExecQuery("SELECT MACAddress FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2");
		Для каждого Item Из Items Цикл
			Если СокрЛП(Item["MACAddress"]) <> "" Тогда
				Структура.Mac = СокрЛП(Item["MACAddress"]);
				Прервать;
			КонецЕсли;
		КонецЦикла;
		// IPAddress
		Items = ServicesSet.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress='" + Структура.Mac + "'");
		Для Каждого objItem Из Items Цикл
			Если ТипЗнч(objItem.IPAddress) = Тип("COMSafeArray") Тогда
				Для Каждого Элем Из objItem.IPAddress Цикл
					Структура.IP = Элем;
					Прервать;
				КонецЦикла;
			КонецЕсли;	
		КонецЦикла;
		Возврат	Структура;
	Исключение
		Возврат Неопределено;
	КонецПопытки;
КонецФункции // ПолучитьСетевыеПараметры()
Показать


Это, конечно, просто выдранный кусок, но тоже рабочий.
help1Ckr; +1 Ответить
4. aaaaaaa 24.01.12 14:41 Сейчас в теме
Обработка для 8.1 или 8.2 ?
5. Ягг 495 24.01.12 16:09 Сейчас в теме
Обработка для 8.1 но через конфигуратор 8.2. можно легко перекодировать.
Что касается объема информации - то ее делали имено что бы бухгалтер мог легко и просто сказать IP - поэтому не стали перегружать излишними данными.
7. maxlenium 36 25.01.12 23:13 Сейчас в теме
Очень полезная разработка. Ну и плюс нестандартный подход в ее решении.
8. maxlenium 36 25.01.12 23:15 Сейчас в теме
Работает в 8.1. В моем случае у юзеров было несколько сетевых устройств (VPN, локалка и спутник). Чтобы выбрать все возможные IP, можно просто убрать "преравать" в процедуре Получить_ip.
9. sound 535 26.01.12 13:50 Сейчас в теме
Имхо, на публикацию не тянет. Чем качать, да еще и непонятно что внутри, было бы гораздо интересней если бы был описан сам подход к решению задачи, ну и оформить все это дело по уму, показать пару-тройку примеров, вот тогда бы было гуд.
11. karakozov 27.01.12 10:32 Сейчас в теме
Хм.Публикацию как мне кажется можно было сделать в рамках статьи а не разработки.Информация к сведению конечно.Но как механизм, не востребован.
12. pumbaE 27.01.12 16:52 Сейчас в теме
Подскажите доколе это будет длиться с такими обработками? Нет что бы написать вот есть инструмент, вот как можно применять (получили бы свои плюсы) ?

Вот пример Видео как получить эту информацию
13. Ягг 495 28.01.12 12:55 Сейчас в теме
Что касается статьи - стыдно признаться я не знаю как это делается. Разберусь - буду писать статьи. Мне самому обычно удобнее рассматривть готовые (работоспособные) обработки (которые можно запустить и оттрасировать). В наивности думал, что и остальным так удобнее, чем просмтртивать здоровые листинги.

Что касается плюсов, то не я придумывал правила этого форума. Я всего лишь им следую. И эти плюсы использую для скачки интересующих меня обработок. Так что да, получил, и благодарен за них.
27. v.l. 434 13.02.12 15:22 Сейчас в теме
(13) >> В наивности думал, что и остальным так удобнее, чем просмтртивать здоровые листинги.

Вот здесь молодец, хочешь применять конструктивную критику. Я не видел этот твой пост, потому написал (26). На (26) смотри в призме этого поста.

Допиши, пожалуйста, свой код, как ты взял скрипт, как сделал обертку в 1С для него и т.д.

Удачи!
28. Ягг 495 19.02.12 09:12 Сейчас в теме
(27) vladal, так в 18 сообшении выложен весь код - он не такой большой
29. v.l. 434 19.02.12 16:42 Сейчас в теме
(28) теперь это надо в статье описать.

Как пример - Вот скрипт такой-то, вот его оболочка в 1С, вот готовую обработку можно скачать.

Или всё ради скачивания?
30. pumbaE 19.02.12 17:29 Сейчас в теме
(29) vladal, все ради скачиваний... Посмотри (12) , (14), (16), (19) ...
И автор типа не понимает, что от него хотят.
31. v.l. 434 19.02.12 23:56 Сейчас в теме
(30) pumbaE, во мне проснулся Торквемада.
Буду нещадно минусовать.
14. pumbaE 28.01.12 13:18 Сейчас в теме
Ну так пишите с помощью чего это можно получить, а то вот запущу вашу обработку в толстом клиенте на linux и скажу "Ааа, не работает!".
Если видео смотрели, то должны были увидеть утилитку которая генерит код (распространяеться микрософтом бесплатно).
Вот написали качаем от сюда программу, документацию, смотрим как сформировать правильный запрос, переносим это в 1С и получаем результат. Как пример для чего необходимо - вот лежит обработка получающая IP компьютера, имя компьютера, имя пользователя и домена в сеансе 1С.

P.S.: вот есть обработка, подскажите где можно увидеть другие параметры, получить другие данные?
15. Ягг 495 28.01.12 13:35 Сейчас в теме
"не стреляйте в пианиста, он играет как умеет" :)
16. pumbaE 28.01.12 13:59 Сейчас в теме
:) Обновите публикацию, допишите где вы взяли, как нашли такой запрос, а то извините смотришь на код, вау шаманство и откуда люди это знают, наверное днями и ночами не спять dll декомпилируют?
17. Ягг 495 28.01.12 14:37 Сейчас в теме
в понедельник выложу (у меня счас нет обработки - на работе). Но как нашел запрос - не помню, копал в свое время в этом нарпалении.
18. Ягг 495 30.01.12 08:06 Сейчас в теме
Кому инетерсен код программы:

Процедура Получить_network()
	WSH = Новый COMobject("wscript.network");
	ИмяКомпьютера 		= WSH.ComputerName;
    ИмяПользователя		= WSH.UserName;
	ДоминПользователя	= WSH.UserDomain;
КонецПроцедуры	


Процедура Получить_ip()
	IP = "";
	
	MACAddress = Неопределено;
	ИПАдрес = "";
	ServicesSet = ПолучитьCOMОбъект("winmgmts:\\localhost\root\cimv2");
	MyItems = ServicesSet.ExecQuery("Sel ect * Fr om Win32_NetworkAdapterConfiguration Where IPEnabled = True");
	Для Каждого MyItem Из MyItems Цикл
		MACAddress = MyItem.MACAddress;
		Если ЗначениеЗаполнено(MACAddress) Тогда
			IPAddress = Неопределено;
			Для Каждого IPAddress Из MyItem.IPAddress Цикл
				Если ЗначениеЗаполнено(IPAddress) Тогда
					IP = IPAddress;
					прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
	// Вставить содержимое обработчика.
	Получить_network();
	Получить_ip();

КонецПроцедуры
Показать


На решение наткнулся где-то на форумах в инетернете, когда копался в даном направлении. На исключительное авторство алгоритма и кода не претендую :)
19. pumbaE 30.01.12 16:01 Сейчас в теме
Давайте тогда уж я дополню, а вы в статью отредактируете.
На решение наткнулся где-то на форумах в инетернете, когда копался в даном направлении.
Для того, что бы не искать это на форумах, достаточно скачать с сайта microsoft программку "Scriptomatic2.exe", данная программа генерит код на js, vbs, python для таких запросов. Если вы ее скачаете и посмотрите на код который она создает и код представленный в (18) то можно будет увидеть аналогию и спокойно получить эти данные в 1С.
Пример кода, который она генерит для задач в (18) вот:
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;

var arrComputers = new Array("LOCALHOST");
for (i = 0; i < arrComputers.length; i++) {
   WScript.Echo();
   WScript.Echo("==========================================");
   WScript.Echo("Computer: " + arrComputers[i]);
   WScript.Echo("==========================================");

   var objWMIService = GetObject("winmgmts:\\\\" + arrComputers[i] + "\\root\\CIMV2");
   var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterSetting", "WQL",
                                          wbemFlagReturnImmediately | wbemFlagForwardOnly);

   var enumItems = new Enumerator(colItems);
   for (; !enumItems.atEnd(); enumItems.moveNext()) {
      var objItem = enumItems.item();

      WScript.Echo("Element: " + objItem.Element);
      WScript.Echo("Setting: " + objItem.Setting);
   }
}
Показать


Ссылка scriptomatic
a.podobin; +1 Ответить
37. arukovasv 7 20.10.14 13:45 Сейчас в теме
Коллеги, подскажите пож-та, как ж все таки получить IP клиента, который подконнектился по RDP? Код из (18) дает мне IP сервера..
38. shved 15.03.15 17:23 Сейчас в теме
+Коллеги, подскажите пож-та, как ж все таки получить IP клиента, который подконнектился по RDP? Код из (18) дает мне IP сервера..
20. hnya 31.01.12 16:17 Сейчас в теме
мне пока еще такая обработка не пригождалась, но я думаю в будущем вполне возможно, что будет полезно. сколько интересных вещей можно найти на этом сайте. что ж, спасибо!
21. Mudrii_Gankster 01.02.12 17:06 Сейчас в теме
Хорошо бы дописать обработку, чтобы она как-то могла сказать IP или Имя компа с которого подконектились в RDP
22. Hellisad 87 01.02.12 18:31 Сейчас в теме
(21) Mudrii_Gankster, А если терминал с внешним IP (на удаленном от офиса серваке), то IP или Имя компа с которого подконектились в RDP будет бесполезной информацией
23. Vetal85 03.02.12 08:39 Сейчас в теме
А данная фишка может может извлекать мас-адреса
24. Lalei2008 03.02.12 09:45 Сейчас в теме
Когда-то хотел написать монитор для 1С7, чтобы он видел пользователя, и его ip, именно клиентский. Монитор так и не написал, а вот скрипт нашел, пользуйтесь) Для просмотра работы скрипта сохраните его в текстовый файл *.vbs

Dim Shell, DesktopPath, URL, Text
strComputer = "."
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2")
Set IPConfigSet = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration where ipenabled = true")
Set HostNameSet = objWMIService.ExecQuery("Select DNSHostName from Win32_NetworkAdapterConfiguration where ipenabled = true")

For Each obj in HostNameSet
Text = "Имя компьютера: " & obj.DNSHostName & VbCrLf
Next

Text = Text & VbCrLf

for each IPConfig in IPConfigSet
if Not IsNull(IPConfig.IPAddress) then
for i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
Text = Text & "Ваш IP: " &IPConfig.IPAddress(i)& VbCrLf
next
end if
next

Set Shell = CreateObject("WScript.Shell")

remotepc = Shell.ExpandEnvironmentStrings("%ClientName%")
session = Shell.ExpandEnvironmentStrings("%SESSIONNAME%")

if session <> "Console" then
getIP(remotepc)
end if
Text = Text & VbCrLf & "Пользуйтесь на здоровье!"
WScript.Echo Text
function getIP(strComputer)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
Text = Text & VbCrLf & "Терминальная сессия с:" & VbCrLf
For Each IPConfig in IPConfigSet
If Not IsNull(IPConfig.IPAddress) Then
For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
Text = Text & VbCrLf & "Host: " & strComputer & " IP: " & IPConfig.IPAddress(i)
Next
End If
Next
Text = Text & VbCrLf
end function
allgorhythm; lsp71; +2 Ответить
25. commo 10.02.12 14:17 Сейчас в теме
26. v.l. 434 13.02.12 15:17 Сейчас в теме
Месье, я за то, чтобы подобные вещи в виде статьи были - кому надо, используют опыт и сделают обработку/процедуру в своей системе.
Но не надо же издеваться над народом - чтобы посмотреть, как это сделано, надо скачать.

Опиши статью, как делали, кто хочет - тот скачает. Вот мой пример: описал в статье, как делал, для интересующихся, кто хочет - качают. Кто хочет - делают.
Вот статья с прикрепленной обработкой: Рекурсивный обход дерева значений с пересчетом иерархических итогов группировок.
32. v.l. 434 20.02.12 00:01 Сейчас в теме
(0) Автор, есть некий этикет. Об нём намекали. Говорили прямо.
Лично МНЕ не жалко самому зафигачить пару-тройку макросов на js, vbs или wsh и прикрутить их к 1С.
Но нужно уважать сообщество.

Повторю прямо - допиши текст статьи. А пока минус. Исправишь - мой минус превратится в плюс.
33. pumbaE 20.02.12 12:56 Сейчас в теме
vladal происходил из испанской семьи крещёных евреев[2] и приходился племянником кардиналу Джорджи (исп.)русск., также крещеному еврею. Историк той эпохи pumbaE (исп.)русск. пишет о vladal, что "его дед и бабка были из рода обращенных в нашу святую веру 1С".
Получив специалиста по 1С и отличаясь аскетическими наклонностями, vladal поступил в infostart, в 20.. году стал Профессиональный разработчиком.
Главной задачей vladal было религиозное и политическое объединение infostart. Для достижения этой цели он реорганизовал и расширил деятельность модераторов. В 1483 году vladal был назначен «великим инквизитором».

:)
34. Ягг 495 20.02.12 16:03 Сейчас в теме
"Хотел как лучше - получилось как вегда" :)
Ладно, ребята, всем не угодишь - пойду выпью яйду :)
36. v.l. 434 23.08.12 16:55 Сейчас в теме
(34) всё нормуль. Надо только текст обработки запилить в статью. Умный посмотрит и слделает, ленивый скачает.
35. mugger 11.03.12 15:32 Сейчас в теме
Спасибо за статью.

А теперь вопрос сложней, мож кто знает.
Нужно получить внешний ИП адрес клиента, который подключился через ВЕБ.
Через winmgmts определяются только локальные адреса...
39. Nkolp 16 27.01.21 18:10 Сейчас в теме
Вариант с управляемой формой получение с сервера и с клиентского компа
Прикрепленные файлы:
PUBID_105590-ПолучениеДанныхОКомпьютере.epf
40. Nkolp 16 27.01.21 18:10 Сейчас в теме
41. Nkolp 16 27.01.21 18:16 Сейчас в теме
В форме (на Клиенте):

&НаСервере
Процедура ПолучитьНаСервере()
	Обб=РеквизитФормыВЗначение("Объект");
	Обб.Получить_network();
	Обб.Получить_ip();
	ЗначениеВРеквизитФормы(Обб,"Объект");
КонецПроцедуры

&НаКлиенте
Процедура Получить(Команда)
	ПолучитьНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура  Получить_network_Client()
	WSH = Новый COMobject("wscript.network");
	Объект.ИмяКомпьютера 		= WSH.ComputerName;
    Объект.ИмяПользователя		= WSH.UserName;
	Объект.ДоминПользователя	= WSH.UserDomain;;
КонецПроцедуры

&НаКлиенте
Процедура Получить_ip_Client()
	Объект.IP = "";
	
	MACAddress = Неопределено;
	ИПАдрес = "";
	ServicesSet = ПолучитьCOMОбъект("winmgmts:\\localhost\root\cimv2");
	MyItems = ServicesSet.ExecQuery("Sel ect * Fr om Win32_NetworkAdapterConfiguration Where IPEnabled = True");
	Для Каждого MyItem Из MyItems Цикл
		MACAddress = MyItem.MACAddress;
		Если ЗначениеЗаполнено(MACAddress) Тогда
			IPAddress = Неопределено;
			Для Каждого IPAddress Из MyItem.IPAddress Цикл
				Если ЗначениеЗаполнено(IPAddress) Тогда
					Объект.IP = IPAddress;
					прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьДанныеКомпьютера(Команда)
	Получить_network_Client();
	 Получить_ip_Client();
КонецПроцедуры


В модуле объекта (на сервере):

Процедура Получить_network() Экспорт
	WSH = Новый COMobject("wscript.network");
	ИмяКомпьютера 		= WSH.ComputerName;
    ИмяПользователя		= WSH.UserName;
	ДоминПользователя	= WSH.UserDomain;
КонецПроцедуры	


Процедура Получить_ip()Экспорт
	IP = "";
	
	MACAddress = Неопределено;
	ИПАдрес = "";
	ServicesSet = ПолучитьCOMОбъект("winmgmts:\\localhost\root\cimv2");
	MyItems = ServicesSet.ExecQuery("Select * Fr om Win32_NetworkAdapterConfiguration Wh ere IPEnabled = True");
	Для Каждого MyItem Из MyItems Цикл
		MACAddress = MyItem.MACAddress;
		Если ЗначениеЗаполнено(MACAddress) Тогда
			IPAddress = Неопределено;
			Для Каждого IPAddress Из MyItem.IPAddress Цикл
				Если ЗначениеЗаполнено(IPAddress) Тогда
					IP = IPAddress;
					прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры
Показать


(Это код полностью от автора без изменений)
42. Nkolp 16 27.01.21 18:19 Сейчас в теме
Забыл как форматировать тест здесь. Sorry )))
Оставьте свое сообщение