mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 13:14:11 +00:00
+В непортативном режиме в форму запуска нового сеанса добавлена кнопка "Запустить толстый клиент"
+В полях ввода расширенных значений реализована поддержка типов ХранилищеЗначения и ДвоичныеДанные
Анализ техножурнала
*Исправлена ошибка неоткрытия формы анализа управляемой блокировки
Структура формы
*Исправлены свежие ошибки в портативном режиме
Подготовка к изменению структуры БД
+Реализован полностью корректный метод сравнения конфигураций на 8.3.8+
Контекстная подсказка
*Исправлена свежая ошибка возвращения периодической потери формой модуля
Анализ журнала регистрации
*Исправлена актуализация списков доступных значений в отборе
Конструктор запроса
*Исправлено вычисление типов выбранных полей
*Исправлено обновление доступных полей временных таблиц из предыдущих запросов пакета
+У поля объединения добавлена кнопка перехода к его части объединения
Удаление объектов с контролем ссылок
*Исправлена плавающая ошибка чтения доп. полей объектов ссылающихся на кандидатов
Редактор пользователей
*Исправлен сброс пароля пользователя при запуске под пользователем при "Подменить пароль на время запуска" = Выкл
+Добавлена поддержка свойства СохраняемоеЗначениеПароля
197 lines
14 KiB
Plaintext
197 lines
14 KiB
Plaintext
//ирПортативный Перем ирПортативный Экспорт;
|
||
//ирПортативный Перем ирОбщий Экспорт;
|
||
//ирПортативный Перем ирСервер Экспорт;
|
||
//ирПортативный Перем ирКэш Экспорт;
|
||
//ирПортативный Перем ирПривилегированный Экспорт;
|
||
|
||
Функция ПолучитьСписокЗначенийЭлементаОтбора(ПолеОтбора) Экспорт
|
||
|
||
Если ПолеОтбора = "Уровень" Тогда
|
||
ВозможныеЗначения = Новый СписокЗначений;
|
||
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Ошибка);
|
||
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Предупреждение);
|
||
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Информация);
|
||
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Примечание);
|
||
ИначеЕсли ПолеОтбора = "СтатусТранзакции" Тогда
|
||
ВозможныеЗначения = Новый СписокЗначений;
|
||
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.Зафиксирована);
|
||
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.Отменена);
|
||
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.НеЗавершена);
|
||
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.НетТранзакции);
|
||
ИначеЕсли Ложь
|
||
Или ПолеОтбора = "Пользователь"
|
||
Или ПолеОтбора = "Компьютер"
|
||
Или ПолеОтбора = "ИмяПриложения"
|
||
Или ПолеОтбора = "Событие"
|
||
Или ПолеОтбора = "Метаданные"
|
||
Или ПолеОтбора = "РабочийСервер"
|
||
Или ПолеОтбора = "ОсновнойIPПорт"
|
||
Или ПолеОтбора = "ВспомогательныйIPПорт"
|
||
Или ПолеОтбора = "РазделениеДанныхСеанса"
|
||
Тогда
|
||
СтруктураЗначенийОтбора = ПолучитьЗначенияОтбораЖурналаРегистрации(ПолеОтбора, ИмяФайла);
|
||
ВозможныеЗначения = СтруктураЗначенийОтбора[ПолеОтбора];
|
||
Иначе
|
||
ВозможныеЗначения = Неопределено;
|
||
КонецЕсли;
|
||
Если ВозможныеЗначения <> Неопределено Тогда
|
||
Если ТипЗнч(ВозможныеЗначения) = Тип("СписокЗначений") Тогда
|
||
СписокВыбора = ВозможныеЗначения;
|
||
ИначеЕсли ТипЗнч(ВозможныеЗначения) = Тип("Массив") Тогда
|
||
СписокВыбора = Новый СписокЗначений;
|
||
СписокВыбора.ЗагрузитьЗначения(ВозможныеЗначения);
|
||
СписокВыбора.СортироватьПоЗначению();
|
||
ИначеЕсли ТипЗнч(ВозможныеЗначения) = Тип("Соответствие") Тогда
|
||
СписокВыбора = Новый СписокЗначений;
|
||
Для Каждого КлючИЗначение Из ВозможныеЗначения Цикл
|
||
СписокВыбора.Добавить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
|
||
КонецЦикла;
|
||
СписокВыбора.СортироватьПоПредставлению();
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат СписокВыбора;
|
||
|
||
КонецФункции
|
||
|
||
Функция ДобавитьЭлементОтбора(Отбор, ПолеОтбора = "Данные", Знач ЗначениеОтбора = Неопределено, ПредставлениеЗначения = Неопределено,
|
||
Использование = Истина, ОставлятьСтарыеПометки = Истина) Экспорт
|
||
|
||
ДоступныеЗначенияЭлементаОтбора = ПолучитьСписокЗначенийЭлементаОтбора(ПолеОтбора);
|
||
СтрокаОтбора = Отбор.Найти(ПолеОтбора);
|
||
Если СтрокаОтбора = Неопределено Тогда
|
||
СтрокаОтбора = Отбор.Добавить();
|
||
СтрокаОтбора.Поле = ПолеОтбора;
|
||
СтрокаОтбора.Значение = ДоступныеЗначенияЭлементаОтбора;
|
||
УстановитьОписаниеТиповЗначенияОтбора(СтрокаОтбора);
|
||
КонецЕсли;
|
||
ирОбщий.ПрисвоитьЕслиНеРавноЛкс(СтрокаОтбора.Использование, Использование);
|
||
СписокВыбора = СтрокаОтбора.Значение;
|
||
Если ТипЗнч(СписокВыбора) = Тип("СписокЗначений") Тогда
|
||
Если Не ОставлятьСтарыеПометки Тогда
|
||
СписокВыбора.ЗаполнитьПометки(Ложь);
|
||
КонецЕсли;
|
||
Если ТипЗнч(ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
|
||
лПустышка = ЗначениеОтбора;
|
||
ЗначениеОтбора = Новый СписокЗначений;
|
||
ЗначениеОтбора.Добавить(лПустышка, , Истина);
|
||
КонецЕсли;
|
||
Для Каждого ЭлементСписка Из СписокВыбора Цикл
|
||
ЭлементСтарогоСписка = ЗначениеОтбора.НайтиПоЗначению(ЭлементСписка.Значение);
|
||
Если ЭлементСтарогоСписка <> Неопределено Тогда
|
||
ЭлементСписка.Пометка = ЭлементСтарогоСписка.Пометка;
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
Для Каждого ДоступноеЗначение Из ДоступныеЗначенияЭлементаОтбора Цикл
|
||
ЭлементСписка = СписокВыбора.НайтиПоЗначению(ДоступноеЗначение.Значение);
|
||
Если ЭлементСписка = Неопределено Тогда
|
||
ЭлементСписка = СписокВыбора.Добавить();
|
||
КонецЕсли;
|
||
ЗаполнитьЗначенияСвойств(ЭлементСписка, ДоступноеЗначение,, "Пометка");
|
||
КонецЦикла;
|
||
СписокВыбора.СортироватьПоПредставлению();
|
||
Иначе
|
||
СтрокаОтбора.Значение = ЗначениеОтбора;
|
||
КонецЕсли;
|
||
Возврат СтрокаОтбора;
|
||
|
||
КонецФункции
|
||
|
||
Функция УстановитьОписаниеТиповЗначенияОтбора(СтрокаОтбора) Экспорт
|
||
|
||
ПолеОтбора = СтрокаОтбора.Поле;
|
||
МетаРеквизит = Метаданные().ТабличныеЧасти.ТаблицаЖурнала.Реквизиты[ПолеОтбора];
|
||
БазовоеОписаниеТипов = МетаРеквизит.Тип;
|
||
Если Ложь
|
||
Или ПолеОтбора = "Уровень"
|
||
Или ПолеОтбора = "СтатусТранзакции"
|
||
Или ПолеОтбора = "Пользователь"
|
||
Или ПолеОтбора = "Компьютер"
|
||
Или ПолеОтбора = "ИмяПриложения"
|
||
Или ПолеОтбора = "Событие"
|
||
Или ПолеОтбора = "Метаданные"
|
||
Или ПолеОтбора = "РабочийСервер"
|
||
Или ПолеОтбора = "ОсновнойIPПорт"
|
||
Или ПолеОтбора = "ВспомогательныйIPПорт"
|
||
Или ПолеОтбора = "РазделениеДанныхСеанса"
|
||
Тогда
|
||
ОписаниеТипов = Новый ОписаниеТипов("СписокЗначений");
|
||
ИначеЕсли ПолеОтбора = "Сеанс" Тогда
|
||
ОписаниеТипов = Новый ОписаниеТипов(БазовоеОписаниеТипов, "СписокЗначений");
|
||
Иначе
|
||
ОписаниеТипов = БазовоеОписаниеТипов;
|
||
КонецЕсли;
|
||
СтрокаОтбора.ОписаниеТипов = ОписаниеТипов;
|
||
СтрокаОтбора.Значение = ОписаниеТипов.ПривестиЗначение(СтрокаОтбора.Значение);
|
||
СтрокаОтбора.Представление = МетаРеквизит.Представление();
|
||
|
||
КонецФункции
|
||
|
||
#Если Клиент Тогда
|
||
|
||
Функция ОткрытьСПараметром(ПолеОтбора = "Данные", ЗначениеОтбора, ПредставлениеЗначения = Неопределено) Экспорт
|
||
|
||
Форма = ПолучитьФорму(,, ЗначениеОтбора);
|
||
Форма.Открыть();
|
||
Форма.Отбор.Очистить();
|
||
Форма.НачалоПериода = НачалоДня(ТекущаяДата());
|
||
Форма.КонецПериода = Неопределено;
|
||
ДобавитьЭлементОтбора(Форма.Отбор, ПолеОтбора, ЗначениеОтбора, ПредставлениеЗначения);
|
||
Ответ = Вопрос("Сразу выполнить выгрузку с текущим отбором?", РежимДиалогаВопрос.ОКОтмена);
|
||
Если Ответ = КодВозвратаДиалога.ОК Тогда
|
||
Форма.ОбновитьТаблицуЖурнала();
|
||
КонецЕсли;
|
||
Возврат Форма;
|
||
|
||
КонецФункции
|
||
|
||
Функция ОткрытьСОтбором(НачалоПериода = Неопределено, КонецПериода = Неопределено, СтруктураОтбора = Неопределено,
|
||
МаксимальныйРазмерВыгрузки = Неопределено) Экспорт
|
||
|
||
Форма = ПолучитьФорму(,,);
|
||
Форма.Открыть();
|
||
Форма.Отбор.Очистить();
|
||
Если НачалоПериода <> Неопределено Тогда
|
||
Форма.НачалоПериода = НачалоПериода;
|
||
Иначе
|
||
Форма.НачалоПериода = НачалоДня(ТекущаяДата());
|
||
КонецЕсли;
|
||
Если КонецПериода <> Неопределено Тогда
|
||
Форма.КонецПериода = КонецПериода;
|
||
Иначе
|
||
Форма.КонецПериода = Неопределено;
|
||
КонецЕсли;
|
||
Если МаксимальныйРазмерВыгрузки <> Неопределено Тогда
|
||
Форма.МаксимальныйРазмерВыгрузки = МаксимальныйРазмерВыгрузки;
|
||
КонецЕсли;
|
||
Если СтруктураОтбора <> Неопределено Тогда
|
||
Для Каждого КлючИЗначение Из СтруктураОтбора Цикл
|
||
ДобавитьЭлементОтбора(Форма.Отбор, КлючИЗначение.Ключ, КлючИЗначение.Значение);
|
||
КонецЦикла;
|
||
КонецЕсли;
|
||
Ответ = Вопрос("Сразу выполнить выгрузку с текущим отбором?", РежимДиалогаВопрос.ОКОтмена);
|
||
Если Ответ = КодВозвратаДиалога.ОК Тогда
|
||
Форма.ОбновитьТаблицуЖурнала();
|
||
КонецЕсли;
|
||
Возврат Форма;
|
||
|
||
КонецФункции
|
||
|
||
#КонецЕсли
|
||
|
||
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
|
||
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
|
||
//ирПортативный #Если Клиент Тогда
|
||
//ирПортативный Контейнер = Новый Структура();
|
||
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
|
||
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
|
||
//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
|
||
//ирПортативный ирПортативный.Открыть();
|
||
//ирПортативный КонецЕсли;
|
||
//ирПортативный #Иначе
|
||
//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
|
||
//ирПортативный #КонецЕсли
|
||
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
|
||
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
|
||
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
|
||
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
|