Кратко
Компонента используется для диагностики специфичных ситуаций работы платформы 1С:Предприятие и часто носит больше экспериментальный характер. Разработка компоненты выполняется в открытом репозитории YY.YellowDiagnostician под лицензией AGPL. По ссылке доступные исходные коды и собранная компонента для Windows x86/64 в разделе релизов.
Если Вам понравится функционал компоненты, то Вы можете поддержать проект, скачав внешнюю обработку с примером ее использования в этой публикации. Также буду рад любым предложениям и вопросам.
Назначение
Компонента была создана для диагностики некоторых сложных ситуаций в работе платформы 1С и разбору непонятного поведения.
Например, были разрешены следующие кейсы:
- Проверка доступности контекста домена на сервере и на клиенте. Была проблема с работой доменной аутентификацией в фоновых заданиях.
- Получение идентификатора рабочего процесса и потока в программном коде для детального анализа происходящего.
- Получение и проверка информации о пользователе операционной системы, от имени которого выполняются рабочие процессы. Необходимость была из-за специфичных настроек безопасности.
- Отслеживание потребления ресурсов отдельным фоновым заданиям.
- Может помочь в изучении работы асинхронности в платформе 1С, в т.ч. и той, которая появится в 8.3.18.
В будущем, возможно, появятся отдельные статьи по этим темам. Но это не точно :)
Текущие возможности
Компонента имеет список методов для получения дополнительной информации. Некоторую из них можно получить в каком-либо виде средствами платформы 1С.
Компонента может использоваться как на клиенте, так и на сервере. Поддерживается только Windows x86/x64. Тестировалось на платформе 1С 8.3.12 и выше. Создана по технологии NativeAPI.
API
DomainName (ИмяДомена) - получает имя домена, доступное в контексте приложения.
Возвращаемое значение:
- Строка. Имя домена.
UserName (ИмяПользователя) - получает имя пользователя, от имени которого запущено приложение.
Возвращаемое значение:
- Строка. Имя пользователя.
HostName (ИмяКомпьютера) - получает имя компьютера, на котором запущено приложение.
Возвращаемое значение:
- Строка. Имя компьютера.
ProcessName (ИмяПроцесса) - получает полное имя процесса (путь до исполняемого файла).
Возвращаемое значение:
- Строка. Полное имя к исполняемому файлу процесса.
ProcessId (ИдентификаторПроцесса) - получает числовой идентификатор текущего процесса.
Возвращаемое значение:
- Целое число. Числовой идентификатор процесса.
ThreadId (ИдентификаторПотока) - получает числовой идентификатор текущего потока.
Возвращаемое значение:
- Целое число. Числовой идентификатор потока.
Sleep (Ожидать) - ожидание потока указанное время.
Параметры:
- delay - Число (целое) - Количество секунд ожидания.
Возвращаемое значение:
- Отсутствует.
CurrentDate (ТекущаяДата) - текущая дата в контексте выполнения.
Возвращаемое значение:
- Дата и время. Текущая дата и время в контексте выполнения.
Простые примеры использования методов описаны в репозитории на GitHub. Более развернутый пример есть во внешней обработке в данной публикации.
TODO
Функционал компоненты расширяется по необходимости, но примерные планы такие:
- Добавить версию для Linux
- Расширить набор методов компоненты в части:
- Дополнительная диагностика процессов и потоков
- Создание потоков и их завершение
- Информация по использованной памятью процессом
- Проверка окружения
Вместо заключения
Это не готовое решение, а просто результат различных экспериментов.
Всем хорошего настроения и удачи в делах!
30.08.20 - Реинжениринг и рефакторинг компоненты. Актуализация лицензии и описания проекта.
- Добавлены методы "ТекущаяДата" и "Ожидать"
- Изменена лицензия на AGPL
- Актуализировано описание проекта
- Проект переведен на рельсы CMake
- Проект переведен на шаблон от Infactum (https://github.com/Infactum/addin-template)
- Подготовка к созданию компоненты для Linux
- Очистка проекта от лишних файлов
- Большой рефакторинг
- Обновлена версия обработки и улучшена работа при исключениях
24.07.20 - Выпущена первая основная версия.
Другие ссылки
- По схожей теме ничего не нашел, но можете подсказать ссылки в комментариях.
Авторские разработки
-
Транслятор запросов 1С в SQL - инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.
-
Просмотр и анализ структуры базы данных (отчет на СКД) - отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.
-
Просмотр и анализ журнала регистрации (отчет на СКД) - отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации.
-
История работы пользователей (отчет на СКД) - отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).
-
Экспорт журнала регистрации. Набор инструментов (приложения + исходный код) - набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux. Готовые приложения и исходный код.
-
Технические проверки данных регистров бухгалтерии (отчет на СКД) - отчет для технических проверок данных бухгалтерских регистров.
-
Путеводитель по истории релизов - отчет по истории выпуска релизов продуктов фирмы "1С" и анализа информации по обновлениям.
- Помощник работы с идентификаторами объектов - инструмент для расширенного анализа идентификаторов объектов.
-
Информация о пользователях информационной базы (отчет на СКД) - два простых отчета по пользователям информационной базы и информации по ним.
-
Анализ производительности APDEX (бесплатный) - отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.
-
Обозреватель криптографии - отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.
-
Пакетная выгрузка / загрузка внешних отчетов и обработок - пакетная выгрузка / загрузка внешних отчетов и обработок для массовый манипуляций с ними.
-
Мастер полнотекстового поиска - набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.
-
Командный интерпретатор для 1С - инструмент для выполнения команд CMD / PowerShell из 1С