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