Функция ТехническаяИнформация()
НомерВерсииБСП = ирКэш.НомерВерсииБСПЛкс();
// Системный вариант
//Платформа: 1С:Предприятие 8.3 (8.3.9.2033)
//Конфигурация: Комплексная автоматизация, редакция 1.1 (1.1.20.1) (http://v8.1c.ru/ka/)
//Copyright (С) ООО "1C", 2010-2012. Все права защищены
//(http://www.1c.ru/)
//Режим: Файловый (без сжатия)
//Приложение: Тонкий клиент
//Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
//Вариант интерфейса: Такси
#Если Сервер И Не Сервер Тогда
ирПортативный = Обработки.ирПортативный.Создать();
#КонецЕсли
СистемнаяИнформация = Новый СистемнаяИнформация;
Текст =
"Платформа: " + СистемнаяИнформация.ВерсияПриложения + "
|Режим БД: " + ?(ирКэш.ЛиФайловаяБазаЛкс(), "файловый", "клиент-серверный") + "
|Конфигурация. Название: " + Метаданные.Синоним + " (" + Метаданные.Версия + ")
|Конфигурация. Основной режим запуска: " + Метаданные.ОсновнойРежимЗапуска + "
|Конфигурация. Вариант встроенного языка: " + Метаданные.ВариантВстроенногоЯзыка + "
|Конфигурация. Режим управления блокировкой данных: " + Метаданные.РежимУправленияБлокировкойДанных + "
|Конфигурация. Режим совместимости: " + Метаданные.РежимСовместимости;
Если ирКэш.ДоступенРежимИспользованияСинхронныхВызововЛкс() Тогда
Текст = Текст + "
|Конфигурация. Режим использования синхронных вызовов: " + Метаданные.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент;
КонецЕсли;
Если ЗначениеЗаполнено(НомерВерсииБСП) Тогда
Текст = Текст + "
|Конфигурация. Версия БСП: " + НомерВерсииБСП;
КонецЕсли;
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Текст = Текст + "
|Конфигурация. Использовать обычные формы в управляемом приложении: " + БулевоВСтроку(Метаданные.ИспользоватьОбычныеФормыВУправляемомПриложении);
#КонецЕсли
Текст = Текст + "
|Инструменты разработчика. Версия: " + ИспользуемаяВерсия + "
|Инструменты разработчика. Инструмент: " + НазваниеИнструмента + "
|Инструменты разработчика. Перехват клавиатурного ввода: " + БулевоВСтроку(ирКлиент.ЛиПерехватКлавиатурногоВводаЛкс()) + "
|Инструменты разработчика. Объекты на сервере: " + БулевоВСтроку(ирКэш.ПараметрыЗаписиОбъектовЛкс().ОбъектыНаСервере);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Текст = Текст + "
|Инструменты разработчика. Серверный модуль БСП: " + БулевоВСтроку(ирПортативный.ЛиСерверныйМодульДоступенЛкс());
Иначе
Текст = Текст + "
|Инструменты разработчика. Асинхронность запрещена: " + БулевоВСтроку(мПлатформа.АсинхронностьЗапрещена) + "
|Инструменты разработчика. Разрешены имитаторы: " + БулевоВСтроку(Не ирКэш.ПараметрыЗаписиОбъектовЛкс().НеИспользоватьИмитаторыОбъектовДанных);
КонецЕсли;
Если ирКэш.НомерРежимаСовместимостиЛкс() >= 803006 И ПравоДоступа("АдминистрированиеРасширенийКонфигурации", Метаданные) Тогда
МаксКоличество = 10;
Счетчик = 0;
Для Каждого КлючИЗначение Из ирКэш.РасширенияКонфигурацииЛкс(Истина) Цикл
РасширениеКонфигурации = КлючИЗначение.Ключ;
#Если Сервер И Не Сервер Тогда
РасширениеКонфигурации = РасширенияКонфигурации.Создать();
#КонецЕсли
Счетчик = Счетчик + 1;
Если Счетчик > МаксКоличество Тогда
Текст = Текст + "
|Расширения. ...";
Прервать;
КонецЕсли;
Текст = Текст + "
|Расширения. " + РасширениеКонфигурации.Имя + " (" + РасширениеКонфигурации.Версия + ")";
КонецЦикла;
КонецЕсли;
Если ирКэш.НомерВерсииПлатформыЛкс() >= 803009 Тогда
Если ПравоДоступа("Администрирование", Метаданные) И ПользователиИнформационнойБазы.ПолучитьПользователей().Количество() > 0 Тогда
ТекущийПользовательБазы = ПользователиИнформационнойБазы.ТекущийПользователь();
Попытка
ЗащитаОтОпасныхДействий = ТекущийПользовательБазы.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях;
Исключение
ЗащитаОтОпасныхДействий = "Недоступно";
КонецПопытки;
Иначе
ЗащитаОтОпасныхДействий = "Неизвестно";
КонецЕсли;
Если ЗащитаОтОпасныхДействий = Истина Тогда
Текст = Текст + "
|Пользователь. Защита от опасных действий: " + БулевоВСтроку(Истина);
КонецЕсли;
КонецЕсли;
КоманднаяСтрокаПроцесса = ирКэш.КоманднаяСтрокаТекущегоПроцессаОСЛкс();
Текст = Текст + "
|Клиент. Приложение: " + ТекущийРежимЗапуска() + " " + ?(ирКэш.Это64битныйПроцессЛкс(), "64б", "32б") + "
|Клиент. Проверка модальных вызовов: " + БулевоВСтроку(Найти(НРег(КоманднаяСтрокаПроцесса), НРег("/EnableCheckModal")) > 0 И Метаданные.РежимИспользованияМодальности <> Метаданные.СвойстваОбъектов.РежимИспользованияМодальности.Использовать) + "
//|Клиент. Текущий язык: " + ТекущийЯзыкСистемы() + "
|Клиент. Язык интерфейса конфигурации: " + ТекущийЯзык().КодЯзыка + "
|Клиент. Язык интерфейса системы: " + ТекущийЯзыкСистемы() + ?(ирОбщий.ЛиСовместимыйЯзыкСистемыЛкс(), "", " (не поддерживается!)") + "
|Клиент. Отладка разрешена: " + БулевоВСтроку(ирКэш.ЛиОтладкаРазрешенаЛкс()) + "
|Клиент. Постоянный кэш метаданных: " + (ирОбщий.КлючБазыВСпискеПользователяЛкс() <> Неопределено) + "
|Клиент. ОС: " + ирОбщий.ОписаниеОСЛкс() + "
|";
Если ирКэш.ЛиПлатформаWindowsЛкс() Тогда
Попытка
ВК = ирОбщий.ВКОбщаяЛкс();
Исключение
ирОбщий.СообщитьЛкс(ОписаниеОшибки());
//
https://www.hostedredmine.com/issues/889213 КонецПопытки;
Если ВК <> Неопределено Тогда
Текст = Текст + "Клиент. ОС от имени администратора: " + БулевоВСтроку(ВК.IsAdmin()) + "
|";
КонецЕсли;
Текст = Текст +
"Клиент. ОС выполнение BAT: " + БулевоВСтроку(ирКэш.ЛиДоступноВыполнениеКомандныхФайловЛкс()) + "
|Клиент. ОС " + ирОбщий.ВыполнитьКомандуОСЛкс("Chcp") + "
|";
КонецЕсли;
Если Не ирКэш.ЛиФайловаяБазаЛкс() Тогда
ЛиСквознаяФайловаяСистема = ирКэш.ЛиСквознаяФайловаяСистемаКлиентаИСервера();
Если ЛиСквознаяФайловаяСистема Тогда
РезультатКоманды = "";
Иначе
//начало
//РезультатКоманды = ирОбщий.ВыполнитьКомандуОСЛкс("ping -n 1 " + ирОбщий.ИмяКомпьютераКластераЛкс());
РезультатКоманды = ирОбщий.ВыполнитьКомандуОСЛкс("ping -n " +?(ирКэш.ЛиПлатформаWindowsЛкс(),"","-c ") + "1 " + ирОбщий.ИмяКомпьютераКластераЛкс());
//конец
КонецЕсли;
//начало
Если ирКэш.ЛиПлатформаWindowsЛкс() Тогда
Найденные = ирОбщий.НайтиРегВыражениеЛкс(РезультатКоманды, "=\s*(\d+)");
Если Найденные.Количество() >= 5 Тогда
Пинг = Найденные[4].Подгруппа0;
Иначе
// Заблокировано выполнение BAT
Пинг = "?";
КонецЕсли;
Иначе
Найденные = ирОбщий.НайтиРегВыражениеЛкс(РезультатКоманды, "=(\d|\.)+\s.{2}\b");
Если Найденные.Количество() > 0 Тогда
Пинг = Сред(Найденные[0].ТекстВхождения,2,СтрДлина(Найденные[0].ТекстВхождения) - 3);
Иначе
Пинг = "?";
КонецЕсли;
КонецЕсли;
//конец
Текст = Текст +
"Клиент-Сервер. Пинг: " + ?(ЛиСквознаяФайловаяСистема, " Локальный", Пинг + "мс") + "
|";
РазницаВремениКлиентСервер = ирОбщий.РазницаВремениКлиентСерверЛкс();
Если Макс(РазницаВремениКлиентСервер, -РазницаВремениКлиентСервер) > 10 Тогда
Текст = Текст +
"Клиент-Сервер. Смещение времени: " + ирОбщий.ПредставлениеРазностиЛкс(РазницаВремениКлиентСервер) + "с
|";
КонецЕсли;
Текст = Текст + ирСервер.ИнфоСервераПриложений();
КонецЕсли;
Возврат Текст;
КонецФункции