RDT1C/CommonModules/ирСервер/Ext/Module.bsl
Администратор 4e75047ffb .
2016-12-04 00:18:22 +03:00

277 lines
15 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
// Поместить строку соединения во временное хранилище
Функция ПоместитьСтрокуСоединенияВХранилищеЛкс(Адрес) Экспорт
ПоместитьВоВременноеХранилище(СтрокаСоединенияИнформационнойБазы(), Адрес);
КонецФункции
// Получить строку соединения сервера
Функция ПолучитьСтрокуСоединенияСервераЛкс() Экспорт
Если ирКэш.ЭтоФайловаяБазаЛкс() Тогда
Результат = СтрокаСоединенияИнформационнойБазы();
Иначе
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Результат = СтрокаСоединенияИнформационнойБазы();
Иначе
АдресХранилища = ПоместитьВоВременноеХранилище("");
Параметры = Новый Массив();
Параметры.Добавить(АдресХранилища);
ФоновоеЗадание = ФоновыеЗадания.Выполнить("ирСервер.ПоместитьСтрокуСоединенияВХранилищеЛкс", Параметры,, "Получение строки соединения сервера (ИР)");
ФоновоеЗадание.ОжидатьЗавершения();
Результат = ПолучитьИзВременногоХранилища(АдресХранилища);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
/////////////////////////////////////////////
// Редиректы
Функция ПолучитьКаталогНастроекПриложения1СЛкс(ИспользоватьОбщийКаталогНастроек = Истина, СоздатьЕслиОтсутствует = Ложь) Экспорт
Результат = ирОбщий.ПолучитьКаталогНастроекПриложения1СЛкс(ИспользоватьОбщийКаталогНастроек, СоздатьЕслиОтсутствует);
Возврат Результат;
КонецФункции
Функция ПолучитьИмяФайлаАктивнойНастройкиТехноЖурналаЛкс() Экспорт
Результат = ирОбщий.ПолучитьИмяФайлаАктивнойНастройкиТехноЖурналаЛкс();
Возврат Результат;
КонецФункции
Функция ЛиКаталогТехножурналаНедоступенЛкс(КаталогЖурнала) Экспорт
Результат = ирОбщий.ЛиКаталогТехножурналаНедоступенЛкс(КаталогЖурнала);
Возврат Результат;
КонецФункции
Функция ЗаписатьТекстВФайлЛкс(ПолноеИмяФайла, Текст, Кодировка = Неопределено) Экспорт
Результат = ирОбщий.ЗаписатьТекстВФайлЛкс(ПолноеИмяФайла, Текст, Кодировка);
Возврат Результат;
КонецФункции
Функция ПрочитатьТекстИзФайлаЛкс(ПолноеИмяФайла, Кодировка = Неопределено) Экспорт
Результат = ирОбщий.ПрочитатьТекстИзФайлаЛкс(ПолноеИмяФайла, Кодировка);
Возврат Результат;
КонецФункции
Функция НайтиИменаФайловЛкс(Путь, Маска = Неопределено, ИскатьВПодкаталогах = Истина) Экспорт
Результат = ирОбщий.НайтиИменаФайловЛкс(Путь, Маска, ИскатьВПодкаталогах);
Возврат Результат;
КонецФункции
Функция ВычислитьРазмерКаталогаЛкс(Каталог, ВключаяПодкаталоги = Истина) Экспорт
Результат = ирОбщий.ВычислитьРазмерКаталогаЛкс(Каталог, ВключаяПодкаталоги);
Возврат Результат;
КонецФункции
Функция ПолучитьТекущуюДатуЛкс() Экспорт
Результат = ирОбщий.ПолучитьТекущуюДатуЛкс();
Возврат Результат;
КонецФункции
Процедура ОчиститьКаталогЖурналаЛкс(КаталогЖурнала, ВыводитьПредупрежденияИСообщения = Истина) Экспорт
ирОбщий.ОчиститьКаталогЖурналаЛкс(КаталогЖурнала, , ВыводитьПредупрежденияИСообщения);
КонецПроцедуры // ОчиститьКаталогЖурналаЛкс()
Процедура ВыполнитьЗапросЛкс(ТекстЗапроса) Экспорт
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.Выполнить();
КонецПроцедуры
Процедура ПереместитьФайлЛкс(ИмяИсточника, ИмяПриемника) Экспорт
ПереместитьФайл(ИмяИсточника, ИмяПриемника);
КонецПроцедуры // ПереместитьФайл()
Функция ЛиФайлСуществуетЛкс(ПолноеИмяФайла, выхДатаИзменения = Неопределено) Экспорт
Файл1 = Новый Файл(ПолноеИмяФайла);
ФайлНайден = Файл1.Существует();
Если ФайлНайден Тогда
выхДатаИзменения = Файл1.ПолучитьВремяИзменения();
КонецЕсли;
Возврат ФайлНайден;
КонецФункции // ЛиФайлСуществует()
// Выполняет текст алгоритма.
//
// Параметры:
// ТекстДляВыполнения Строка;
// _АлгоритмОбъект - СправочникОбъект
// *СтруктураПараметров - Структура, *Неопределено.
//
Функция ВыполнитьАлгоритм(_ТекстДляВыполнения, _АлгоритмОбъект = Null, _Режим = Null,
_П0 = Null, _П1 = Null, _П2 = Null, _П3 = Null, _П4 = Null, _П5 = Null, _П6 = Null, _П7 = Null, _П8 = Null, _П9 = Null) Экспорт
Перем Результат;
Выполнить(_ТекстДляВыполнения);
Возврат Результат;
КонецФункции // ПозиционныйМетод()
Процедура ВыполнитьАлгоритмБезРезультата(_ТекстДляВыполнения) Экспорт
Выполнить(_ТекстДляВыполнения);
КонецПроцедуры
Функция ВычислитьВыражение(Выражение) Экспорт
Возврат Вычислить(Выражение);
КонецФункции
Процедура ЗаписатьОбъектЛкс(ХМЛ, СтруктураДополнительныхСвойств, РежимЗаписи = Неопределено) Экспорт
Объект = ирОбщий.ВосстановитьОбъектИзСтрокиXMLЛкс(ХМЛ);
ирОбщий.ВосстановитьДополнительныеСвойстваОбъектаЛкс(Объект, СтруктураДополнительныхСвойств);
//Если РежимЗаписи = Неопределено Тогда
// Объект.Записать();
//Иначе
// Объект.Записать(РежимЗаписи);
//КонецЕсли;
ирОбщий.ЗаписатьОбъектЛкс(Объект, Ложь, РежимЗаписи);
ХМЛ = ирОбщий.СохранитьОбъектВВидеСтрокиXMLЛкс(Объект);
КонецПроцедуры
Процедура УдалитьОбъектЛкс(ХМЛ, СтруктураДополнительныхСвойств) Экспорт
Объект = ирОбщий.ВосстановитьОбъектИзСтрокиXMLЛкс(ХМЛ);
Объект.Прочитать();
ирОбщий.ВосстановитьДополнительныеСвойстваОбъектаЛкс(Объект, СтруктураДополнительныхСвойств);
//Объект.Удалить();
ирОбщий.УдалитьОбъектЛкс(Объект, Ложь);
КонецПроцедуры
Процедура УстановитьПометкуУдаленияОбъектаЛкс(ХМЛ, СтруктураДополнительныхСвойств, ЗначениеПометки = Истина) Экспорт
Объект = ирОбщий.ВосстановитьОбъектИзСтрокиXMLЛкс(ХМЛ);
ирОбщий.ВосстановитьДополнительныеСвойстваОбъектаЛкс(Объект, СтруктураДополнительныхСвойств);
//Если РежимЗаписи = Неопределено Тогда
// Объект.УстановитьПометкуУдаления(ЗначениеПометки);
//Иначе
Объект.УстановитьПометкуУдаления(ЗначениеПометки);
//КонецЕсли;
КонецПроцедуры
Функция ПолучитьИмяКомпьютераЛкс() Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Результат = НСтр(СтрокаСоединенияИнформационнойБазы(), "Srvr");
Иначе
Результат = ИмяКомпьютера();
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьИспользованиеСобытияЖурналаРегистрацииКакСтруктуру(ИмяСобытия) Экспорт
Результат = Новый Структура("Использование, ОписаниеИспользования");
ИспользованиеСобытия = ПолучитьИспользованиеСобытияЖурналаРегистрации(ИмяСобытия);
Результат.Использование = ИспользованиеСобытия.Использование;
Если ТипЗнч(ИспользованиеСобытия.ОписаниеИспользования) = Тип("Массив") И ИспользованиеСобытия.ОписаниеИспользования.Количество() > 0 Тогда
ОписаниеИспользования = Новый Массив();
Если ТипЗнч(ИспользованиеСобытия.ОписаниеИспользования[0]) = Тип("ОписаниеИспользованияСобытияДоступЖурналаРегистрации") Тогда
СтрокаКлючей = "Объект, ПоляРегистрации, ПоляДоступа";
ИначеЕсли ТипЗнч(ИспользованиеСобытия.ОписаниеИспользования[0]) = Тип("ОписаниеИспользованияСобытияОтказВДоступеЖурналаРегистрации") Тогда
СтрокаКлючей = "Объект, ПоляРегистрации";
Иначе
//ВызватьИсключение "Неизвестный тип " + ТипЗнч(ИспользованиеСобытия.ОписаниеИспользования[0]);
КонецЕсли;
Для Каждого ЭлементОписания Из ИспользованиеСобытия.ОписаниеИспользования Цикл
ЭлементМассива = Новый Структура(СтрокаКлючей);
ЗаполнитьЗначенияСвойств(ЭлементМассива, ЭлементОписания);
ОписаниеИспользования.Добавить(ЭлементМассива);
КонецЦикла;
Результат.ОписаниеИспользования = ОписаниеИспользования;
Иначе
Результат.ОписаниеИспользования = Неопределено;
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура УстановитьИспользованиеСобытияЖурналаРегистрацииПоСтруктуре(ИмяСобытия, пИспользованиеСобытия) Экспорт
ИспользованиеСобытия = Новый ИспользованиеСобытияЖурналаРегистрации;
ИспользованиеСобытия.Использование = пИспользованиеСобытия.Использование;
пОписаниеИспользования = Неопределено;
пИспользованиеСобытия.Свойство("ОписаниеИспользования", пОписаниеИспользования);
Если Истина
И ТипЗнч(пОписаниеИспользования) = Тип("Массив")
И пОписаниеИспользования.Количество() > 0
И (Ложь
Или ИмяСобытия = "_$Access$_.Access"
Или ИмяСобытия = "_$Access$_.AccessDenied") Тогда
ТипОписанияСтрокой = ?(ИмяСобытия = "_$Access$_.Access", "ОписаниеИспользованияСобытияДоступЖурналаРегистрации","ОписаниеИспользованияСобытияОтказВДоступеЖурналаРегистрации");
ОписаниеИспользования = Новый Массив();
Для Каждого пЭлементОписания Из пОписаниеИспользования Цикл
ЭлементОписания = Новый(ТипОписанияСтрокой);
ЗаполнитьЗначенияСвойств(ЭлементОписания, пЭлементОписания);
ОписаниеИспользования.Добавить(ЭлементОписания);
КонецЦикла;
ИспользованиеСобытия.ОписаниеИспользования = ОписаниеИспользования;
КонецЕсли;
УстановитьИспользованиеСобытияЖурналаРегистрации(ИмяСобытия, ИспользованиеСобытия)
КонецПроцедуры