Диагностика контекста выполнения (внешняя компонента)

0. YPermitin 9674 24.07.20 10:30 Сейчас в теме
Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Evg-Lylyk 3059 24.07.20 14:29 Сейчас в теме
В консоли запросов от 1С для анализа планов запрос используется код:
ОбъектСистемы = Новый COMОбъект("WScript.Shell");
Процесс = ОбъектСистемы.Exec("rundll32.exe kernel32,Sleep");
ComОбъект = СтрШаблон("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2:Win32_Process.Handle='%1'", Формат(Процесс.ProcessID,"ЧГ=0"));
ИДТекущегоПроцесса = ПолучитьCOMОбъект(ComОбъект).ParentProcessID;
Процесс.Terminate();

он почему-то долго работает около 2с
Функция GetProcessId его заменяет и работает быстро?
YPermitin; +1 Ответить
2. YPermitin 9674 24.07.20 14:39 Сейчас в теме
(1) только что проверил у себя.

Да результат функций один и тот же.

Вариант с COM 2 секунды работает видимо из-за того, что приходится сначала инициализацию объекта делать, а потом его еще и "прибить".
Evg-Lylyk; +1 Ответить
3. Evg-Lylyk 3059 24.07.20 14:41 Сейчас в теме
(2) Отлично, использую в своей консоли
YPermitin; +1 Ответить
4. YPermitin 9674 24.07.20 14:43 Сейчас в теме
(3) спасибо, приятно узнать.

Пока компонента только для Windows (хотя и COM не получится использовать под Linux).
Но не знаю критично ли это.
12. Evg-Lylyk 3059 29.07.20 13:03 Сейчас в теме
(4) Применил в новых инструментах все прекрасно теперь 75мс было 2с
Еще для метода 1С нужен был вызов УстановитьОтключениеБезопасногоРежима(Истина) и с ним были проблемы
Может логичнее именовать без Получить: ПолучитьИмяДомена = ИмяДомена и т.д.
в 1С нехватает функции Подождать, Копировать, Вставить в Буфер и какой-то компактной библиотеки для этого
YPermitin; +1 Ответить
13. YPermitin 9674 29.07.20 13:11 Сейчас в теме
(12) отлично!

Без "получить", чтобы соответствовать стандартам наименования? Можно, со следующей порцией изменений соберу.

Остальное себе записал, но пока не скажу сроков.
Evg-Lylyk; +1 Ответить
5. Pr-Mex 128 24.07.20 17:26 Сейчас в теме
(0)
Вот тут есть пример кроссплатформенной компоненты, которая делает что-то похожее.
https://github.com/lintest/VanessaExt
YPermitin; +1 Ответить
6. YPermitin 9674 24.07.20 17:38 Сейчас в теме
(5) с компонентой знаком, но похожего не видел :)
11. Pr-Mex 128 27.07.20 11:32 Сейчас в теме
(6) Я имел ввиду работу с процессами ОС.
YPermitin; +1 Ответить
7. Xershi 1018 24.07.20 21:42 Сейчас в теме
Язык компоненты не указали в публикации. По ссылке вижу с++.
Такое же но на джаве не реализуете?
На ИС что не вижу джава разработчиков компонент.
Или они платные и не хотят делиться опытом.
8. YPermitin 9674 24.07.20 21:49 Сейчас в теме
(7) да, это C++.

Я не большой любитель Java мягко выражаясь.

Я за .NET и C++ :)
VitaliyCeban; +1 Ответить
9. karpik666 2905 25.07.20 00:19 Сейчас в теме
Круто, сам недавно стал разбираться с Native компонентами на C++, но до такого уровня еще расти и расти.
Отмечу, что в коде нужно подчистить лишние куски оставшиеся от примера native компоненты от 1С
YPermitin; +1 Ответить
10. YPermitin 9674 25.07.20 10:27 Сейчас в теме
(9)да, нало рефакторинг езе проводить.

Но мой уровень в комопнентах низкий, я так, балуюсь.
14. YPermitin 9674 30.08.20 11:32 Сейчас в теме
Обновлена версия компоненты.

30.08.20 - Реинжениринг и рефакторинг компоненты. Актуализация лицензии и описания проекта.

Добавлены методы "ТекущаяДата" и "Ожидать"
Изменена лицензия на AGPL
Актуализировано описание проекта
Проект переведен на рельсы CMake
Проект переведен на шаблон от Infactum (https://github.com/Infactum/addin-template)
Подготовка к созданию компоненты для Linux
Очистка проекта от лишних файлов
Большой рефакторинг
Обновлена версия обработки и улучшена работа при исключениях

Спасибо коллегам за отличное видео Пишем внешнюю компоненту 1С на глазах изумленной публики. Эксклюзивный хардкор от Infactum.
Вдохновился и использовал шаблон у себя :)
Оставьте свое сообщение
Вопросы с вознаграждением