mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 13:14:11 +00:00
*Исправлена ошибка открытия при наличии списка выбранных обработок из очень старых версий
Редактор пользователей
*Исправлена ошибка запуска под пользователей с разрешением отладки при http отладке
+Над списком пользователей добавлена кнопка-переключатель "Подсветка активных сеансов"
Функции для отладки
*Исправлена ошибка в методе ИменаИспользуемыхВЗапросеВременныхТаблицЛкс при передаче ему менеджера временных таблиц
*В функциях ПолВТ и От исправлено обнаружение имен обычных таблиц в качестве имен временных таблиц
Консоль заданий
*Исправлена некритичная ошибка при создании регламентного задания
Структура хранения БД
*Устранена обязательность использования внешней компоненты GameWithFire для взаимодействия с СУБД
*В очистке таблиц СУБД теперь для каждого выбранного объекта метаданных генерируются инструкции по очистке всех его таблиц включая предопределенные данные
Итоги регистров
*Устранена обязательность использования внешней компоненты GameWithFire для взаимодействия с СУБД
Консоль запросов
+В команде "Удалить переносы строк..." добавлено удаление первой и последней кавычек и завершающего символа";"
Редактор объекта БД
*В управляемой форме в клиент-серверном варианте исправлены ошибки при работе со строкой независимого регистра сведений
Анализ техножурнала
*Исправлены некорректные диагностические сообщения при чтении логов о превышении размеров событий после конца отбираемого интервала
Консоль компоновки данных
*Устранена неоправданная выдача сообщения "При чтении из файла вероятно была потеряна часть информации"
+Для текущей схемы компоновки добавлена закладка События и одно событие "Перед выполнением"
Общее
+В информацию для технической поддержки добавлены параметры серверного процесса
303 lines
24 KiB
Plaintext
303 lines
24 KiB
Plaintext
//ирПортативный Перем ирПортативный Экспорт;
|
||
//ирПортативный Перем ирОбщий Экспорт;
|
||
//ирПортативный Перем ирСервер Экспорт;
|
||
//ирПортативный Перем ирКэш Экспорт;
|
||
//ирПортативный Перем ирПривилегированный Экспорт;
|
||
|
||
Перем мПлатформа;
|
||
|
||
Функция ПрименитьИзменения() Экспорт
|
||
|
||
Если Не ЗначениеЗаполнено(Компьютер) Тогда
|
||
Компьютер = ИмяКомпьютера();
|
||
КонецЕсли;
|
||
СлужбаWMI = ирКэш.ПолучитьCOMОбъектWMIЛкс(Компьютер);
|
||
Если СлужбаWMI = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Для Каждого СтрокаСлужбы Из СлужбыАгентовСерверов1С Цикл
|
||
АктуальныеСлужбы = СлужбаWMI.ExecQuery("SELECT *
|
||
|FROM Win32_Service
|
||
|WHERE NAME = '" + СтрокаСлужбы.Имя + "'");
|
||
АктуальнаяСлужба = Неопределено;
|
||
Для Каждого АктуальнаяСлужба Из АктуальныеСлужбы Цикл
|
||
Прервать;
|
||
КонецЦикла;
|
||
Команда = "sc \\" + Компьютер;
|
||
ИмяСлужбы = СтрокаСлужбы.Имя;
|
||
Если Ложь
|
||
Или Не ЗначениеЗаполнено(ИмяСлужбы)
|
||
Или ирОбщий.СтрокиРавныЛкс("<Авто>", ИмяСлужбы)
|
||
Тогда
|
||
Порт = ПортАгентаСтрокиСлужбы(СтрокаСлужбы);
|
||
ПортАгента = XMLСтрока(Порт);
|
||
ИмяСлужбы = "1C:Enterprise Server Agent " + ПортАгента;
|
||
КонецЕсли;
|
||
ТекстИмяСлужбы = """" + ИмяСлужбы + """";
|
||
Если СтрокаСлужбы.Удалить Тогда
|
||
Команда = Команда + " delete " + ТекстИмяСлужбы;
|
||
Иначе
|
||
КаталогКонфигурации = Неопределено;
|
||
ОбновитьСтрокуЗапускаНовую(СтрокаСлужбы, КаталогКонфигурации);
|
||
СтрокаЗапускаНовая = СтрокаСлужбы.СтрокаЗапускаНовая;
|
||
ПредставлениеСлужбы = СтрокаСлужбы.Представление;
|
||
Если Ложь
|
||
Или Не ЗначениеЗаполнено(ПредставлениеСлужбы)
|
||
Или ирОбщий.СтрокиРавныЛкс("<Авто>", ПредставлениеСлужбы)
|
||
Тогда
|
||
ПредставлениеСлужбы = "1C:Enterprise Server Agent " + ПортАгента;
|
||
КонецЕсли;
|
||
ПредставлениеСлужбы = """" + ПредставлениеСлужбы + """";
|
||
СоздатьКаталог(КаталогКонфигурации);
|
||
//Если УдалитьСуществующуюПоИмени Тогда
|
||
// Команда = "sc delete " + ТекстИмяСлужбы;
|
||
// Результат = ирОбщий.ПолучитьТекстРезультатаКомандыОСЛкс(Команда);
|
||
// Сообщить(Результат);
|
||
//КонецЕсли;
|
||
Если АктуальнаяСлужба = Неопределено Тогда
|
||
ТипОперации = "create";
|
||
Иначе
|
||
ТипОперации = "config";
|
||
КонецЕсли;
|
||
Если СтрокаСлужбы.Автозапуск Тогда
|
||
РежимЗапускаСлужбы = "auto";
|
||
Иначе
|
||
РежимЗапускаСлужбы = "demand";
|
||
КонецЕсли;
|
||
Команда = Команда + " " + ТипОперации + " " + ТекстИмяСлужбы + " binPath= """ + СтрЗаменить(СтрокаЗапускаНовая, """", "\""") + """ start= " + РежимЗапускаСлужбы + " displayname= " + ТекстИмяСлужбы
|
||
+ " depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver displayname= " + ПредставлениеСлужбы;
|
||
Если ЗначениеЗаполнено(СтрокаСлужбы.ПарольПользователя) Тогда
|
||
Команда = Команда + " obj= " + СтрокаСлужбы.ИмяПользователя + " password= " + СтрокаСлужбы.ПарольПользователя;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Результат = ирОбщий.ПолучитьТекстРезультатаКомандыОСЛкс(Команда,,, Истина);
|
||
Если Не ЗначениеЗаполнено(Результат) Тогда
|
||
Результат = "Не удалось получить результат обработки службы агента";
|
||
КонецЕсли;
|
||
Сообщить(Результат);
|
||
//Если ЗапуститьСразу Тогда
|
||
// Команда = "net start " + ТекстИмяСлужбы;
|
||
// Результат = ирОбщий.ПолучитьТекстРезультатаКомандыОСЛкс(Команда);
|
||
// Сообщить(Результат);
|
||
//КонецЕсли;
|
||
КонецЦикла;
|
||
Результат = Истина;
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Процедура ОбновитьСтрокуЗапускаНовую(Знач СтрокаСлужбы, выхКаталогКонфигурации = "") Экспорт
|
||
|
||
#Если Сервер И Не Сервер Тогда
|
||
СтрокаСлужбы = Обработки.ирУправлениеСлужбамиСерверов1С.Создать().СлужбыАгентовСерверов1С.Добавить();
|
||
#КонецЕсли
|
||
Порт = ПортАгентаСтрокиСлужбы(СтрокаСлужбы);
|
||
НачальныйПортРабочихПроцессов = СтрокаСлужбы.НачальныйПортРабочихПроцессов;
|
||
Если Ложь
|
||
Или Не ЗначениеЗаполнено(НачальныйПортРабочихПроцессов)
|
||
Или ирОбщий.СтрокиРавныЛкс("<Авто>", НачальныйПортРабочихПроцессов)
|
||
Тогда
|
||
НачальныйПортРабочихПроцессов = Порт + 20;
|
||
КонецЕсли;
|
||
КонечныйПортРабочихПроцессов = СтрокаСлужбы.КонечныйПортРабочихПроцессов;
|
||
Если Ложь
|
||
Или Не ЗначениеЗаполнено(КонечныйПортРабочихПроцессов)
|
||
Или ирОбщий.СтрокиРавныЛкс("<Авто>", КонечныйПортРабочихПроцессов)
|
||
Тогда
|
||
КонечныйПортРабочихПроцессов = Порт + 51;
|
||
КонецЕсли;
|
||
ДиапазонПортов = XMLСтрока(НачальныйПортРабочихПроцессов) + ":" + XMLСтрока(КонечныйПортРабочихПроцессов);
|
||
ПортКластера = XMLСтрока(Порт + 1);
|
||
ПортАгента = XMLСтрока(Порт);
|
||
ОтборВерсий = Новый Структура("Сервер, СборкаПлатформы", Истина, СтрокаСлужбы.СборкаПлатформыНовая);
|
||
ПодходящиеВерсии = СборкиПлатформы.Выгрузить(ОтборВерсий);
|
||
ПодходящиеВерсии.Сортировать("x64 Убыв");
|
||
Если ПодходящиеВерсии.Количество() > 0 Тогда
|
||
КаталогИсполняемыхФайлов = ПодходящиеВерсии[0].Каталог;
|
||
Иначе
|
||
КаталогИсполняемыхФайлов = СтрокаСлужбы.СборкаПлатформыНовая;
|
||
КонецЕсли;
|
||
ирОбщий.ДобавитьЕслиНужноПравыйСлешВФайловыйПутьЛкс(КаталогИсполняемыхФайлов);
|
||
выхКаталогКонфигурации = СтрокаСлужбы.КаталогКонфигурации;
|
||
Если Ложь
|
||
Или Не ЗначениеЗаполнено(выхКаталогКонфигурации)
|
||
Или ирОбщий.СтрокиРавныЛкс("<Авто>", выхКаталогКонфигурации)
|
||
Тогда
|
||
ФайлКаталогаВерсии = Новый Файл(КаталогИсполняемыхФайлов);
|
||
выхКаталогКонфигурации = ФайлКаталогаВерсии.Путь + "srvinfo" + XMLСтрока(ПортАгента);
|
||
КонецЕсли;
|
||
//СтрокаЗапускаСлужбы = БазовыйКаталог + "\" + СборкаПлатформы + "\bin\ragent.exe -srvc -agent -regport " + ПортКластера + " -port " + ПортАгента + " -range "
|
||
СтрокаЗапускаНовая = """" + КаталогИсполняемыхФайлов + "bin\ragent.exe"" -srvc -agent -regport " + ПортКластера + " -port "
|
||
+ ПортАгента + " -range " + ДиапазонПортов + " -d """ + выхКаталогКонфигурации + """";
|
||
Если СтрокаСлужбы.РежимОтладки = "tcp" Тогда
|
||
СтрокаЗапускаНовая = СтрокаЗапускаНовая + " -debug";
|
||
ИначеЕсли СтрокаСлужбы.РежимОтладки = "http" Тогда
|
||
СтрокаЗапускаНовая = СтрокаЗапускаНовая + " -debug -http";
|
||
Если ЗначениеЗаполнено(СтрокаСлужбы.СерверОтладкиАдрес) Тогда
|
||
СтрокаЗапускаНовая = СтрокаЗапускаНовая + " -debugServerAddr " + СтрокаСлужбы.СерверОтладкиАдрес;
|
||
КонецЕсли;
|
||
Если ЗначениеЗаполнено(СтрокаСлужбы.СерверОтладкиПорт) Тогда
|
||
СтрокаЗапускаНовая = СтрокаЗапускаНовая + " -debugServerPort " + XMLСтрока(СтрокаСлужбы.СерверОтладкиПорт);
|
||
КонецЕсли;
|
||
Если ЗначениеЗаполнено(СтрокаСлужбы.СерверОтладкиПароль) Тогда
|
||
СтрокаЗапускаНовая = СтрокаЗапускаНовая + " -debugServerPwd " + СтрокаСлужбы.СерверОтладкиПароль;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
СтрокаСлужбы.СтрокаЗапускаНовая = СтрокаЗапускаНовая;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ПортАгентаСтрокиСлужбы(Знач СтрокаСлужбы)
|
||
|
||
Порт = СтрокаСлужбы.Порт;
|
||
Если Не ЗначениеЗаполнено(Порт) Тогда
|
||
Порт = 1540;
|
||
КонецЕсли;
|
||
Возврат Порт;
|
||
|
||
КонецФункции
|
||
|
||
Процедура Заполнить() Экспорт
|
||
|
||
ирОбщий.ЗаполнитьДоступныеСборкиПлатформыЛкс(СборкиПлатформы, Компьютер);
|
||
ПортПоУмолчанию = 1540;
|
||
СлужбыАгентовСерверов1С.Очистить();
|
||
СлужбаWMI = ирКэш.ПолучитьCOMОбъектWMIЛкс(Компьютер);
|
||
Если СлужбаWMI = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
АктуальныеСлужбы = СлужбаWMI.ExecQuery("SELECT
|
||
|*
|
||
|FROM Win32_Service
|
||
|WHERE PathName LIKE '%ragent.exe%'
|
||
|AND PathName LIKE '%-srvc -agent%'");
|
||
Для Каждого АктуальнаяСлужба Из АктуальныеСлужбы Цикл
|
||
СтрокаЗапускаСлужбы = АктуальнаяСлужба.PathName;
|
||
СтрокаСлужбыАгента = СлужбыАгентовСерверов1С.Добавить();
|
||
СтрокаСлужбыАгента.Имя = АктуальнаяСлужба.Name;
|
||
СтрокаСлужбыАгента.СтрокаЗапускаСлужбы = СтрокаЗапускаСлужбы;
|
||
СтрокаЗапускаСлужбы = СтрЗаменить(СтрокаЗапускаСлужбы + " ", " /", " -");
|
||
Если ЗначениеЗаполнено(АктуальнаяСлужба.ProcessId) Тогда
|
||
АктивныйПроцесс = ирОбщий.ПолучитьПроцессОСЛкс(АктуальнаяСлужба.ProcessId);
|
||
Если ТипЗнч(АктивныйПроцесс) <> Тип("Строка") Тогда
|
||
СтрокаСлужбыАгента.СтрокаЗапускаАктивная = АктивныйПроцесс.CommandLine;
|
||
СтрокаСлужбыАгента.ПараметрыИзменены = Не ирОбщий.СтрокиРавныЛкс(СтрокаСлужбыАгента.СтрокаЗапускаАктивная, СтрокаСлужбыАгента.СтрокаЗапускаСлужбы);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
СтрокаСлужбыАгента.Представление = АктуальнаяСлужба.Caption;
|
||
СтрокаСлужбыАгента.ИмяПользователя = АктуальнаяСлужба.StartName;
|
||
СтрокаСлужбыАгента.ИдентификаторПроцесса = АктуальнаяСлужба.ProcessId;
|
||
СтрокаСлужбыАгента.Порт = Число(ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(НРег(СтрокаЗапускаСлужбы), "-port ", " ", Ложь));
|
||
СтрокаДиапазона = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(НРег(СтрокаЗапускаСлужбы), "-range ", " ", Ложь);
|
||
Если ЗначениеЗаполнено(СтрокаДиапазона) Тогда
|
||
ФрагментыДиапазона = ирОбщий.ПолучитьМассивИзСтрокиСРазделителемЛкс(СтрокаДиапазона, ":");
|
||
СтрокаСлужбыАгента.НачальныйПортРабочихПроцессов = Число(ФрагментыДиапазона[0]);
|
||
СтрокаСлужбыАгента.КонечныйПортРабочихПроцессов = Число(ФрагментыДиапазона[1]);
|
||
КонецЕсли;
|
||
СтрокаСлужбыАгента.Выполняется = ирОбщий.СтрокиРавныЛкс(АктуальнаяСлужба.State, "Running");
|
||
СтрокаСлужбыАгента.Автозапуск = ирОбщий.СтрокиРавныЛкс(АктуальнаяСлужба.StartMode, "Auto");
|
||
СтрокаСлужбыАгента.КаталогКонфигурации = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(СтрокаЗапускаСлужбы, "-d """, """"); // Регистрозависимость маркера не убрана!
|
||
Если ЗначениеЗаполнено(СтрокаСлужбыАгента.ИдентификаторПроцесса) Тогда
|
||
АктивныйПроцесс = ирОбщий.ПолучитьПроцессОСЛкс(АктуальнаяСлужба.ProcessId, , Компьютер);
|
||
СтрокаЗапускаПроцесса = АктивныйПроцесс.CommandLine;
|
||
Иначе
|
||
АктивныйПроцесс = Неопределено;
|
||
КонецЕсли;
|
||
СтрокаСлужбыАгента.СборкаПлатформыНовая = ПолучитьСборкуПлатформуИзКоманднойСтроки(СтрокаЗапускаСлужбы);
|
||
Если АктивныйПроцесс <> Неопределено И ТипЗнч(СтрокаЗапускаПроцесса) = Тип("Строка") Тогда
|
||
СтрокаСлужбыАгента.СборкаПлатформыАктивная = ПолучитьСборкуПлатформуИзКоманднойСтроки(СтрокаЗапускаПроцесса);
|
||
КонецЕсли;
|
||
СтрокаСлужбыАгента.РежимОтладки = ирОбщий.РежимОтладкиИзКоманднойСтрокиЛкс(СтрокаЗапускаСлужбы);
|
||
СтрокаСлужбыАгента.СерверОтладкиАдрес = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(Нрег(СтрокаЗапускаСлужбы), НРег("-debugServerAddr "), " ", Ложь);
|
||
СтрокаСлужбыАгента.СерверОтладкиПорт = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(Нрег(СтрокаЗапускаСлужбы), НРег("-debugServerPort "), " ", Ложь);
|
||
СтрокаСлужбыАгента.СерверОтладкиПароль = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(Нрег(СтрокаЗапускаСлужбы), НРег("-debugServerPwd "), " ", Ложь);
|
||
КонецЦикла;
|
||
СлужбыАгентовСерверов1С.Сортировать("Имя");
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||
|
||
Отказ = Ложь;
|
||
МассивИсключений = Новый Массив;
|
||
МассивИсключений.Добавить("");
|
||
МассивИсключений.Добавить("<Авто>");
|
||
Отказ = Отказ Или Не ирОбщий.ПроверитьУникальностьСтрокТЧПоКолонкеЛкс(ЭтотОбъект, "СлужбыАгентовСерверов1С", "Имя",,, МассивИсключений);
|
||
Отказ = Отказ Или Не ирОбщий.ПроверитьУникальностьСтрокТЧПоКолонкеЛкс(ЭтотОбъект, "СлужбыАгентовСерверов1С", "Представление",,, МассивИсключений);
|
||
Отказ = Отказ Или Не ирОбщий.ПроверитьУникальностьСтрокТЧПоКолонкеЛкс(ЭтотОбъект, "СлужбыАгентовСерверов1С", "Порт", , Новый Структура("Автозапуск", Истина));
|
||
//Отказ = Отказ Или Не ирОбщий.ПроверитьУникальностьСтрокТЧПоКолонкеИис(ЭтотОбъект, "СлужбыАгентовСерверов1С", "КаталогКонфигурации", , Новый Структура("Автозапуск", Истина));
|
||
Для Индекс = 0 По СлужбыАгентовСерверов1С.Количество() - 1 Цикл
|
||
СтрокаСлужбы = СлужбыАгентовСерверов1С[Индекс];
|
||
Если Не СтрокаСлужбы.Удалить Тогда
|
||
МассивПутейКДанным = Новый Соответствие;
|
||
//МассивПутейКДанным.Вставить("СлужбыАгентовСерверов1С[" + Индекс + "].КаталогКонфигурации");
|
||
МассивПутейКДанным.Вставить("СлужбыАгентовСерверов1С[" + Индекс + "].СборкаПлатформыНовая");
|
||
МассивПутейКДанным.Вставить("СлужбыАгентовСерверов1С[" + Индекс + "].Порт");
|
||
ирОбщий.ПроверитьЗаполнениеРеквизитовОбъектаЛкс(ЭтотОбъект, МассивПутейКДанным, Отказ);
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ПолучитьWMIОбъектСлужбы(ИмяСлужбы, Компьютер = Неопределено, ВызыватьИсключениеЕслиНеНайдена = Истина) Экспорт
|
||
|
||
СлужбаWMI = ирКэш.ПолучитьCOMОбъектWMIЛкс(Компьютер);
|
||
Если СлужбаWMI = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
ТекстЗапросаWQL = "Select * from Win32_Service Where Name = '" + ИмяСлужбы + "'";
|
||
ВыборкаСистемныхСлужб = СлужбаWMI.ExecQuery(ТекстЗапросаWQL);
|
||
Для Каждого лСистемнаяСлужба Из ВыборкаСистемныхСлужб Цикл
|
||
СистемнаяСлужба = лСистемнаяСлужба;
|
||
КонецЦикла;
|
||
Если СистемнаяСлужба = Неопределено Тогда
|
||
СистемнаяСлужба = "Системная служба с именем """ + ИмяСлужбы + """ не найдена на компьютере """ + Компьютер + """" ; // Сигнатура (начало строки) используется в Обработка.ПоддержаниеСервераПриложенийИис
|
||
Если ВызыватьИсключениеЕслиНеНайдена Тогда
|
||
ВызватьИсключение СистемнаяСлужба;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат СистемнаяСлужба;
|
||
|
||
КонецФункции
|
||
|
||
Функция ПолучитьСборкуПлатформуИзКоманднойСтроки(Строка)
|
||
|
||
#Если Сервер И Не Сервер Тогда
|
||
мПлатформа = Обработки.ирПлатформа.Создать();
|
||
#КонецЕсли
|
||
Результат = "";
|
||
ВычислительРегулярок = мПлатформа.RegExp;
|
||
ВычислительРегулярок.Pattern = "\\(\d+\.\d+\.\d+\.\d+)\\";
|
||
Вхождения = ВычислительРегулярок.Execute(Строка);
|
||
Если Вхождения.Count > 0 Тогда
|
||
Результат = Вхождения.Item(0).Submatches(0);
|
||
Иначе
|
||
ВычислительРегулярок = мПлатформа.RegExp;
|
||
ВычислительРегулярок.Pattern = """(.+\\)bin\\ragent.exe""";
|
||
Вхождения = ВычислительРегулярок.Execute(Строка);
|
||
Если Вхождения.Count > 0 Тогда
|
||
Результат = Вхождения.Item(0).Submatches(0);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
|
||
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули")) + "ирПортативный.epf";
|
||
//ирПортативный #Если Клиент Тогда
|
||
//ирПортативный Контейнер = Новый Структура();
|
||
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
|
||
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
|
||
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = ирОбщий.ВосстановитьЗначениеЛкс("ирПолноеИмяФайлаОсновногоМодуля");
|
||
//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
|
||
//ирПортативный КонецЕсли;
|
||
//ирПортативный #Иначе
|
||
//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
|
||
//ирПортативный #КонецЕсли
|
||
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
|
||
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
|
||
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
|
||
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
|
||
|
||
мПлатформа = ирКэш.Получить(); |