diff --git a/DataProcessors/ирИнтерфейснаяПанель/Ext/ObjectModule.bsl b/DataProcessors/ирИнтерфейснаяПанель/Ext/ObjectModule.bsl
index dee5d8623..b966ea52f 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Ext/ObjectModule.bsl
+++ b/DataProcessors/ирИнтерфейснаяПанель/Ext/ObjectModule.bsl
@@ -4,490 +4,7 @@
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
-Перем КомандыПоиска;
-Перем дзВсеОбъекты Экспорт;
-Перем ДеревоПодсистем Экспорт;
-Перем стНастройки Экспорт;
-Перем мСписокПолнотекстовогоПоиска; // Глобальный поиск
-Перем СтатическиеВетки Экспорт;
-Перем мПлатформа Экспорт;
-Перем МассивСтатическихВеток;
-Перем ВеткиМетаданных;
-Перем RegExp; // Для поиска с помощью регулярных выражений
-Перем ВерсияПлатфомы Экспорт;
-Перем ИмяКорневойПодсистемы;
-Перем ЕстьСправочникВнешнихОбработок Экспорт;
-Перем мТекущийПользователь Экспорт;
-Перем ПутьФайлаНастроек;
-Перем ЕстьУниверсальныйОтчет Экспорт, Есть_РС_СохраненныеНастройки Экспорт;
-//Перем Есть_СправочникОрганизаций;
-Перем мСловаСтрокиУмногоПоиска Экспорт, СтрокаУмногоПоискаБезСуффикса Экспорт, СтрокаСуффиксаУмногоПоиска Экспорт, флПробоватьУмныйПоиск Экспорт, ЧислоСуффиксаУмногоПоиска, МассивПрефиксовОрганизаций, ДлинаСуффиксаУмногоПоиска;
-Перем СоответствиеВидовМетаданныхДляПоискаПолногоИмени Экспорт;
-Перем мВременныйФильтрИмен Экспорт;
-
-
-///////////////////////////////////////////////////////////////////////////////
-Функция СохранитьВыбраннуюСтроку(Форма)
-
- ТекСтрока = Форма.ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
- Если ТекСтрока = Неопределено тогда
- Возврат Неопределено;
- КонецЕсли;
-
- стСтрока = Новый Структура("Представление,Уровень,Родитель,Вид,Имя");
-
- стСтрока.Представление = ТекСтрока.Представление;
- стСтрока.Уровень = ТекСтрока.Уровень();
- Если стСтрока.Уровень = 1 тогда
- стСтрока.Родитель = ТекСтрока.Родитель.Представление;
- стСтрока.Вид = ТекСтрока.Вид;
- стСтрока.Имя = ТекСтрока.Имя;
- КонецЕсли;
-
- Возврат стСтрока;
-
-КонецФункции // СохранитьВыбраннуюСтроку
-
-///////////////////////////////////////////////////////////////////////////////
-Функция ВосстановитьВыбраннуюСтроку(стСтрока,Форма)
-
- ТекСтрока = Неопределено;
-
- Если стСтрока <> Неопределено тогда
- Если стСтрока.Уровень = 0 тогда
- ТекСтрока = ДеревоИнтерфейса.Строки.Найти(стСтрока.Представление, "Представление", Ложь);
- Иначе
- стрРодитель = ДеревоИнтерфейса.Строки.Найти(стСтрока.Родитель, "Представление", Ложь);
- Если стрРодитель <> Неопределено тогда
- стПоиск = Новый Структура("Вид,Имя", стСтрока.Вид, стСтрока.Имя);
- мСтроки = стрРодитель.Строки.НайтиСтроки(стПоиск, Ложь);
- Если мСтроки.Количество() > 0 тогда
- ТекСтрока = мСтроки[0];
- Иначе
- Если стрРодитель.Строки.Количество() > 0 тогда
- ТекСтрока = стрРодитель.Строки[0];
- Иначе
- ТекСтрока = стрРодитель;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- Если ТекСтрока <> Неопределено Тогда
- Форма.ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока = ТекСтрока;
- Возврат Истина;
- Иначе
- Возврат Ложь;
- КонецЕсли;
-
-КонецФункции
-
-///////////////////////////////////////////////////////////////////////////////
-Функция СохранитьРазвернутыеВетви(Форма)
-
- мВетви = Новый Массив;
-
- элДеревоИнтерфейса = Форма.ЭлементыФормы.ДеревоИнтерфейса;
-
- Для каждого стрВетвь из ДеревоИнтерфейса.Строки цикл
- // Пропустим статические
- Если НЕ СтатическиеВетки[стрВетвь] = Неопределено Тогда
- Продолжить;
- КонецЕсли;
-
- Если элДеревоИнтерфейса.Развернут(стрВетвь) тогда
- мВетви.Добавить(стрВетвь.Представление);
- КонецЕсли;
-
- КонецЦикла;
-
- Возврат мВетви;
-
-КонецФункции // СохранитьРазвернутыеВетви
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ВосстановитьРазвернутыеВетви(Знач мРазвернутыеВетви, Форма) Экспорт
-
- элДеревоИнтерфейса = Форма.ЭлементыФормы.ДеревоИнтерфейса;
- СтрокиДереваИнтерфейса = ДеревоИнтерфейса.Строки;
-
- Для каждого ПредставлениеВетви из мРазвернутыеВетви цикл
-
- стрВетвь = СтрокиДереваИнтерфейса.Найти(ПредставлениеВетви, "Представление", Ложь);
- Если стрВетвь <> Неопределено тогда
- элДеревоИнтерфейса.Развернуть(стрВетвь);
- КонецЕсли;
-
- КонецЦикла;
-
-КонецПроцедуры // ВосстановитьРазвернутыеВетви
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ДобавитьОбъект(СтрокиВетви, Знач МетаД, Знач ВидОбъекта, Знач ИндексКартинки)
-
- стрСтрока = СтрокиВетви.Добавить();
- стрСтрока.Вид = ВеткиМетаданных.НайтиПоЗначению(ВидОбъекта).Представление;
- стрСтрока.Имя = МетаД.Имя;
- стрСтрока.Представление = ?(ПустаяСтрока(МетаД.Синоним), МетаД.Имя, МетаД.Синоним);
- стрСтрока.ИндексКартинки = ИндексКартинки;
-
- спПодсистемы = Новый СписокЗначений;
- //Для каждого Подсистема из МетаД.Подсистемы цикл
- // ИмяПодсистемы = Подсистема.Имя;
- // спПодсистемы.Добавить(ИмяПодсистемы);
- //
- // стрПодсистема = дзВсеПодсистемы.Строки.Найти(ИмяПодсистемы, "Имя", Истина);
- // Пока стрПодсистема.Родитель <> Неопределено цикл
- // стрПодсистема = стрПодсистема.Родитель;
- //
- // Если спПодсистемы.НайтиПоЗначению(стрПодсистема.Имя) = Неопределено тогда
- // спПодсистемы.Добавить(стрПодсистема.Имя);
- // КонецЕсли;
- // КонецЦикла;
- //КонецЦикла;
- стрСтрока.Подсистемы = спПодсистемы;
-
-КонецПроцедуры // ДобавитьОбъект
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ДобавитьВетвьМетаданных(Ветвь, Знач ИмяВетви, Знач КартинкаВетви=0, Знач КартинкаОбъекта=0)
-
- стрВетвь = дзВсеОбъекты.Строки.Добавить();
- стрВетвь.Представление = ИмяВетви;
- стрВетвь.Имя = стрВетвь.Представление;
- стрВетвь.ИндексКартинки = КартинкаВетви;
-
- СтрокиВетви = стрВетвь.Строки;
- Для каждого МетаД из Ветвь цикл
- Попытка
- ЕстьПраво = ПравоДоступа("Просмотр", МетаД);
- Исключение
- Попытка
- ЕстьПраво = ПравоДоступа("Использование", МетаД);
- Исключение
- ЕстьПраво = Ложь;
- КонецПопытки;
- КонецПопытки;
- Если ЕстьПраво Тогда
- ДобавитьОбъект(СтрокиВетви, МетаД, ИмяВетви, КартинкаОбъекта);
- КонецЕсли;
- КонецЦикла;
-
-КонецПроцедуры // ДобавитьВетвьМетаданных
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ЗаполнитьДеревоВсехОбъектов() Экспорт
-
- дзВсеОбъекты = Новый ДеревоЗначений;
- дзВсеОбъекты.Колонки.Добавить("Имя");
- дзВсеОбъекты.Колонки.Добавить("Вид");
- дзВсеОбъекты.Колонки.Добавить("Представление");
- дзВсеОбъекты.Колонки.Добавить("ИндексКартинки");
- дзВсеОбъекты.Колонки.Добавить("Подсистемы");
- ДобавитьВетвьМетаданных(Метаданные.ОбщиеФормы, "Общие формы", 6, 7);
- ДобавитьВетвьМетаданных(Метаданные.Интерфейсы, "Интерфейсы", 54, 55);
- ДобавитьВетвьМетаданных(Метаданные.Константы, "Константы", 20, 0);
- ДобавитьВетвьМетаданных(Метаданные.Справочники, "Справочники", 2, 3);
- стрКорень = дзВсеОбъекты.Строки.Добавить();
- стрКорень.Представление = "Документы";
- стрКорень.Имя = стрКорень.Представление;
- стрКорень.ИндексКартинки = 12;
- СтрокиКорня = стрКорень.Строки;
- Для каждого МетаД из Метаданные.ЖурналыДокументов цикл
- Если ПравоДоступа("Просмотр", МетаД) тогда
- ДобавитьОбъект(СтрокиКорня, МетаД, "Журналы документов", 15);
- КонецЕсли;
- КонецЦикла;
- Для каждого МетаД из Метаданные.Документы цикл
- Если ПравоДоступа("Просмотр", МетаД) тогда
- ДобавитьОбъект(СтрокиКорня, МетаД, "Документы", 13);
- КонецЕсли;
- КонецЦикла;
- ДобавитьВетвьМетаданных(Метаданные.ПланыВидовХарактеристик, "Планы видов характеристик", 37, 38);
- ДобавитьВетвьМетаданных(Метаданные.ПланыСчетов, "Планы счетов", 39, 40);
- ДобавитьВетвьМетаданных(Метаданные.ПланыВидовРасчета, "Планы видов расчета", 47, 48);
- ДобавитьВетвьМетаданных(Метаданные.Отчеты, "Отчеты", 23, 24);
- ДобавитьВетвьМетаданных(Метаданные.Обработки, "Обработки", 18, 19);
- ДобавитьВетвьМетаданных(Метаданные.РегистрыСведений, "Регистры сведений", 33, 34);
- ДобавитьВетвьМетаданных(Метаданные.РегистрыНакопления, "Регистры накопления", 31, 32);
- ДобавитьВетвьМетаданных(Метаданные.РегистрыБухгалтерии, "Регистры бухгалтерии", 41, 42);
- ДобавитьВетвьМетаданных(Метаданные.Перечисления, "Перечисления", 9, 10);
- ДобавитьВетвьМетаданных(Метаданные.РегистрыРасчета, "Регистры расчета", 49, 50);
- ДобавитьВетвьМетаданных(Метаданные.БизнесПроцессы, "Бизнес-процессы", 43, 44);
- ДобавитьВетвьМетаданных(Метаданные.Задачи, "Задачи", 45, 46);
- ДобавитьВетвьМетаданных(Метаданные.ПланыОбмена, "Планы обмена", 51, 52);
- ВыводСодержимогоКаталогов(дзВсеОбъекты);
- ВыводСохраненныхВнешнихОбработок(дзВсеОбъекты);
- ВыводСохраненныхНастроекОтчетов(дзВсеОбъекты);
- СортироватьВторойУровеньДерева(дзВсеОбъекты);
-
-КонецПроцедуры // ЗаполнитьДеревоВсехОбъектов
-
-Процедура СортироватьВторойУровеньДерева(Дерево) Экспорт
-
- ИмяОсновногоПредставления = ПолучитьИмяОсновногоПредставления();
- Для каждого стрВетви из Дерево.Строки цикл
- стрВетви.Строки.Сортировать("Вид УБЫВ, " + ИмяОсновногоПредставления, Ложь);
- КонецЦикла;
-
-КонецПроцедуры
-
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ЗаполнитьДеревоИнтерфейса(Форма) Экспорт
-
- стСтрока = СохранитьВыбраннуюСтроку(Форма);
- мРазвернутыеВетви = СохранитьРазвернутыеВетви(Форма);
- ДеревоИнтерфейса.Строки.Очистить();
- ЗаполнитьСтатическиеВеткиДереваИнтерфейса(Форма);
- НачатьФоновыйПоиск(Форма);
- элДерево = Форма.ЭлементыФормы.ДеревоИнтерфейса;
- ТекущаяСтрокаУстановлена = ВосстановитьВыбраннуюСтроку(стСтрока, Форма);
- //Если НЕ (СтатическиеВетки[элДерево.ТекущаяСтрока] = Неопределено) И
- // элДерево.ТекущаяСтрока.Строки.Количество() > 0
- //Тогда
- // элДерево.ТекущаяСтрока = элДерево.ТекущаяСтрока.Строки[0];
- //КонецЕсли;
- //ВосстановитьРазвернутыеВетви(мРазвернутыеВетви, Форма);
- ИндексНачальнойСтроки = 4;
- ЧислоДинамическихСтрок = 0;
- ТаблицаТиповМетаОбъектов = мПлатформа.ТаблицаТиповМетаОбъектов;
- Счетчик = 1;
- Для Индекс = ИндексНачальнойСтроки По ДеревоИнтерфейса.Строки.Количество() - 1 Цикл
- СтрокаДерева = ДеревоИнтерфейса.Строки[Индекс];
- ВсеСтроки = ирОбщий.ВсеСтрокиДереваЗначенийЛкс(СтрокаДерева);
- Для Каждого ДочерняяСтрокаДерева Из ВсеСтроки Цикл
- СтрокаТипаМетаОбъектов = ТаблицаТиповМетаОбъектов.Найти(ДочерняяСтрокаДерева.Вид, "Множественное");
- Если Ложь
- Или СтрокаТипаМетаОбъектов = Неопределено
- //Или СтрокаТипаМетаОбъектов.Категория <> 0
- Тогда
- Продолжить;
- КонецЕсли;
- ДочерняяСтрокаДерева.ПолноеИмяОбъекта = "" + СтрокаТипаМетаОбъектов.Единственное + "." + ДочерняяСтрокаДерева.Имя;
- ДочерняяСтрокаДерева.Порядок = Счетчик;
- Счетчик = Счетчик + 1;
- //ОписаниеТаблицы = ирОбщий.ПолучитьОписаниеТаблицыБДИис(ДочерняяСтрокаДерева.ПолноеИмяОбъекта);
- //Если Истина
- // И ОписаниеТаблицы <> Неопределено
- // И ОписаниеТаблицы.КоличествоСтрок <> Неопределено
- //Тогда
- // ирОбщий.ДобавитьКоличествоСтрокРодителюЛкс(ДочерняяСтрокаДерева, ОписаниеТаблицы.КоличествоСтрок);
- //КонецЕсли;
- КонецЦикла;
- СтрокаДерева.Порядок = Счетчик;
- Счетчик = Счетчик + 1;
- ЧислоДинамическихСтрок = ЧислоДинамическихСтрок + ВсеСтроки.Количество();
- КонецЦикла;
- //ТекущаяСтрокаУстановлена = ТекущаяСтрокаУстановлена И элДерево.ТекущаяСтрока <> элДерево.Значение.Строки[ИндексНачальнойСтроки];
- Если ЧислоДинамическихСтрок > 0 Тогда
- Если ЧислоДинамическихСтрок <= 30 Тогда
- ирОбщий.ТабличноеПолеДеревоЗначений_РазвернутьВсеСтрокиЛкс(элДерево, ИндексНачальнойСтроки);
- Если Не ТекущаяСтрокаУстановлена Тогда
- элДерево.ТекущаяСтрока = элДерево.Значение.Строки[ИндексНачальнойСтроки].Строки[0];
- КонецЕсли;
- Иначе
- Если Не ТекущаяСтрокаУстановлена Тогда
- элДерево.ТекущаяСтрока = элДерево.Значение.Строки[ИндексНачальнойСтроки];
- КонецЕсли;
- КонецЕсли;
- Иначе
- Если Истина
- И Не ТекущаяСтрокаУстановлена
- И НЕ (СтатическиеВетки[элДерево.ТекущаяСтрока] = Неопределено)
- И элДерево.ТекущаяСтрока.Строки.Количество() > 0
- Тогда
- элДерево.ТекущаяСтрока = элДерево.ТекущаяСтрока.Строки[0];
- КонецЕсли;
- КонецЕсли;
- //ирОбщий.ЗаполнитьКоличествоСтрокТаблицВДеревеМетаданныхЛкс(ДеревоИнтерфейса);
-
-КонецПроцедуры
-
#Если Клиент Тогда
-
-Процедура ПрочитатьНастройки() Экспорт
-
- стНастройки = ирОбщий.ВосстановитьЗначениеЛкс("ирИнтерфейснаяПанель.Настройки");
-
- Если ТипЗнч(стНастройки) <> Тип("Структура") тогда
- стНастройки = Новый Структура;
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("ФильтрПодсистем") тогда
- стНастройки.Вставить("ФильтрПодсистем");
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("ФильтрИмен") тогда
- стНастройки.Вставить("ФильтрИмен");
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("ИсторияФильтраИмен") тогда
- стНастройки.Вставить("ИсторияФильтраИмен");
- стНастройки.ИсторияФильтраИмен = Новый Массив;
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("РазвернутыеСтроки") тогда
- стНастройки.Вставить("РазвернутыеСтроки");
- стНастройки.РазвернутыеСтроки = Новый Массив;
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("ВыбраннаяСтрока") тогда
- стНастройки.Вставить("ВыбраннаяСтрока");
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("СтатистикаИспользования") тогда
- стНастройки.Вставить("СтатистикаИспользования");
-
- тзСтатистикаИспользования = Новый ТаблицаЗначений;
- тзСтатистикаИспользования.Колонки.Добавить("Вид");
- тзСтатистикаИспользования.Колонки.Добавить("Имя");
- тзСтатистикаИспользования.Колонки.Добавить("КоличествоИспользований");
- тзСтатистикаИспользования.Колонки.Добавить("ПоследнееИспользование");
-
- стНастройки.СтатистикаИспользования = тзСтатистикаИспользования;
- КонецЕсли;
-
- // ДЛя произвольных статических веток
- Для каждого КлючЗначение Из МассивСтатическихВеток Цикл
- ИмяКолонки = КлючЗначение.Имя;
- Если стНастройки.СтатистикаИспользования.Колонки.Найти(ИмяКолонки) = Неопределено Тогда
- // Эта колонка была добавлена позже, ее может не быть в сохраненных настройках
- Попытка
- стНастройки.СтатистикаИспользования.Колонки.Добавить(ИмяКолонки);
- Исключение
- КонецПопытки;
- КонецЕсли;
- КонецЦикла;
-
- Если НЕ стНастройки.Свойство("Каталоги") тогда
- стНастройки.Вставить("Каталоги", Новый Соответствие);
- КонецЕсли;
-
- ///////////////////////////////////////////////////////////////////////////////
- // Параметры обработки
-
- Если НЕ стНастройки.Свойство("ИсторияКоманд") Тогда
- стНастройки.Вставить("ИсторияКоманд", ИсторияКоманд);
- КонецЕсли;
- Если НЕ стНастройки.Свойство("ИспользоватьРегулярныеВыражения") Тогда
- стНастройки.Вставить("ИспользоватьРегулярныеВыражения", ИспользоватьРегулярныеВыражения);
- КонецЕсли;
- Если стНастройки.ИспользоватьРегулярныеВыражения Тогда
- RegExp = Новый COMОбъект("VBScript.RegExp");
- RegExp.MultiLine = Ложь;
- RegExp.Global = Истина;
- RegExp.IgnoreCase = Истина;
- КонецЕсли;
-
-
- // Глобальный поиск
- Если НЕ стНастройки.Свойство("ПолнотекстовыйПоискПорогНечеткости") Тогда
- стНастройки.Вставить("ПолнотекстовыйПоискПорогНечеткости",ПолнотекстовыйПоискПорогНечеткости);
- КонецЕсли;
- Если НЕ стНастройки.Свойство("ПолнотекстовыйПоискРазмерПорции") Тогда
- стНастройки.Вставить("ПолнотекстовыйПоискРазмерПорции",ПолнотекстовыйПоискРазмерПорции);
- КонецЕсли;
-
- // Порядок форм
- Если НЕ стНастройки.Свойство("ПриАвтозапускеОткрыватьФормуСписка") Тогда
- стНастройки.Вставить("ПриАвтозапускеОткрыватьФормуСписка", ПриАвтозапускеОткрыватьФормуСписка);
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("флИспользоватьУмныйПоиск") Тогда
- стНастройки.Вставить("флИспользоватьУмныйПоиск", Ложь);
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("флИмяСиноним") Тогда
- стНастройки.Вставить("флИмяСиноним", флИмяСиноним);
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("флИскатьВПодкаталогах") Тогда
- стНастройки.Вставить("флИскатьВПодкаталогах", Истина);
- КонецЕсли;
-
- Если НЕ стНастройки.Свойство("флВложенныеПодсистемы") Тогда
- стНастройки.Вставить("флВложенныеПодсистемы", Истина);
- КонецЕсли;
-
-КонецПроцедуры // ЗагрузитьНастройки
-
-Процедура СохранитьНастройки(Форма) Экспорт
-
- стНастройки.ФильтрПодсистем = ФильтрПодсистем;
- стНастройки.ФильтрИмен = ФильтрИмен;
- стНастройки.РазвернутыеСтроки = СохранитьРазвернутыеВетви(Форма);
- стНастройки.ВыбраннаяСтрока = СохранитьВыбраннуюСтроку(Форма);
-
- мИсторияФильтраИмен = Новый Массив;
- Для каждого зн из Форма.ЭлементыФормы.ФильтрИмен.СписокВыбора цикл
- мИсторияФильтраИмен.Добавить(зн.Значение);
- КонецЦикла;
- стНастройки.ИсторияФильтраИмен = мИсторияФильтраИмен;
- ЗаполнитьЗначенияСвойств(стНастройки, ЭтотОбъект);
- ирОбщий.СохранитьЗначениеЛкс("ирИнтерфейснаяПанель.Настройки", стНастройки);
-
-КонецПроцедуры // СохранитьНастройки
-
-#КонецЕсли
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ОбновитьСтатистикуИспользования(стрОбъект, Форма) Экспорт
-
- ТекДата = ТекущаяДата();
-
- тзСтатистикаИспользования = стНастройки.СтатистикаИспользования;
-
- стПоиск = Новый Структура("Вид,Имя");
- стПоиск.Вид = стрОбъект.Вид;
- стПоиск.Имя = стрОбъект.Имя;
- мСтроки = тзСтатистикаИспользования.НайтиСтроки(стПоиск);
- Если мСтроки.Количество() = 0 тогда
- стрСтатистика = тзСтатистикаИспользования.Добавить();
- стрСтатистика.Вид = стрОбъект.Вид;
- стрСтатистика.Имя = стрОбъект.Имя;
- стрСтатистика.КоличествоИспользований = 1;
- стрСтатистика.ПоследнееИспользование = ТекДата;
- Иначе
- стрСтатистика = мСтроки[0];
- стрСтатистика.КоличествоИспользований = стрСтатистика.КоличествоИспользований + 1;
- стрСтатистика.ПоследнееИспользование = ТекДата;
- КонецЕсли;
-
- стНастройки.СтатистикаИспользования = тзСтатистикаИспользования;
-
- // Сохраним старую выделенную строку
- ТекСтрока = Форма.ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
- стСтрока = Неопределено;
- Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
- Если НЕ (СтатическиеВетки[ТекСтрока.Родитель] = Неопределено) тогда
- стСтрока = СохранитьВыбраннуюСтроку(Форма);
- КонецЕсли;
- КонецЦикла;
-
- ЗаполнитьСтатическиеВеткиДереваИнтерфейса(Форма);
-
- // Восстановим старую выделенную строку
- Если стСтрока <> Неопределено тогда
- ВосстановитьВыбраннуюСтроку(стСтрока, Форма);
- КонецЕсли;
-
-КонецПроцедуры // ОбновитьСтатистикуИспользования
-
-// Добавляет строку в статическую ветку (автозапуск, избранное и т.п.)
-//
-// Параметры
-// СтрокаДерева - строка дерева значений, которую требуется добавить в статическую ветку
-//
-Функция ДобавитьСтрокуВСтатическуюВетку(СтрокаДерева, ИмяКолонки) Экспорт
-
- тзСтатистикаИспользования = стНастройки.СтатистикаИспользования;
- СтрокаСтатическойВетки = тзСтатистикаИспользования.Добавить();
- ЗаполнитьЗначенияСвойств(СтрокаСтатическойВетки, СтрокаДерева);
- СтрокаСтатическойВетки[ИмяКолонки] = 1;
- Возврат СтрокаСтатическойВетки;
-
-КонецФункции //
// Открывает форму обработки.
// Предназначена для автооткрытия формы в 1С при запуске.
@@ -505,758 +22,7 @@
КонецФункции // Открыть()
-//////////////////////////////////////////////////////////////////////////////
-// проверяет условия с помощью регулярных выражений,
-// если НЕ ТолькоПроверка - заменяет выражение с помощью шаблона ШаблонЗамены и возвращает в переменной ИтоговаяСтрока
-Функция ПроверитьУсловие(СтрокаПоиска, ШаблонПоиска, ТолькоПроверка = Истина, ШаблонЗамены = "", ИтоговаяСтрока = "") Экспорт
-
- Попытка
- RegExp.Pattern = ШаблонПоиска;
- Найдено = RegExp.Test(СтрокаПоиска);
- Исключение
- //ирОбщий.СообщитьЛкс(ОписаниеОшибки());
- Возврат Ложь;
- КонецПопытки;
-
- Если Не Найдено Или ТолькоПроверка тогда
- ИтоговаяСтрока = "";
- возврат Найдено ;
- Иначе
- ИтоговаяСтрока = RegExp.Replace(СтрокаПоиска, ШаблонЗамены);
- возврат Найдено;
- КонецЕсли;
-
-КонецФункции // ПроверитьУсловие()
-
-Функция ПолучитьИмяОсновногоПредставления()
-
- Если флИмяСиноним Тогда
- ИмяКолонкиПредставления = "Имя";
- Иначе
- ИмяКолонкиПредставления = "Представление";
- КонецЕсли;
- Возврат ИмяКолонкиПредставления;
-
-КонецФункции
-
-///////////////////////////////////////////////////////////////////////////////
-Функция ОбъектПроходитФильтры(стрОбъект, Знач СтрокаПоиска = "", ПроверятьПодсистему = Ложь, ОбъектыВыбранныхПодсистем = Неопределено)
-
- Если СтрокаПоиска = "" Тогда
- СтрокаПоиска = мВременныйФильтрИмен;
- КонецЕсли;
-
- // Поиск - по представлению
- Если ТипЗнч(СтрОбъект) = Тип("СтрокаДереваЗначений") Тогда
- ИмяКолонкиПредставления = ПолучитьИмяОсновногоПредставления();
- Представление = стрОбъект[ИмяКолонкиПредставления];
- Иначе
- // В случае передачи имени файла
- Представление = стрОбъект;
- КонецЕсли;
-
- МассивФрагментов = ирОбщий.СтрРазделитьЛкс(СтрокаПоиска, " ", Истина);
- Для Каждого СтрокаПоиска Из МассивФрагментов Цикл
- // Собственно, поиск по подстроке
- Если НЕ ПустаяСтрока(СокрЛП(СтрокаПоиска)) Тогда
- Если Ложь
- Или (Истина
- И стНастройки.ИспользоватьРегулярныеВыражения
- И Не ПроверитьУсловие(Представление, СтрокаПоиска)) // Проверка регулярным выражением
- Или (Истина
- И Не стНастройки.ИспользоватьРегулярныеВыражения
- И Найти(НРег(Представление), НРег(СтрокаПоиска)) = 0) // Проверка обычным поиском
- Тогда
- // Полная строка не нашлась, попробуем найти строку без уточняющего суффикса
- Если флПробоватьУмныйПоиск = Истина Тогда
- Если Ложь
- Или (Истина
- И стНастройки.ИспользоватьРегулярныеВыражения
- И Не ПроверитьУсловие(Представление, СтрокаУмногоПоискаБезСуффикса)) // Проверка регулярным выражением
- Или (Истина
- И Не стНастройки.ИспользоватьРегулярныеВыражения
- И Найти(НРег(Представление), НРег(СтрокаУмногоПоискаБезСуффикса)) = 0) // Проверка обычным поиском
- Тогда
- Возврат Ложь;
- КонецЕсли
- Иначе
- Возврат Ложь;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
-
- // Отбор по подсистемам - самый медленный, оставим его напоследок
- Если Истина
- И ПроверятьПодсистему
- И ФильтрПодсистем.Количество() > 0
- Тогда
- // Убрать мусор, который не относится к подсистемам
- Если стрОбъект.Вид = "СправочникВнешниеОбработки" Тогда
- Возврат Ложь;
- КонецЕсли;
- Если ирКэш.НомерИзданияПлатформыЛкс() >= "82" Тогда
- ОбъектМД = Метаданные[стрОбъект.Вид][стрОбъект.Имя];
- Если ОбъектыВыбранныхПодсистем[ОбъектМД] = Неопределено тогда
- Возврат Ложь;
- КонецЕсли;
- Иначе
- Если Не ирОбщий.ЛиСпискиПодсистемПересекаютсяЛкс(ФильтрПодсистем, стрОбъект.Подсистемы) тогда
- Возврат Ложь;
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
-
- Возврат Истина;
-
-КонецФункции // ОбъектПроходитФильтры
-
-///////////////////////////////////////////////////////////////////////////////
-Процедура ЗаполнитьСтатическиеВеткиДереваИнтерфейса(Форма, УстановитьТекущуюСтроку = Неопределено) Экспорт
-
- Если УстановитьТекущуюСтроку <> Неопределено Тогда
- ИмяДляУстановкиТекущейСтроки = УстановитьТекущуюСтроку.Имя;
- КонецЕсли;
- Если СтатическиеВетки = Неопределено ИЛИ ДеревоИнтерфейса.Строки.Количество() = 0 Тогда
- СтатическиеВетки = Новый Соответствие();
- Для каждого ЭлементМассива Из МассивСтатическихВеток Цикл
- Если ЭлементМассива.Использовать = Истина Тогда
- СтрокаКорняСтатическойВетки = ДеревоИнтерфейса.Строки.Добавить();
- СтрокаКорняСтатическойВетки.Имя = ЭлементМассива.Имя;
- СтрокаКорняСтатическойВетки.Представление = ЭлементМассива.Представление;
- СтатическиеВетки.Вставить(СтрокаКорняСтатическойВетки, ЭлементМассива);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- элДеревоИнтерфейса = Форма.ЭлементыФормы.ДеревоИнтерфейса;
-
- // Для избежания дублей статистику надо свернуть
- тзСтатистикаИспользования = стНастройки.СтатистикаИспользования;
- СтрокаКолонокДляСвертки = "";
- Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
- Если СтатическаяВетка.Значение.РазрешитьПеретаскивание = Истина Тогда
- СтрокаКолонокДляСвертки = СтрокаКолонокДляСвертки + "," + СтатическаяВетка.Значение.Имя;
- КонецЕсли;
- КонецЦикла;
- тзСтатистикаИспользования.Свернуть("Вид,Имя,ПоследнееИспользование","КоличествоИспользований"+СтрокаКолонокДляСвертки);
-
- стПоиск = Новый Структура("Вид,Имя");
- Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
- Если СтатическаяВетка.Значение.Использовать = Ложь Тогда
- Продолжить;
- КонецЕсли;
-
- //
- тзСтатистикаИспользования.Сортировать(СтатическаяВетка.Значение.СтрокаСортировки);
-
- СтрокиКорня = СтатическаяВетка.Ключ.Строки;
- СтрокиКорня.Очистить();
-
- нВставленоПозиций = 0;
- Для каждого стрСтатистика из тзСтатистикаИспользования цикл
- ЗаполнитьЗначенияСвойств(стПоиск, стрСтатистика);
- Если СтатическаяВетка.Ключ.Строки.НайтиСтроки(стПоиск, Истина).Количество() = 0 Тогда
- Если нВставленоПозиций > СтатическаяВетка.Значение.КоличествоОтображаемыхЭлементов Тогда
- Прервать;
- КонецЕсли;
- ЗначениеСортировки = стрСтатистика[Лев(СтатическаяВетка.Значение.СтрокаСортировки,Найти(СтатическаяВетка.Значение.СтрокаСортировки, " ")-1)];
- Если ЗначениеСортировки = Неопределено ИЛИ ЗначениеСортировки = 0 ИЛИ ЗначениеСортировки = '00010101' // Попытка универсального подхода к отсечке пустых значений
- тогда
- Прервать;
- КонецЕсли;
-
- Если ирОбщий.ЛиСсылкаНаОбъектБДЛкс(стПоиск.Имя) Тогда
- //СсылкаПоИД = ПолучитьСсылкуПоУИД(стПоиск.Вид, стПоиск.Имя); // Попытка открыть результат полнотекстового поиска
- //Если СсылкаПоИД = Неопределено Тогда
- // Продолжить;
- //КонецЕсли;
- СсылкаПоИД = стПоиск.Имя;
- Представление = Строка(СсылкаПоИД);
- Если Истина
- И СтатическаяВетка.Значение.Фильтровать
- И НЕ ?(стНастройки.ИспользоватьРегулярныеВыражения,
- ПроверитьУсловие(Представление, мВременныйФильтрИмен),
- Найти(НРег(Представление), НРег(мВременныйФильтрИмен)) > 0)
- Тогда
- Продолжить;
- КонецЕсли;
-
- стрОбъектИнтерфейса = СтрокиКорня.Добавить();
- стрОбъектИнтерфейса.Вид = стПоиск.Вид;
- стрОбъектИнтерфейса.Имя = стПоиск.Имя;
- //стрОбъектИнтерфейса.Представление = Представление;
- стрОбъектИнтерфейса.Представление = стПоиск.Имя;
- стрОбъектИнтерфейса.ИндексКартинки = 62;
- Иначе
- // Обработка результатов полнотекстового поиска в случае, если они не видны
- мСтроки = дзВсеОбъекты.Строки.НайтиСтроки(стПоиск, Истина);
- Если мСтроки.Количество() = 0 тогда
- // Попытка поиска среди объектов - не метаданных (работает только с теми элементами, которые видны)
- мСтроки = ДеревоИнтерфейса.Строки.НайтиСтроки(стПоиск, Истина);
- Если мСтроки.Количество() = 0 тогда
- Продолжить;
- Иначе
- стрОбъект = мСтроки[0];
- ИндексКартинки = стрОбъект.ИндексКартинки;
- КонецЕсли;
- Иначе
- стрОбъект = мСтроки[0];
- ИндексКартинки = стрОбъект.ИндексКартинки;
- КонецЕсли;
- Если СтатическаяВетка.Значение.Фильтровать И НЕ ОбъектПроходитФильтры(стрОбъект) тогда
- Продолжить;
- КонецЕсли;
-
- стрОбъектИнтерфейса = СтрокиКорня.Добавить();
- стрОбъектИнтерфейса.Вид = стрОбъект.Вид;
- стрОбъектИнтерфейса.Имя = стрОбъект.Имя;
- стрОбъектИнтерфейса.Представление = стрОбъект.Представление;
- стрОбъектИнтерфейса.ИндексКартинки = ИндексКартинки;
- КонецЕсли;
-
- нВставленоПозиций = нВставленоПозиций + 1;
- КонецЕсли;
- КонецЦикла;
-
- Если НЕ ПустаяСтрока(СтатическаяВетка.Значение.СортировкаПриОтображении) Тогда
- СтрокиКорня.Сортировать(СтатическаяВетка.Значение.СортировкаПриОтображении);
- КонецЕсли;
-
- РазвернутьВетку = Ложь;
- Если СтатическаяВетка.Значение.Свойство("Развернуть", РазвернутьВетку) И РазвернутьВетку = Истина Тогда
-
- Если НЕ элДеревоИнтерфейса.Развернут(СтатическаяВетка.Ключ) тогда
- элДеревоИнтерфейса.Развернуть(СтатическаяВетка.Ключ);
- КонецЕсли;
-
- Иначе
-
- Если элДеревоИнтерфейса.Развернут(СтатическаяВетка.Ключ) тогда
- элДеревоИнтерфейса.Свернуть(СтатическаяВетка.Ключ);
- КонецЕсли;
-
- КонецЕсли;
-
- СтатическаяВетка.Ключ.Представление = СтатическаяВетка.Значение.Представление;
- СтатическаяВетка.Ключ.ИндексКартинки = -1;
- СтатическаяВетка.Ключ.Имя = СтатическаяВетка.Значение.Имя;
-
- КонецЦикла;
- Если ИмяДляУстановкиТекущейСтроки <> Неопределено Тогда
- НоваяТекущаяСтрока = ДеревоИнтерфейса.Строки.Найти(ИмяДляУстановкиТекущейСтроки, "Имя", Истина);
- Если НоваяТекущаяСтрока <> Неопределено Тогда
- элДеревоИнтерфейса.ТекущаяСтрока = НоваяТекущаяСтрока;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры // ЗаполнитьСтатическиеВеткиДереваИнтерфейса
-
-//////////////////
-// Фоновые команды
-
-Процедура НачатьФоновыйПоиск(Форма) Экспорт
-
- Если флИспользоватьУмныйПоиск Тогда
- КомандыПоиска.Добавить("ПоискПоМетаданным");
- Иначе
- ПоискПоМетаданным();
- КонецЕсли;
-
- КомандыПоиска.Добавить("ВыводСохраненныхНастроекОтчетов");
- КомандыПоиска.Добавить("ПолнотекстовыйПоиск");
-
- // Эти ветки теперь хранятся целиком в дзВсеОбъекты
- //КомандыПоиска.Добавить("ВыводСодержимогоКаталогов");
- //КомандыПоиска.Добавить("ВыводСохраненныхВнешнихОбработок");
-
- Форма.ПодключитьОбработчикОжидания("ФоновыйПоиск", 0.1, Истина);
-
-КонецПроцедуры
-
-Функция ВыполнитьФоновыйПоиск() Экспорт
-
- Если КомандыПоиска.Количество() > 0 Тогда
- Выполнить(КомандыПоиска[0]+"()");
- КомандыПоиска.Удалить(0);
- Возврат Истина
- КонецЕсли;
- Возврат Ложь;
-
-КонецФункции
-
-Процедура ПоискПоМетаданным()
- Перем НайденныйОбъект;
- ОбновитьФильтрУмногоПоиска();
- СтрокаНулей = "00000000000000";
- ОбъектыВыбранныхПодсистем = ирОбщий.ОбъектыПодсистемЛкс(ФильтрПодсистем);
- Для каждого стрКорень из дзВсеОбъекты.Строки цикл
-
- СтрокиКорня = Неопределено;
- Для каждого стрОбъект из стрКорень.Строки цикл
- Если НЕ ОбъектПроходитФильтры(стрОбъект,, ВеткиМетаданных.НайтиПоЗначению(стрКорень.Имя) <> Неопределено, ОбъектыВыбранныхПодсистем) тогда
- Продолжить;
- КонецЕсли;
-
- Если СтрокиКорня = Неопределено тогда
- стрКореньИнтерфейса = ДеревоИнтерфейса.Строки.Добавить();
- стрКореньИнтерфейса.Представление = стрКорень.Представление;
- стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
- стрКореньИнтерфейса.ИндексКартинки = стрКорень.ИндексКартинки;
-
- СтрокиКорня = стрКореньИнтерфейса.Строки;
- КонецЕсли;
-
- стрОбъектИнтерфейса = СтрокиКорня.Добавить();
- стрОбъектИнтерфейса.Вид = стрОбъект.Вид;
- стрОбъектИнтерфейса.Имя = стрОбъект.Имя;
- стрОбъектИнтерфейса.Представление = стрОбъект.Представление;
- стрОбъектИнтерфейса.ИндексКартинки = стрОбъект.ИндексКартинки;
-
- Если флПробоватьУмныйПоиск = Истина Тогда
- Попытка
- ОбъектМД = Метаданные[стрОбъект.Вид][стрОбъект.Имя];
- Исключение
- // Метаданные кончились
- Возврат
- КонецПопытки;
-
- Если Ложь
- Или стрОбъект.Вид = "Справочники"
- ИЛИ стрОбъект.Вид = "ПланыВидовХарактеристик"
- ИЛИ стрОбъект.Вид = "ПланыСчетов"
- ИЛИ стрОбъект.Вид = "ПланыВидовРасчета"
- ИЛИ стрОбъект.Вид = "Документы"
- ИЛИ стрОбъект.Вид = "БизнесПроцессы"
- ИЛИ стрОбъект.Вид = "Задачи"
- Тогда
- Если Ложь
- Или стрОбъект.Вид = "Справочники"
- ИЛИ стрОбъект.Вид = "ПланыВидовХарактеристик"
- ИЛИ стрОбъект.Вид = "ПланыСчетов"
- ИЛИ стрОбъект.Вид = "ПланыВидовРасчета"
- Тогда
- ДлинаКода = ОбъектМД.ДлинаКода;
- Если Истина
- И ДлинаКода > 0
- И (Ложь// Есть где искать по коду
- Или стрОбъект.Вид = "ПланыВидовХарактеристик" // Либо это план видов характеристик (только строковые коды)
- Или стрОбъект.Вид = "ПланыСчетов" // Либо это план счетов (только строковые коды)
- Или (ЧислоСуффиксаУмногоПоиска = 0 И Строка(ОбъектМД.ТипКода)="Строка") // Либо тип кода строковый
- Или (ЧислоСуффиксаУмногоПоиска>0 И Строка(ОбъектМД.ТипКода)="Число") // Искомый суффикс похож на число
- )
- Тогда
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоКоду(СтрокаСуффиксаУмногоПоиска)" );
- Если НЕ НайденныйОбъект.Пустая() Тогда
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
- КонецЕсли
- ИначеЕсли (ЧислоСуффиксаУмногоПоиска > 0 И Строка(ОбъектМД.ТипКода)="Строка") Тогда
- // Номер может быть частичным - автодополняем префиксами и нулями
- Для каждого Префикс Из МассивПрефиксовОрганизаций Цикл
- Для сч=0 По ДлинаКода-СтрДлина(Префикс)-ДлинаСуффиксаУмногоПоиска Цикл
- КодСПрефиксом = Префикс + Лев(СтрокаНулей, сч) + СтрокаСуффиксаУмногоПоиска;
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоКоду(КодСПрефиксом)" );
- Если НЕ НайденныйОбъект.Пустая() Тогда
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
- КонецЕсли
- КонецЦикла;
- КонецЦикла;
- КонецЕсли;
-
- Если ОбъектМД.ДлинаНаименования > 0 Тогда
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоНаименованию(СтрокаСуффиксаУмногоПоиска, Ложь" + ?(стрОбъект.Вид="ПланыСчетов", ", " + стрОбъект.Вид + "." + стрОбъект.Имя + ".ПустаяСсылка())", ")") );
- Если НЕ НайденныйОбъект.Пустая() Тогда
-
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
-
- КонецЕсли;
- КонецЕсли;
-
- ИначеЕсли Ложь
- Или стрОбъект.Вид = "Документы"
- ИЛИ стрОбъект.Вид = "БизнесПроцессы"
- ИЛИ стрОбъект.Вид = "Задачи"
- Тогда
- ДлинаНомера = ОбъектМД.ДлинаНомера ;
- Если ДлинаНомера > 0 И ((ЧислоСуффиксаУмногоПоиска>0 И Строка(ОбъектМД.ТипНомера) = "Число") ИЛИ (ЧислоСуффиксаУмногоПоиска=0 И Строка(ОбъектМД.ТипНомера)="Строка")) Тогда
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоНомеру("+?(стрОбъект.Вид="Задачи", "СтрокаСуффиксаУмногоПоиска)", "СтрокаСуффиксаУмногоПоиска, РабочаяДата)" ));
- Если НЕ НайденныйОбъект.Пустая() Тогда
-
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
-
- КонецЕсли;
-
- ИначеЕсли (ЧислоСуффиксаУмногоПоиска > 0 И Строка(ОбъектМД.ТипНомера)="Строка") Тогда
- // Номер может быть частичным - автодополняем префиксами и нулями
- Для каждого Префикс Из МассивПрефиксовОрганизаций Цикл
- Для сч=0 По ДлинаНомера - СтрДлина(Префикс)-ДлинаСуффиксаУмногоПоиска Цикл
- НомерСПрефиксом = Префикс + Лев(СтрокаНулей, сч) + СтрокаСуффиксаУмногоПоиска;
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоНомеру("+?(стрОбъект.Вид="Задачи", "НомерСПрефиксом)", "НомерСПрефиксом, РабочаяДата)" ));
- Если НЕ НайденныйОбъект.Пустая() Тогда
-
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
-
- КонецЕсли
- КонецЦикла;
- КонецЦикла;
-
- КонецЕсли;
-
- КонецЕсли;
-
- // Если поиск по коду, наименованию, номеру не удался, попробуем поискать по индексируемым реквизитам
- Для каждого РеквизитОбъектаМД Из ОбъектМД.Реквизиты Цикл
- Если РеквизитОбъектаМД.Индексирование <> Метаданные.СвойстваОбъектов.Индексирование.НЕИндексировать Тогда
- Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоРеквизиту(РеквизитОбъектаМД.Имя, СтрокаСуффиксаУмногоПоиска)");
- Если НЕ НайденныйОбъект.Пустая() Тогда
-
- СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
- //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
- СтрокаОбъекта.Имя = НайденныйОбъект;
- СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
- СтрокаОбъекта.Представление = НайденныйОбъект;
- СтрокаОбъекта.ИндексКартинки = 62;
- Продолжить
-
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
-
- КонецЕсли;
- КонецЦикла;
-
- КонецЦикла;
-
-
-КонецПроцедуры
-
-Процедура ВыводСодержимогоКаталогов(ДеревоОбъектов = Неопределено, СтрокаПоиска="")
-
-// Вывод содержимого каталогов
- Для каждого Каталог Из стНастройки.Каталоги Цикл
- СтрокиКорня = Неопределено;
- МассивНайденныхФайлов = НайтиФайлы(Каталог.Ключ, "*", флИскатьВПодкаталогах=Истина);
- Для каждого НайденныйФайл Из МассивНайденныхФайлов Цикл
- Расширение = ВРЕГ(НайденныйФайл.Расширение);
- Если Расширение = ".EPF" Тогда
- ВидФайла = "Внешние обработки";
- ИндексКартинки = 19; // 56;
- ИначеЕсли ВерсияПлатфомы >= "8.1" И Расширение = ".ERF" Тогда
- ВидФайла = "Внешние отчеты";
- ИндексКартинки = 19; // 57;
- ИначеЕсли Расширение = ".TXT" Тогда
- ВидФайла = "Текстовые документы";
- ИндексКартинки = 58;
- ИначеЕсли Расширение = ".MXL" Тогда
- ВидФайла = "Табличные документы";
- ИндексКартинки = 59;
- ИначеЕсли Расширение = ".RCF" Тогда
- ВидФайла = "Настройки консоли отчетов";
- ИндексКартинки = 60;
- ИначеЕсли Расширение = ".SEL" Тогда
- ВидФайла = "Настройки консоли запросов";
- ИндексКартинки = 61;
- Иначе
- Продолжить;
- КонецЕсли;
-
- Если НЕ ОбъектПроходитФильтры(НайденныйФайл.ИмяБезРасширения, СтрокаПоиска) Тогда
- Продолжить;
- КонецЕсли;
-
- Если СтрокиКорня = Неопределено тогда
- стрКореньИнтерфейса = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса.Строки.Добавить(), ДеревоОбъектов.Строки.Добавить()) ;
- стрКореньИнтерфейса.Представление = Каталог.Значение;
- стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
- стрКореньИнтерфейса.ИндексКартинки = 12;
- СтрокиКорня = стрКореньИнтерфейса.Строки;
- КонецЕсли;
- стрОбъектИнтерфейса = СтрокиКорня.Добавить();
- стрОбъектИнтерфейса.Вид = ВидФайла;
- стрОбъектИнтерфейса.Имя = НайденныйФайл.ПолноеИмя;
- стрОбъектИнтерфейса.Представление = НайденныйФайл.ИмяБезРасширения;
- стрОбъектИнтерфейса.ИндексКартинки = ИндексКартинки;
- КонецЦикла;
- КонецЦикла;
-
-КонецПроцедуры
-
-Процедура ВыводСохраненныхНастроекОтчетов(ДеревоОбъектов = Неопределено, СтрокаПоиска = "")
-
- // Вывод сохраненных настроек отчетов
- Если ЕстьУниверсальныйОтчет И Есть_РС_СохраненныеНастройки Тогда
- Запрос = Новый Запрос;
- Запрос.Текст = "ВЫБРАТЬ
- | СохраненныеНастройки.ИмяОбъекта КАК Вид,
- | СохраненныеНастройки.НаименованиеНастройки как Имя,
- | СохраненныеНастройки.НаименованиеНастройки как Представление,
- | 24 как ИндексКартинки
- |ИЗ
- | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
- |ГДЕ
- | Выразить(СохраненныеНастройки.ИмяОбъекта как Строка(12)) = ""ОтчетОбъект.""
- | И СохраненныеНастройки.Пользователь = &ТекущийПользователь";
-
- Запрос.УстановитьПараметр("ТекущийПользователь", мТекущийПользователь);
-
- РезультатЗапросаПоНастройкам = Запрос.Выполнить();
- Если НЕ РезультатЗапросаПоНастройкам.Пустой() Тогда
-
- СтрокаКорняОтчетов = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Найти("Отчеты");
- ВыборкаНастроек = РезультатЗапросаПоНастройкам.Выбрать();
- Пока ВыборкаНастроек.Следующий() Цикл
- Если НЕ ОбъектПроходитФильтры(ВыборкаНастроек.Представление, СтрокаПоиска) Тогда
- Продолжить;
- КонецЕсли;
-
- Если СтрокаКорняОтчетов = Неопределено Тогда
- стрКореньИнтерфейса = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Добавить();
- стрКореньИнтерфейса.Представление = "Отчеты";
- стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
- стрКореньИнтерфейса.ИндексКартинки = 23;
- СтрокиКорня = стрКореньИнтерфейса.Строки;
- Иначе
- СтрокиКорня = СтрокаКорняОтчетов.Строки;
- КонецЕсли;
-
- ИмяОтчета = Сред(ВыборкаНастроек.Вид, Найти(ВыборкаНастроек.Вид, ".")+1);
- СтрокаОтчетаДляНастройки = СтрокиКорня.Найти(ИмяОтчета, "Имя", Истина);
- Если СтрокаОтчетаДляНастройки = Неопределено Тогда
- МДОтчет = Метаданные.Отчеты.Найти(ИмяОтчета);
- Если МДОтчет = Неопределено Тогда
- // Случай, когда в регистре сведний хранится название уже несуществующего отчета
- Продолжить;
- Иначе
- СтрокаОтчетаДляНастройки = СтрокиКорня.Добавить();
- СтрокаОтчетаДляНастройки.Вид = "Отчеты";
- СтрокаОтчетаДляНастройки.Имя = ИмяОтчета;
- СтрокаОтчетаДляНастройки.Представление = МДОтчет.Синоним;
- СтрокаОтчетаДляНастройки.ИндексКартинки = 23;
- КонецЕсли;
- КонецЕсли;
- стрОбъектИнтерфейса = СтрокаОтчетаДляНастройки.Строки.Добавить();
- ЗаполнитьЗначенияСвойств(стрОбъектИнтерфейса, ВыборкаНастроек);
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-Процедура ВыводСохраненныхВнешнихОбработок(ДеревоОбъектов = Неопределено, СтрокаПоиска = "")
-
- // Вывод сохраненных внешних обработок
- Если ЕстьСправочникВнешнихОбработок Тогда
- Если Не ПравоДоступа("Чтение", Метаданные.Справочники.ВнешниеОбработки) Тогда
- Возврат;
- КонецЕсли;
- Запрос = Новый Запрос;
- Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | Наименование как Представление, Код как Имя, ""СправочникВнешниеОбработки"" как Вид,
- | 19 как ИндексКартинки
- |ИЗ
- | Справочник.ВнешниеОбработки";
-
- РезультатЗапросаПоСправочникуОбработок = Запрос.Выполнить();
- Если НЕ РезультатЗапросаПоСправочникуОбработок.Пустой() Тогда
- ПредставлениеКорняВнешнихОбработок = "Справочник ""Внешние обработки""";
- СтрокаКорняВнешнихОбработок = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Найти(ПредставлениеКорняВнешнихОбработок);
- Если СтрокаКорняВнешнихОбработок = Неопределено Тогда
- СтрокаКорняВнешнихОбработок = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Добавить();
- СтрокаКорняВнешнихОбработок.Представление = ПредставлениеКорняВнешнихОбработок;
- СтрокаКорняВнешнихОбработок.Имя = СтрокаКорняВнешнихОбработок.Представление;
- СтрокаКорняВнешнихОбработок.ИндексКартинки = 18;
- КонецЕсли;
- СтрокиКорня = СтрокаКорняВнешнихОбработок.Строки;
- ВыборкаПоСправочникуВнешнихОбработок = РезультатЗапросаПоСправочникуОбработок.Выбрать();
- Пока ВыборкаПоСправочникуВнешнихОбработок.Следующий() Цикл
- Если ОбъектПроходитФильтры(ВыборкаПоСправочникуВнешнихОбработок.Представление, СтрокаПоиска) Тогда
- стрОбъектИнтерфейса = СтрокаКорняВнешнихОбработок.Строки.Добавить();
- ЗаполнитьЗначенияСвойств(стрОбъектИнтерфейса, ВыборкаПоСправочникуВнешнихОбработок);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-//////////////////////////////////////////////////////////////////////////////
-// Глобальный поиск
-
-Процедура ПолнотекстовыйПоиск()
-
- // Полнотекстовый поиск по данным ИБ
- Если ПолнотекстовыйПоискВыполнен() Тогда
- КоличествоРезультатовПоиска = мСписокПолнотекстовогоПоиска.Количество();
- ПолноеКоличествоРезультатовПоиска = мСписокПолнотекстовогоПоиска.ПолноеКоличество();
- ПредставлениеКорняПолнотекстовогоПоиска = "Полнотекстовый поиск (" + КоличествоРезультатовПоиска + " из " + ПолноеКоличествоРезультатовПоиска + ")";
- СтрокаКорня = ДеревоИнтерфейса.Строки.Найти(ПредставлениеКорняПолнотекстовогоПоиска);
- Если СтрокаКорня = Неопределено Тогда
- СтрокаКорня = ДеревоИнтерфейса.Строки.Добавить();
- СтрокаКорня.Представление = ПредставлениеКорняПолнотекстовогоПоиска;
- СтрокаКорня.Имя = СтрокаКорня.Представление;
- СтрокаКорня.ИндексКартинки = 62;
- КонецЕсли;
- СтрокиКорня = СтрокаКорня.Строки;
- Если мСписокПолнотекстовогоПоиска.НачальнаяПозиция() > 0 Тогда
- // Строка возврата назад
- КонецЕсли;
- Для сч = 0 По КоличествоРезультатовПоиска-1 Цикл
- стрОбъектИнтерфейса = СтрокиКорня.Добавить();
- ЭлементСпискаПолнотекстовогоПоиска = мСписокПолнотекстовогоПоиска.Получить(сч);
- //стрОбъектИнтерфейса.Имя = ЭлементСпискаПолнотекстовогоПоиска.Значение.УникальныйИдентификатор();
- стрОбъектИнтерфейса.Имя = ЭлементСпискаПолнотекстовогоПоиска.Значение;
- стрОбъектИнтерфейса.Вид = ЭлементСпискаПолнотекстовогоПоиска.Метаданные.ПолноеИмя();
- стрОбъектИнтерфейса.Представление = "" + ЭлементСпискаПолнотекстовогоПоиска.Метаданные + ":" + ЭлементСпискаПолнотекстовогоПоиска.Представление;
- стрОбъектИнтерфейса.ИндексКартинки = 62;
- КонецЦикла;
- КонецЕсли;
-
-КонецПроцедуры
-
-Функция ПолнотекстовыйПоискВыполнен()
- Если ФильтрИмен = "" ИЛИ мСписокПолнотекстовогоПоиска = Неопределено Тогда
- Возврат Ложь;
- КонецЕсли;
- МассивМД = Новый Массив();
- Если ФильтрПодсистем.Количество() > 0 Тогда
- //ПодсистемаФильтра = Метаданные.Подсистемы.Найти(ФильтрПодсистем);
- //Для каждого ВидМД Из ВеткиМетаданных Цикл
- // Если
- // ВидМД.Значение = "Справочники" ИЛИ
- // ВидМД.Значение = "Документы"ИЛИ
- // ВидМД.Значение = "ПланыВидовХарактеристик"ИЛИ
- // ВидМД.Значение = "ПланыСчетов"ИЛИ
- // ВидМД.Значение = "ПланыВидовРасчета"ИЛИ
- // ВидМД.Значение = "БизнесПроцессы"ИЛИ
- // ВидМД.Значение = "Задачи"ИЛИ
- // ВидМД.Значение = "ПланыОбмена"
- //
- // Тогда
- // Для Каждого МД Из Метаданные[ВидМД.Представление] Цикл
- // Если МД.Подсистемы.Содержит(ПодсистемаФильтра) Тогда
- // МассивМД.Добавить(МД);
- // КонецЕсли;
- // КонецЦикла;
- // КонецЕсли;
- //КонецЦикла;
- Иначе
- Для каждого ВидМД Из ВеткиМетаданных Цикл
- Если
- ВидМД.Значение = "Справочники" ИЛИ
- ВидМД.Значение = "Документы"ИЛИ
- ВидМД.Значение = "ПланыВидовХарактеристик"ИЛИ
- ВидМД.Значение = "ПланыСчетов"ИЛИ
- ВидМД.Значение = "ПланыВидовРасчета"ИЛИ
- ВидМД.Значение = "БизнесПроцессы"ИЛИ
- ВидМД.Значение = "Задачи"ИЛИ
- ВидМД.Значение = "ПланыОбмена"
-
- Тогда
- Для Каждого МД Из Метаданные[ВидМД.Представление] Цикл
- МассивМД.Добавить(МД);
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- мСписокПолнотекстовогоПоиска.ОбластьПоиска = МассивМД;
-
- мСписокПолнотекстовогоПоиска.ПорогНечеткости = стНастройки.ПолнотекстовыйПоискПорогНечеткости;
-
- мСписокПолнотекстовогоПоиска.СтрокаПоиска = ФильтрИмен;
- мСписокПолнотекстовогоПоиска.РазмерПорции = стНастройки.ПолнотекстовыйПоискРазмерПорции;
- мСписокПолнотекстовогоПоиска.ПерваяЧасть();
- Возврат мСписокПолнотекстовогоПоиска.ПолноеКоличество()>0;
-КонецФункции
-
-///////////////////////////////////////////////////////
-// Служебные процедуры и функции
-
-// Устанавливает переменные умного поиска для дальнейшего использования
-//
-Процедура ОбновитьФильтрУмногоПоиска(Принудительно=Ложь) Экспорт
-
- Если МассивПрефиксовОрганизаций = Неопределено Тогда
- МассивПрефиксовОрганизаций = Новый Массив;
- КонецЕсли;
- Если стНастройки.флИспользоватьУмныйПоиск = Истина Тогда
- Если НЕ Принудительно И ЗначениеЗаполнено(мСловаСтрокиУмногоПоиска) и Лев(ФильтрИмен, СтрДлина(мСловаСтрокиУмногоПоиска[0]))=мСловаСтрокиУмногоПоиска[0] Тогда
- Возврат
- КонецЕсли;
- мСловаСтрокиУмногоПоиска = ирОбщий.СтрРазделитьЛкс(ФильтрИмен, " ", Истина, Ложь);
- КоличествоСлов = мСловаСтрокиУмногоПоиска.Количество();
- Если КоличествоСлов>1 Тогда
- СтрокаУмногоПоискаБезСуффикса = "";
- Для сч=0 По КоличествоСлов-2 Цикл
- СтрокаУмногоПоискаБезСуффикса = ?(ПустаяСтрока(СтрокаУмногоПоискаБезСуффикса), "", СтрокаУмногоПоискаБезСуффикса + " ") + мСловаСтрокиУмногоПоиска[сч];
- КонецЦикла;
- СтрокаСуффиксаУмногоПоиска = мСловаСтрокиУмногоПоиска[КоличествоСлов-1];
- ДлинаСуффиксаУмногоПоиска = СтрДлина(СтрокаСуффиксаУмногоПоиска);
- Попытка
- ЧислоСуффиксаУмногоПоиска = Число(СокрЛП(СтрокаСуффиксаУмногоПоиска));
- Исключение
- ЧислоСуффиксаУмногоПоиска = 0;
- КонецПопытки;
- флПробоватьУмныйПоиск = Истина;
- Иначе
- мСловаСтрокиУмногоПоиска = Неопределено;
- СтрокаУмногоПоискаБезСуффикса = "";
- СтрокаСуффиксаУмногоПоиска = "";
- флПробоватьУмныйПоиск = Ложь;
- КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры // ОбновитьФильтрУмногоПоиска()
-
-// Простейший вывод таблицы значений в табличный документ
-//
-// Параметры
-// ТЗ - таблица значений
-//
-// Возвращаемое значение:
-// Сформированный табличный документ
-//
-Функция ВывестиТЗвТД(ТЗ, Показывать = Ложь, Заголовок = "Таблица значений") Экспорт
- _ПостроительОтчета = Новый ПостроительОтчета;
- _ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
- _ПостроительОтчета.ЗаполнитьНастройки();
- _ТД = Новый ТабличныйДокумент;
- _ПостроительОтчета.Вывести(_ТД);
- Если Показывать Тогда
- _ТД.Показать(Заголовок);
- КонецЕсли;
- Возврат _ТД;
-КонецФункции // ВывестиТЗвТД()
+#КонецЕсли
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
@@ -1274,204 +40,3 @@
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// РАЗДЕЛ НАСТРОЕК
-
-ИсторияКоманд = 50;
-ИспользоватьРегулярныеВыражения = Истина;
-ПолнотекстовыйПоискПорогНечеткости = 0;
-ПолнотекстовыйПоискРазмерПорции = 0; // Если 0 - то полнотекстовый поиск отключен
-
- //////////////////////////////////////////////////////////////////////////////////////////////
- // Соответствие статических веток (История использования и Избранное) и настроек для них
- //Представление, - отображение в интерфейсе
- //СтрокаСортировки, - строка сортировки в таблице статистики
- //КоличествоОтображаемыхЭлементов, - сколько элементов выводить
- //Фильтровать - фильтровать ли данную ветку вместе с деревом
-
- МассивСтатическихВеток = Новый Массив;
-
- //// Быстрый поиск
- //МассивСтатическихВеток.Добавить(Новый Структура(
- // "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
- // "БыстрыйПоиск",
- // Истина, // Использовать ли данную ветку
- // "Быстрый поиск", // Представление ветки в дереве
- // "БыстрыйПоиск УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
- // 5, // Количество элементов, отображаемых в данной ветке
- // Истина, // Фильтровать ли ветку при непустой строке фильтра
- // "", // не сортировать
- // Ложь, // Разрешить перетаскивание
- // Ложь // Автозапуск команд в данной ветке при открытии обработки
- // ,Истина // Ветка развернута
- // )
- // );
-
- // Недавние
- МассивСтатическихВеток.Добавить(Новый Структура(
- "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
- "НедавноИспользованные",
- Истина, // Использовать ли данную ветку
- "Недавно использованные", // Представление ветки в дереве
- "ПоследнееИспользование УБЫВ", // Строка сортировки статистической таблицы. Сортировка определяет, какие элементы выводятся
- 10, // Количество элементов, отбражаемых в данной ветке
- Ложь, // Фильтровать ли ветку при непустой строке фильтра
- // Сортировка отображаемых элементов
- // "Вид,Имя" - обычная сортировка
- "", // сортировка по дате использования
- Ложь, // Перетаскивание
- Ложь // Автозапуск
- ,Ложь // Ветка свернута
- )
- );
- // Часто используемые
- МассивСтатическихВеток.Добавить(Новый Структура(
- "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
- "ЧастоИспользуемые",
- Истина,
- "Часто используемые",
- "КоличествоИспользований УБЫВ,ПоследнееИспользование",
- 10,
- Ложь,
- // Сортировка отображаемых элементов
- "Вид,Имя",
- Ложь, // Перетаскивание
- Ложь // Автозапуск
- ,Ложь // Ветка свернута
- )
- );
- // Избранное
- МассивСтатическихВеток.Добавить(Новый Структура(
- "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
- "Избранное",
- Истина, // Использовать ли данную ветку
- "Избранное", // Представление ветки в дереве
- "Избранное УБЫВ",
- 10,
- Ложь,
- // Сортировка отображаемых элементов
- "Вид,Имя",
- Истина, // Перетаскивание
- Ложь // Автозапуск
- ,Ложь // Ветка свернута
- )
- );
- // Автозапуск
- МассивСтатическихВеток.Добавить(Новый Структура(
- "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
- "Автозапуск",
- Истина, // Использовать ли данную ветку
- "Автозапуск", // Представление ветки в дереве
- "Автозапуск УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
- 10, // Количество элементов, отображаемых в данной ветке
- Ложь, // Фильтровать ли ветку при непустой строке фильтра
- "", // не сортировать
- Истина, // Разрешить перетаскивание
- Истина // Автозапуск команд в данной ветке при открытии обработки
- ,Ложь // Ветка свернута
- )
- );
-// Пример пользовательской статической ветки (раскомментируйте и добавьте необходимое количество экземпляров)
- //СтатическиеВетки.Вставить(ДеревоИнтерфейса.Строки.Добавить(), Новый Структура(
- // "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск",
- // "МойСборникКоманд", // Представление ветки в дереве
- // Истина, // Использовать ли данную ветку
- // "Мой сборник команд", // Представление ветки в дереве
- // "МойСборникКоманд УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
- // 10, // Количество элементов, отображаемых в данной ветке
- // Ложь, // Фильтровать ли ветку при непустой строке фильтра
- // "", // не сортировать
- // Истина, // Разрешить перетаскивание
- // Ложь // Автозапуск команд в данной ветке при открытии обработки
- // )
- // );
- //
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// ИНИЦИАЛИЗАЦИЯ ОБРАБОТКИ
-
-
-КолонкиДерева = ДеревоИнтерфейса.Колонки;
-Если КолонкиДерева.Найти("Представление") = Неопределено Тогда
- КолонкиДерева.Добавить("Представление");
- КолонкиДерева.Добавить("Имя");
- КолонкиДерева.Добавить("Вид");
- КолонкиДерева.Добавить("ИндексКартинки");
- КолонкиДерева.Добавить("ПолноеИмяОбъекта");
- КолонкиДерева.Добавить("КоличествоСтрок");
- КолонкиДерева.Добавить("Порядок");
-КонецЕсли;
-мПлатформа = ирКэш.Получить();
-КомандыПоиска = Новый Массив();
-
-ВеткиМетаданных = Новый СписокЗначений;
-ВеткиМетаданных.Добавить("Общие формы", "ОбщиеФормы");
-ВеткиМетаданных.Добавить("Интерфейсы", "Интерфейсы");
-ВеткиМетаданных.Добавить("Константы", "Константы");
-ВеткиМетаданных.Добавить("Справочники", "Справочники");
-ВеткиМетаданных.Добавить("Перечисления", "Перечисления");
-ВеткиМетаданных.Добавить("Документы", "Документы");
-ВеткиМетаданных.Добавить("Журналы документов", "ЖурналыДокументов");
-ВеткиМетаданных.Добавить("Отчеты", "Отчеты");
-ВеткиМетаданных.Добавить("Обработки", "Обработки");
-ВеткиМетаданных.Добавить("Планы видов характеристик", "ПланыВидовХарактеристик");
-ВеткиМетаданных.Добавить("Регистры сведений", "РегистрыСведений");
-ВеткиМетаданных.Добавить("Регистры накопления", "РегистрыНакопления");
-ВеткиМетаданных.Добавить("Планы счетов", "ПланыСчетов");
-ВеткиМетаданных.Добавить("Планы видов расчета", "ПланыВидовРасчета");
-ВеткиМетаданных.Добавить("Регистры бухгалтерии", "РегистрыБухгалтерии");
-ВеткиМетаданных.Добавить("Регистры расчета", "РегистрыРасчета");
-ВеткиМетаданных.Добавить("Бизнес-процессы", "БизнесПроцессы");
-ВеткиМетаданных.Добавить("Задачи","Задачи");
-ВеткиМетаданных.Добавить("Планы обмена", "ПланыОбмена");
-
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени = Новый Соответствие;
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ОбщиеФормы", "ОбщаяФорма");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Интерфейсы","Интерфейс");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Константы","Константа");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Справочники","Справочник");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Перечисления","Перечисление");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Документы","Документ");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ЖурналыДокументов","ЖурналДокументов");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Отчеты","Отчет");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Обработки","Обработка");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ПланыВидовХарактеристик", "ПланВидовХарактеристик");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("РегистрыСведений","РегистрСведений");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("РегистрыНакопления","РегистрНакопления");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ПланыСчетов","ПланСчетов");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ПланыВидовРасчета","ПланВидовРасчета");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("РегистрыБухгалтерии","РегистрБухгалтерии");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("РегистрыРасчета","РегистрРасчета");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("БизнесПроцессы","БизнесПроцесс");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("Задачи","Задача");
-СоответствиеВидовМетаданныхДляПоискаПолногоИмени.Вставить("ПланыОбмена","ПланОбмена");
-
-ЕстьУниверсальныйОтчет = (Метаданные.Отчеты.Найти("УниверсальныйОтчет") <> Неопределено);
-Есть_РС_СохраненныеНастройки = (Метаданные.РегистрыСведений.Найти("СохраненныеНастройки") <> Неопределено);
-//Есть_СправочникОрганизаций = (Метаданные.Справочники.Найти("Организации") <> Неопределено);
-ЕстьСправочникВнешнихОбработок = (Метаданные.Справочники.Найти("ВнешниеОбработки") <> Неопределено);
-ИмяКорневойПодсистемы = "Конфигурация." + Метаданные.Имя;
-
-Если Метаданные.ПараметрыСеанса.Найти("ТекущийПользователь") = Неопределено Тогда
- мТекущийПользователь = Неопределено;
-Иначе
- Попытка
- мТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
- Исключение
- КонецПопытки;
-КонецЕсли;
-
-СистемнаяИнформация = Новый СистемнаяИнформация;
-ВерсияПлатфомы = Лев(СистемнаяИнформация.ВерсияПриложения,3);
-Если Истина
- И ПолнотекстовыйПоискРазмерПорции > 0 // Включен
- И ВерсияПлатфомы >= "8.1" // и платформа позволяет
-Тогда
- Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() = РежимПолнотекстовогоПоиска.Разрешить Тогда
- мСписокПолнотекстовогоПоиска = ПолнотекстовыйПоиск.СоздатьСписок();
- мСписокПолнотекстовогоПоиска.ПолучатьОписание = Ложь;
- КонецЕсли;
-КонецЕсли;
-
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form.bin b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form.bin
index 375f1ec3a..6d996e8cc 100644
Binary files a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form.bin and b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form.bin differ
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/Module.bsl b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/Module.bsl
index c5c7eb59b..11dee873c 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/Module.bsl
+++ b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/Module.bsl
@@ -1,9 +1,6 @@
Процедура КнопкаОКНажатие(Кнопка)
- ЗаполнитьЗначенияСвойств(стНастройки, ЭтотОбъект);
- ЗаполнитьДеревоВсехОбъектов();
- ВыполнитьФоновыйПоиск();
- Закрыть();
+ Закрыть(Истина);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/form.txt b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/form.txt
index ec7021358..dd9b5be56 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/form.txt
+++ b/DataProcessors/ирИнтерфейснаяПанель/Forms/Настройка/Ext/Form/form.txt
@@ -68,13 +68,13 @@
{2,8,1,1,1,0,0,0,0},
{2,33,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
-{2,201,0,1,4,0,0,33,0},0,4294967295,5,64,0,
+{2,135,0,1,4,0,0,33,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0,0},
{0}
},
-{13,
+{7,
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,1,
{1,
{
@@ -112,7 +112,7 @@
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
-{8,8,79,392,95,1,
+{8,8,33,392,49,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
@@ -138,322 +138,10 @@
{2,-1,6,0}
},1,
{0,1,1},0,1,
-{0,1,3},0,0,0,0,0,7,0,0},
+{0,1,3},0,0,0,0,0,2,0,0},
{14,"ИспользоватьРегулярныеВыражения",4294967295,0,0,0},
{0}
},
-{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,2,
-{3,
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,0,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,0,
-{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0},0,0,100,0,0},11,
-{1,1,
-{"ru","Порог нечеткости, %:"}
-},0,1,0,0,0,
-{0,0,0},0,
-{1,0},1,
-{8,0,
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},100,2,0,0},4,0,0,0,0,0,0,0},
-{0}
-},
-{8,19,48,128,67,1,
-{0,
-{2,12,0,15},
-{2,-1,6,0}
-},
-{0,
-{2,2,0,19},
-{2,-1,6,0}
-},
-{0,
-{2,12,2,11},
-{2,-1,6,0}
-},
-{0,
-{2,2,2,109},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},1,
-{0,2,1},0,1,
-{0,2,3},0,0,0,0,1,3,0,0},
-{14,"НадписьПолнотекстовыйПоискПорогНечеткости",4294967295,0,0,0},
-{0}
-},
-{381ed624-9217-4e63-85db-c4c3cb87daae,3,
-{9,
-{"Pattern",
-{"N",10,0,1}
-},
-{
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,0,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,1,
-{-18},0,0,0},
-{1,1,
-{"ru","Полнотекстовый поиск.Порог нечеткости"}
-},0,0,100,0,0},30,0,0,0,0,1,0,0,0,0,1,0,0,10,0,1,4,0,
-{"N",0},
-{"N",100},"",0,1,0,0,0,0,
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},0,0,0,
-{0,0,0},
-{1,0},0,0,0,0,0,0,0,16777215,2}
-},
-{1,
-{9a7643d2-19e9-45e2-8893-280bc9195a97,
-{4,
-{"N",0},
-{"N",100},0,"",0,0}
-}
-},
-{0},0,1,0,
-{1,0},0},
-{8,130,48,178,67,1,
-{0,
-{2,12,0,15},
-{2,-1,6,0}
-},
-{0,
-{2,3,0,19},
-{2,-1,6,0}
-},
-{0,
-{2,12,2,122},
-{2,-1,6,0}
-},
-{0,
-{2,3,2,48},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},1,
-{0,3,1},0,1,
-{0,3,3},0,0,0,0,2,4,0,0},
-{14,"ПолнотекстовыйПоискПорогНечеткости",4294967295,0,0,0},
-{0}
-},
-{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4,
-{3,
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,0,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,0,
-{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0},0,0,100,0,0},11,
-{1,1,
-{"ru","Размер порции:"}
-},0,1,0,0,0,
-{0,0,0},0,
-{1,0},1,
-{8,0,
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},100,2,0,0},4,0,0,0,0,0,0,0},
-{0}
-},
-{8,197,48,281,67,1,
-{0,
-{2,12,0,15},
-{2,-1,6,0}
-},
-{0,
-{2,4,0,19},
-{2,-1,6,0}
-},
-{0,
-{2,12,2,189},
-{2,-1,6,0}
-},
-{0,
-{2,4,2,84},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},1,
-{0,4,1},0,1,
-{0,4,3},0,0,0,0,3,5,0,0},
-{14,"НадписьПолнотекстовыйПоискРазмерПорции",4294967295,0,0,0},
-{0}
-},
-{381ed624-9217-4e63-85db-c4c3cb87daae,5,
-{9,
-{"Pattern",
-{"N",10,0,1}
-},
-{
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,0,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,1,
-{-18},0,0,0},
-{1,1,
-{"ru","Полнотекстовый поиск. Размер порции (количество объектов)"}
-},0,0,100,0,0},30,0,0,0,0,1,0,0,0,0,1,0,0,10,0,1,4,0,
-{"U"},
-{"U"},"",0,1,0,0,0,0,
-{4,0,
-{0},"",-1,-1,1,0,""},
-{4,0,
-{0},"",-1,-1,1,0,""},0,0,0,
-{0,0,0},
-{1,0},0,0,0,0,0,0,0,16777215,2}
-},
-{1,
-{9a7643d2-19e9-45e2-8893-280bc9195a97,
-{4,
-{"U"},
-{"U"},0,"",0,0}
-}
-},
-{0},0,1,0,
-{1,0},0},
-{8,287,48,334,67,1,
-{0,
-{2,12,0,15},
-{2,-1,6,0}
-},
-{0,
-{2,5,0,19},
-{2,-1,6,0}
-},
-{0,
-{2,12,2,279},
-{2,-1,6,0}
-},
-{0,
-{2,5,2,47},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},1,
-{0,5,1},0,1,
-{0,5,3},0,0,0,0,4,6,0,0},
-{14,"ПолнотекстовыйПоискРазмерПорции",4294967295,0,0,0},
-{0}
-},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,6,
{1,
{
@@ -491,7 +179,7 @@
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
-{8,8,101,392,117,1,
+{8,8,55,392,71,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
@@ -517,7 +205,7 @@
{2,-1,6,0}
},1,
{0,6,1},0,1,
-{0,6,3},0,0,0,0,5,8,0,0},
+{0,6,3},0,0,0,0,1,3,0,0},
{14,"ПриАвтозапускеОткрыватьФормуСписка",4294967295,0,0,0},
{0}
},
@@ -549,8 +237,8 @@
},
{3,0,
{0},4,1,0,00000000-0000-0000-0000-000000000000},
-{1,0},0,0,100,0,0},9,2,1,0,1,1,
-{5,40a35028-bfda-443c-b842-91adff3c0b6f,45,1,0,1,
+{1,0},0,0,100,0,0},9,2,0,0,1,1,
+{5,40a35028-bfda-443c-b842-91adff3c0b6f,53,1,0,1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0,
{0,0,
{0}
@@ -583,7 +271,7 @@
{2,-1,6,0},
{2,-1,6,0}
},1,
-{0,7,1},0,0,0,0,0,0,6,1,1,0},
+{0,7,1},0,0,0,0,0,0,2,1,1,0},
{14,"ДействияФормы",0,0,0,0},
{0}
},
@@ -617,7 +305,7 @@
{0},7,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0,100,0,0},9,2,0,2,0,1,
{5,abcdb268-a3c1-4c9e-93b3-c633905cab0b,3,1,3,
-{7,f22ea674-0e41-4f01-96fd-5c5ee7b44bc3,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,b69476e2-ffec-44f3-bb61-7ad6720921bc,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КнопкаОКНажатие",
{1,"КнопкаОКНажатие",
{1,1,
@@ -636,18 +324,18 @@
},6,
{1,0},
{1,0},1},
-{7,08d96562-e981-40cc-84b8-a889a87c2728,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{7,37698099-d407-4c1d-ad9b-95ee608263e5,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,1},
-{7,8ef5d387-a33b-40df-adca-d9fdbeb939ad,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{7,7fc638e3-35cc-4db5-9ed9-a5127b588f7a,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,6,00000000-0000-0000-0000-000000000000,142,
{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,1},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,f22ea674-0e41-4f01-96fd-5c5ee7b44bc3,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,b69476e2-ffec-44f3-bb61-7ad6720921bc,
{8,"ОсновныеДействияФормыВыполнить",0,1,
{1,1,
{"ru"," ОК "}
-},1,abcdb268-a3c1-4c9e-93b3-c633905cab0b,1,1e2,0,1,1,0,1,0,0},08d96562-e981-40cc-84b8-a889a87c2728,
+},1,abcdb268-a3c1-4c9e-93b3-c633905cab0b,1,1e2,0,1,1,0,1,0,0},37698099-d407-4c1d-ad9b-95ee608263e5,
{8,"Разделитель",0,1,
-{1,0},0,abcdb268-a3c1-4c9e-93b3-c633905cab0b,2,1e2,2,1,1,0,1,0,0},8ef5d387-a33b-40df-adca-d9fdbeb939ad,
+{1,0},0,abcdb268-a3c1-4c9e-93b3-c633905cab0b,2,1e2,2,1,1,0,1,0,0},7fc638e3-35cc-4db5-9ed9-a5127b588f7a,
{8,"ОсновныеДействияФормыЗакрыть",0,1,
{1,1,
{"ru","Закрыть"}
@@ -656,9 +344,9 @@
{0}
}
}
-},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,be7d2af0-f3e7-43ac-9ba1-4cb6b2dd84ce,1,0,0}
+},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,58f15883-7ccf-44b1-8bed-f1f5f844379e,1,0,0}
},
-{8,0,209,400,234,1,
+{8,0,143,400,168,1,
{0,
{2,8,1,-25},
{2,-1,6,0}
@@ -684,77 +372,10 @@
{2,-1,6,0}
},1,
{0,8,1},1,
-{0,8,0},0,0,0,0,0,7,13,1,1},
+{0,8,0},0,0,0,0,0,3,7,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
-{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,9,
-{1,
-{
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,0,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,0,
-{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,1,
-{"ru","Выполняется поиск по всем ссылочным таблицам подходящих элементов данных. Может выполняться очень долго!"}
-},0,0,100,0,0},6,
-{1,1,
-{"ru","Использовать ""умный"" поиск по данным (медленно!)"}
-},1,0,1,0,100,1},4,0,0,0,0,0},
-{0}
-},
-{8,8,123,392,138,1,
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,9,0,15},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,9,2,384},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},1,
-{0,9,1},0,1,
-{0,9,3},0,0,0,0,8,9,0,0},
-{14,"флИспользоватьУмныйПоиск",4294967295,0,0,0},
-{0}
-},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,10,
{1,
{
@@ -792,7 +413,7 @@
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
-{8,8,186,392,201,0,
+{8,8,120,392,135,0,
{0,
{2,-1,6,0},
{2,-1,6,0}
@@ -818,7 +439,7 @@
{2,-1,6,0}
},1,
{0,10,1},0,1,
-{0,10,3},0,0,0,0,9,12,0,0},
+{0,10,3},0,0,0,0,4,6,0,0},
{14,"флИскатьОтладочнуюВерсию",4294967295,0,0,0},
{0}
},
@@ -859,7 +480,7 @@
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
-{8,8,165,392,180,1,
+{8,8,99,392,114,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
@@ -885,83 +506,10 @@
{2,-1,6,0}
},1,
{0,11,1},0,1,
-{0,11,3},0,0,0,0,10,11,0,0},
+{0,11,3},0,0,0,0,5,5,0,0},
{14,"флИскатьВПодкаталогах",4294967295,0,0,0},
{0}
},
-{90db814a-c75f-4b54-bc96-df62e554d67d,12,
-{0,
-{
-{16,1,
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{7,3,4,700,1,100},0,
-{3,3,
-{-22}
-},
-{3,4,
-{0}
-},
-{3,4,
-{0}
-},
-{3,3,
-{-7}
-},
-{3,3,
-{-21}
-},
-{3,0,
-{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
-{1,0},0,0,100,0,0},8,
-{1,1,
-{"ru","Полнотекстовый поиск"}
-},
-{3,0,
-{0},6,1,0,cf48d3ca-5bd4-45b9-bb8f-a0922a8335f2},0}
-},
-{8,8,33,392,73,1,
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,12,0,40},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,12,2,384},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},
-{0,
-{2,-1,6,0},
-{2,-1,6,0}
-},5,
-{0,2,0},
-{0,3,0},
-{0,4,0},
-{0,5,0},
-{0,12,1},0,5,
-{0,2,2},
-{0,3,2},
-{0,4,2},
-{0,5,2},
-{0,12,3},0,0,0,0,11,2,0,0},
-{14,"РамкаГруппы1",4294967295,0,0,0},
-{0}
-},
{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,13,
{1,
{
@@ -999,7 +547,7 @@
},1,0,1,0,100,1},4,0,0,0,0,0},
{0}
},
-{8,8,143,392,158,1,
+{8,8,77,392,92,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
@@ -1025,12 +573,12 @@
{2,-1,6,0}
},1,
{0,13,1},0,1,
-{0,13,3},0,0,0,0,12,10,0,0},
+{0,13,3},0,0,0,0,6,4,0,0},
{14,"флВложенныеПодсистемы",4294967295,0,0,0},
{0}
}
}
-},400,234,1,0,1,4,4,92,400,234,96},
+},400,168,1,0,1,4,4,97,400,168,96},
{
{1},10,
{1,
@@ -1041,37 +589,19 @@
}
}
},
-{8,
+{5,
{1,
{2,
{1},
{0,362a4971-f113-4777-bc32-d9ed21a1b1fb}
}
},
-{3,
-{2,
-{1},
-{0,0e4208cf-b84e-42be-9b79-9730da4d0cdc}
-}
-},
-{5,
-{2,
-{1},
-{0,5eb85926-1d07-4eba-b744-ac8f6c12650a}
-}
-},
{6,
{2,
{1},
{0,04c5c86d-a200-40b1-b2d7-ae83af5811dc}
}
},
-{9,
-{2,
-{1},
-{0,1e56333a-fdb0-4b1e-8ada-36ee34b60cb7}
-}
-},
{10,
{2,
{1},
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form.bin b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form.bin
index 2c50ff8e0..d5d388211 100644
Binary files a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form.bin and b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form.bin differ
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/Module.bsl
index 299237d91..01b2f3155 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/Module.bsl
+++ b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/Module.bsl
@@ -1,4 +1,28 @@
-Перем ПредыдущаяСтрока; // Нужна для обработки ожидания при генерации контекстного меню
+Перем стНастройки;
+Перем КомандыПоиска;
+Перем дзВсеОбъекты Экспорт;
+Перем ДеревоПодсистем Экспорт;
+Перем мСписокПолнотекстовогоПоиска; // Глобальный поиск
+Перем СтатическиеВетки Экспорт;
+Перем мПлатформа Экспорт;
+Перем МассивСтатическихВеток Экспорт;
+Перем ВеткиМетаданных;
+Перем RegExp Экспорт; // Для поиска с помощью регулярных выражений
+Перем ИмяКорневойПодсистемы;
+Перем ЕстьСправочникВнешнихОбработок Экспорт;
+Перем мТекущийПользователь Экспорт;
+Перем ПутьФайлаНастроек;
+Перем ЕстьУниверсальныйОтчет Экспорт;
+Перем Есть_РС_СохраненныеНастройки Экспорт;
+//Перем Есть_СправочникОрганизаций;
+Перем мСловаСтрокиУмногоПоиска Экспорт;
+Перем СтрокаУмногоПоискаБезСуффикса Экспорт;
+Перем СтрокаСуффиксаУмногоПоиска Экспорт;
+Перем флПробоватьУмныйПоиск Экспорт;
+Перем ЧислоСуффиксаУмногоПоиска;
+Перем ДлинаСуффиксаУмногоПоиска;
+Перем мВременныйФильтрИмен Экспорт;
+Перем ПредыдущаяСтрока; // Нужна для обработки ожидания при генерации контекстного меню
Перем мКоличествоСтатическихКнопокКоманднойПанели;
//Перем мСписокВыбораПодсистем;
@@ -126,12 +150,12 @@
Функция ОткрытьОбработкуИзСправочникаВнешнихОбработок(Код)
ВыбраннаяОбработка = Справочники.ВнешниеОбработки.НайтиПоКоду(Код);
- ИмяФайла=ПолучитьИмяВременногоФайла();
- ДвоичныеДанные=ВыбраннаяОбработка.ХранилищеВнешнейОбработки.Получить();
+ ИмяФайла = ПолучитьИмяВременногоФайла();
+ ДвоичныеДанные = ВыбраннаяОбработка.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
- Форма=ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
- Если ТипЗнч(Форма)<>Тип("Форма") Тогда
- Форма=ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
+ Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
+ Если ТипЗнч(Форма) <> Тип("Форма") Тогда
+ Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);
КонецЕсли;
УдалитьФайлы(ИмяФайла);
Возврат Форма;
@@ -184,7 +208,7 @@
ДобавитьКнопку(КнопкиКоманднойПанели, "Переключить", , , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ИнвертироватьФлажки"));
ИначеЕсли ВидОбъекта = "Внешние обработки" Тогда
ДобавитьКнопку(КнопкиКоманднойПанели, "Открыть", , , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("Обработка"));
- ИначеЕсли ВерсияПлатфомы >= "8.1" И ВидОбъекта = "Внешние отчеты" Тогда
+ ИначеЕсли ВидОбъекта = "Внешние отчеты" Тогда
ДобавитьКнопку(КнопкиКоманднойПанели, "Открыть", , , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("Отчет"));
ИначеЕсли ВидОбъекта = "Табличные документы" Тогда
ДобавитьКнопку(КнопкиКоманднойПанели, "Открыть", , , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ТабличныйДокумент"));
@@ -213,14 +237,8 @@
ирПолучитьКартинкуЕслиЕсть("ирРедактироватьОбъектБД"));
ДобавитьКнопку(КнопкиКоманднойПанели, "ирИсследоватьОбъект", "Исследовать объект", , ДействиеОткрытиеФормы,
ирПолучитьКартинкуЕслиЕсть("ирИсследовать"));
- МДФормы = СсылкаОбъекта.Метаданные().Формы;
- Для каждого МДФорма Из МДФормы Цикл
- Попытка
- ДобавитьКнопку(КнопкиКоманднойПанели, МДФорма.Имя, МДФорма.Синоним, , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("Форма"));
- Исключение
- Продолжить;
- КонецПопытки;
- КонецЦикла;
+ ОбъектМД = СсылкаОбъекта.Метаданные();
+ ДобавитьПодменюФорм(ДействиеОткрытиеФормы, КнопкиКоманднойПанели, ОбъектМД);
КонецЕсли;
Если мСвязанныйДинамическийСписок <> Неопределено И мСвязанныйДинамическийСписок.Открыта() Тогда
мСвязанныйДинамическийСписок.УстановитьОбъектМетаданных(ТекущаяСтрока.ПолноеИмяОбъекта);
@@ -235,47 +253,15 @@
ДобавитьКнопку(КнопкиКоманднойПанели, "УниверсальныйОтчетПоРегиструНакопления", "Универсальный отчет", , ДействиеОткрытиеФормы,
ирПолучитьКартинкуЕслиЕсть("Отчет"));
КонецЕсли;
- МД = ?(Найти(ВидОбъекта,".")>0, ирКэш.ОбъектМДПоПолномуИмениЛкс(ВидОбъекта), Метаданные[ВидОбъекта]);
- МДОбъект = МД[ИмяОбъекта];
- МДФормы = МДОбъект.Формы;
- КорневойТип = ирОбщий.ПолучитьКорневойТипКонфигурацииЛкс(МДОбъект);
+ ОбъектМД = ОбъектМДВетви(ТекущаяСтрока);
+ КорневойТип = ирОбщий.ПолучитьКорневойТипКонфигурацииЛкс(ОбъектМД);
Если стНастройки.ПриАвтозапускеОткрыватьФормуСписка Тогда
Если ирОбщий.ЛиКорневойТипТаблицыБДЛкс(КорневойТип) Тогда
- ИмяОсновнойФормы = ?(МДОбъект.ОсновнаяФормаСписка = Неопределено, "ФормаСписка", МДОбъект.ОсновнаяФормаСписка.Имя);
+ ИмяОсновнойФормы = ?(ОбъектМД.ОсновнаяФормаСписка = Неопределено, "ФормаСписка", ОбъектМД.ОсновнаяФормаСписка.Имя);
ДобавитьКнопку(КнопкиКоманднойПанели, ИмяОсновнойФормы, "Форма списка (основная)", , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ирСписокЗначений"));
КонецЕсли;
КонецЕсли;
- ПодменюФормы = КнопкиКоманднойПанели.Добавить("ПодменюФормы", ТипКнопкиКоманднойПанели.Подменю, "Формы");
- ПодменюФормы.Картинка = ирПолучитьКартинкуЕслиЕсть("Форма");
- Для каждого МДФорма Из МДФормы Цикл
- Попытка
- ОсновнаяФормаСписка = МДОбъект.ОсновнаяФормаСписка;
- Исключение
- ОсновнаяФормаСписка = Неопределено;
- КонецПопытки;
- Если стНастройки.ПриАвтозапускеОткрыватьФормуСписка И МДФорма = ОсновнаяФормаСписка Тогда
- // Повторно добавлять не нужно
- Продолжить;
- КонецЕсли;
- Суффикс = "";
- Попытка
- ЭтоОсновнаяФорма = МДОбъект.ОсновнаяФорма = МДФорма;
- Исключение
- ЭтоОсновнаяФорма = Ложь;
- КонецПопытки;
- Если ЭтоОсновнаяФорма Тогда
- Суффикс = " (основная)";
- КонецЕсли;
- Попытка
- ЭтоОсновнаяФормаСписка = МДОбъект.ОсновнаяФормаСписка = МДФорма;
- Исключение
- ЭтоОсновнаяФормаСписка = Ложь;
- КонецПопытки;
- Если ЭтоОсновнаяФормаСписка Тогда
- Суффикс = " (основная списка)";
- КонецЕсли;
- ДобавитьКнопку(ПодменюФормы.Кнопки, "Форма." + МДФорма.Имя, МДФорма.Синоним + Суффикс, , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("Форма"));
- КонецЦикла;
+ ДобавитьПодменюФорм(ДействиеОткрытиеФормы, КнопкиКоманднойПанели, ОбъектМД);
ПодменюМодули = КнопкиКоманднойПанели.Добавить("ПодменюМодули", ТипКнопкиКоманднойПанели.Подменю, "Модули");
ПодменюМодули.Картинка = ирПолучитьКартинкуЕслиЕсть("ирАлгоритм");
ДобавитьКнопку(ПодменюМодули.Кнопки, "МодульОбъекта", "Модуль объекта", , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ирКонфигуратор1С8"));
@@ -305,7 +291,65 @@
ДобавитьКнопку(КнопкиКоманднойПанели, "СправкаМетаданного", "Справка объекта", , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ирСправкаМетаданного"));
ДобавитьКнопку(КнопкиКоманднойПанели, "ОткрытьВКонфигураторе", "Открыть в конфигураторе", , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("ирКонфигуратор1С8"));
-КонецПроцедуры // СгенерироватьКомандыКонтекстногоМеню()
+КонецПроцедуры
+
+Процедура ДобавитьПодменюФорм(ДействиеОткрытиеФормы, Знач КнопкиКоманднойПанели, Знач ОбъектМД)
+
+ МДФормы = ОбъектМД.Формы;
+ ПодменюФормы = КнопкиКоманднойПанели.Добавить("ПодменюФормы", ТипКнопкиКоманднойПанели.Подменю, "Формы");
+ ПодменюФормы.Картинка = ирПолучитьКартинкуЕслиЕсть("Форма");
+ Для каждого МДФорма Из МДФормы Цикл
+ Попытка
+ ОсновнаяФормаСписка = ОбъектМД.ОсновнаяФормаСписка;
+ Исключение
+ ОсновнаяФормаСписка = Неопределено;
+ КонецПопытки;
+ Если стНастройки.ПриАвтозапускеОткрыватьФормуСписка И МДФорма = ОсновнаяФормаСписка Тогда
+ // Повторно добавлять не нужно
+ Продолжить;
+ КонецЕсли;
+ Суффикс = "";
+ Попытка
+ ЭтоОсновнаяФорма = ОбъектМД.ОсновнаяФорма = МДФорма;
+ Исключение
+ ЭтоОсновнаяФорма = Ложь;
+ КонецПопытки;
+ Если ЭтоОсновнаяФорма Тогда
+ Суффикс = " (основная)";
+ КонецЕсли;
+ Попытка
+ ЭтоОсновнаяФормаСписка = ОбъектМД.ОсновнаяФормаСписка = МДФорма;
+ Исключение
+ ЭтоОсновнаяФормаСписка = Ложь;
+ КонецПопытки;
+ Если ЭтоОсновнаяФормаСписка Тогда
+ Суффикс = " (основная списка)";
+ КонецЕсли;
+ ДобавитьКнопку(ПодменюФормы.Кнопки, "Форма." + МДФорма.Имя, МДФорма.Синоним + Суффикс, , ДействиеОткрытиеФормы, ирПолучитьКартинкуЕслиЕсть("Форма"));
+ КонецЦикла;
+
+КонецПроцедуры
+
+Функция ОбъектМДВетви(Знач ТекущаяСтрока)
+
+ ВидОбъекта = ТекущаяСтрока.Вид;
+ ИмяОбъекта = ТекущаяСтрока.Имя;
+ Если Найти(ИмяОбъекта, ".") > 0 Тогда
+ ОбъектМД = ирКэш.ОбъектМДПоПолномуИмениЛкс(ИмяОбъекта);
+ Иначе
+ Если Найти(ВидОбъекта, ".") > 0 Тогда
+ ОбъектМД = ирКэш.ОбъектМДПоПолномуИмениЛкс(ВидОбъекта);
+ Если ирОбщий.СтрНачинаетсяСЛкс(ВидОбъекта, "ВнешнийИсточникДанных.") Тогда
+ ОбъектМД = ОбъектМД.Таблицы[ИмяОбъекта];
+ КонецЕсли;
+ Иначе
+ КоллекцияМД = Метаданные[ВидОбъекта];
+ ОбъектМД = КоллекцияМД[ИмяОбъекта];
+ КонецЕсли;
+ КонецЕсли;
+ Возврат ОбъектМД;
+
+КонецФункции // СгенерироватьКомандыКонтекстногоМеню()
Процедура Избранное_ВыгрузитьСсылки()
@@ -366,6 +410,11 @@
спФильтр.Добавить(Фильтр);
КонецЦикла;
ПрименитьПараметрыФормы(Истина);
+ ТабличныйДокумент = ПолучитьМакет("Картинки");
+ КартинкаСтрок = ТабличныйДокумент.Рисунки[0].Картинка;
+ ЭлементыФормы.ДеревоИнтерфейса.Колонки.Имя.КартинкиСтрок = КартинкаСтрок;
+ ЭлементыФормы.ДеревоИнтерфейса.Колонки.Представление.КартинкиСтрок = КартинкаСтрок;
+ ЭлементыФормы.ДеревоИнтерфейса.Колонки.КоличествоСтрок.Видимость = Ложь;
// ВосстановитьРазвернутыеВетви(стНастройки.РазвернутыеСтроки);
////ВосстановитьВыбраннуюСтроку(стНастройки.ВыбраннаяСтрока);
//ПодключитьОбработчикОжидания("ОчисткаСтрокиФильтра",60);
@@ -398,7 +447,7 @@
Процедура ПриЗакрытии()
- СохранитьНастройки(ЭтаФорма);
+ СохранитьНастройки();
ирОбщий.Форма_ПриЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры // ПриЗакрытии
@@ -410,7 +459,7 @@
ФильтрИмен = "";
ФильтрИмен_ПриИзменении();
- ЗаполнитьДеревоИнтерфейса(ЭтаФорма);
+ ЗаполнитьДеревоИнтерфейса();
//ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока = ДеревоИнтерфейса.Строки[0];
КонецПроцедуры // ОчисткаСтрокиФильтра()
@@ -456,14 +505,13 @@
Процедура ПриИзмененииФильтраПодсистем()
- ЗаполнитьДеревоИнтерфейса(ЭтаФорма);
+ ЗаполнитьДеревоИнтерфейса();
КонецПроцедуры // ПриИзмененииФильтраПодсистем
Процедура ФильтрПодсистем_НачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
-
ФормаВыбора = ирКэш.Получить().ПолучитьФорму("ВыборПодсистемы", Элемент);
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.МножественныйВыбор = Истина;
@@ -472,7 +520,7 @@
ТекущаяСтрокаОбъекта = ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
Если ЭтоФильтрПодсистемВыбранногоОбъекта Тогда
Если ЗначениеЗаполнено(ТекущаяСтрокаОбъекта) И ТипЗнч(ТекущаяСтрокаОбъекта) = Тип("СтрокаДереваЗначений") Тогда
- ФормаВыбора.МДОбъект = Метаданные[ТекущаяСтрокаОбъекта.Вид][ТекущаяСтрокаОбъекта.Имя];
+ ФормаВыбора.МДОбъект = ОбъектМДВетви(ТекущаяСтрокаОбъекта);
КонецЕсли;
КонецЕсли;
ФормаВыбора.Открыть();
@@ -497,7 +545,7 @@
////мСписокВыбораПодсистем = ДобавитьПодсистему();
//ДобавитьПодсистему();
-КонецПроцедуры // ЗаполнитьДеревоПодсистем
+КонецПроцедуры
Процедура ПриИзмененииФильтраИмен(Знач ТекущийФильтрИмен = Неопределено)
@@ -538,11 +586,8 @@
КонецЦикла;
КонецЕсли;
КонецЕсли;
- ОбновитьФильтрУмногоПоиска(Истина);
КонецЕсли;
-
- ЗаполнитьДеревоИнтерфейса(ЭтаФорма);
-
+ ЗаполнитьДеревоИнтерфейса();
//Если НЕ ПустаяСтрока(ФильтрИмен) тогда
// Для каждого СтрокаДерева из ДеревоИнтерфейса.Строки цикл
// //ЭлементыФормы.ДеревоИнтерфейса.Развернуть(СтрокаДерева, Истина);
@@ -606,12 +651,12 @@
И (Ложь
Или мХранимыеТипыМетаобъектов.Найти(ВидОбъекта, "Множественное") <> Неопределено
Или ВидОбъекта = "Обработки"
- Или ВидОбъекта = "Отчеты")
+ Или ВидОбъекта = "Отчеты"
+ Или ирОбщий.СтрНачинаетсяСЛкс(ВидОбъекта, "ВнешнийИсточникДанных."))
И ВидОбъекта <> "Константы"
Тогда
- КоллекцияМетаданных = ?(Найти(ВидОбъекта,".") > 0, ирКэш.ОбъектМДПоПолномуИмениЛкс(ВидОбъекта), Метаданные[ВидОбъекта]);
- МДОбъект = КоллекцияМетаданных[ИмяОбъекта];
- СтрокаПолногоИмени = МДОбъект.ПолноеИмя();
+ ОбъектМД = ОбъектМДВетви(ТекущаяСтрока);
+ СтрокаПолногоИмени = ОбъектМД.ПолноеИмя();
Если Кнопка.Имя = "УниверсальныйОтчетПоРегиструНакопления" Тогда
НоваяФорма = УниверсальныйОтчетПоРегиструНакопления(ИмяОбъекта);
ИначеЕсли Кнопка.Имя = "ОткрытьВКонфигураторе" Тогда
@@ -650,15 +695,15 @@
#Если Сервер И Не Сервер Тогда
КонсольЗапросов = Обработки.ирКонсольЗапросов.Создать();
#КонецЕсли
- НоваяФорма = КонсольЗапросов.ОткрытьПоОбъектуМетаданных(МДОбъект.ПолноеИмя());
+ НоваяФорма = КонсольЗапросов.ОткрытьПоОбъектуМетаданных(ОбъектМД.ПолноеИмя());
ИначеЕсли Кнопка.Имя = "КонсольКомпоновки" Тогда
КонсольКомпоновокДанных = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирКонсольКомпоновокДанных");
#Если Сервер И Не Сервер Тогда
КонсольКомпоновокДанных = Обработки.ирКонсольКомпоновокДанных.Создать();
#КонецЕсли
- НоваяФорма = КонсольКомпоновокДанных.ОткрытьПоОбъектуМетаданных(МДОбъект.ПолноеИмя());
+ НоваяФорма = КонсольКомпоновокДанных.ОткрытьПоОбъектуМетаданных(ОбъектМД.ПолноеИмя());
ИначеЕсли Кнопка.Имя = "ПодборИОбработкаОбъектов" Тогда
- НоваяФорма = ирОбщий.ПолучитьФормуЛкс("Обработка.ирПодборИОбработкаОбъектов.Форма",,, МДОбъект.ПолноеИмя());
+ НоваяФорма = ирОбщий.ПолучитьФормуЛкс("Обработка.ирПодборИОбработкаОбъектов.Форма",,, ОбъектМД.ПолноеИмя());
ИначеЕсли Кнопка.Имя = "ЖурналРегистрации" Тогда
АнализЖурналаРегистрации = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирАнализЖурналаРегистрации");
#Если Сервер И Не Сервер Тогда
@@ -666,7 +711,7 @@
#КонецЕсли
НоваяФорма = АнализЖурналаРегистрации.ОткрытьСПараметром("Метаданные", СтрокаПолногоИмени);
ИначеЕсли Кнопка.Имя = "ИсследоватьМетаданные" Тогда
- НоваяФорма = ирОбщий.ИсследоватьЛкс(МДОбъект);
+ НоваяФорма = ирОбщий.ИсследоватьЛкс(ОбъектМД);
Иначе
ОткрытьФормуПоПолномуИмени = Истина;
КонецЕсли;
@@ -675,10 +720,16 @@
// Баг платформы 8.3.5 общая форма так каждый раз новая получается
Попытка
НоваяФорма = ПолучитьОбщуюФорму(ИмяОбъекта);
+ Если ТипЗнч(НоваяФорма) <> Тип("Форма") Тогда
+ НоваяФорма = Неопределено; // https://partners.v8.1c.ru/forum/t/1948332/m/1948332 , https://www.hostedredmine.com/issues/893536
+ КонецЕсли;
Исключение
+ НоваяФорма = Неопределено;
+ КонецПопытки;
+ Если НоваяФорма = Неопределено Тогда
// https://partners.v8.1c.ru/forum/t/1809753/m/1809753
НоваяФорма = ирОбщий.ПолучитьФормуЛкс("ОбщаяФорма." + ИмяОбъекта);
- КонецПопытки;
+ КонецЕсли;
ИначеЕсли ВидОбъекта = "Интерфейсы" Тогда
ГлавныйИнтерфейс.ПереключитьИнтерфейс(ИмяОбъекта);
ИначеЕсли ВидОбъекта = "Внешние обработки" Тогда
@@ -691,7 +742,7 @@
ирОбщий.СообщитьЛкс("У внешней обработки не назначена основная форма для текущего режима запуска приложения");
КонецЕсли;
КонецЕсли;
- ИначеЕсли ВерсияПлатфомы >= "8.1" И ВидОбъекта = "Внешние отчеты" Тогда
+ ИначеЕсли ВидОбъекта = "Внешние отчеты" Тогда
НоваяФорма = ВнешниеОтчеты.Создать(ИмяОбъекта).ПолучитьФорму();
ИначеЕсли ВидОбъекта = "Табличные документы" Тогда
ТабличныйДокумент = Новый ТабличныйДокумент;
@@ -728,7 +779,7 @@
ИначеЕсли Кнопка.Имя = "ирИсследоватьОбъект" Тогда
НоваяФорма = ирИсследоватьОбъект(СсылкаОбъекта);
Иначе
- НоваяФорма = СсылкаОбъекта.ПолучитьФорму(Кнопка.Имя);
+ НоваяФорма = СсылкаОбъекта.ПолучитьФорму(ирОбщий.ПоследнийФрагментЛкс(Кнопка.Имя));
КонецЕсли;
КонецЕсли;
ИначеЕсли ВидОбъекта = "Константы" Тогда
@@ -742,7 +793,7 @@
КонецЕсли;
КонецЕсли;
Если ОткрытьФормуПоПолномуИмени Тогда
- НоваяФорма = ирОбщий.ПолучитьФормуЛкс(МДОбъект.ПолноеИмя() + "." + Кнопка.Имя);
+ НоваяФорма = ирОбщий.ПолучитьФормуЛкс(ОбъектМД.ПолноеИмя() + "." + Кнопка.Имя);
КонецЕсли;
КонецЕсли;
Исключение
@@ -783,7 +834,7 @@
Иначе
НоваяФорма.Открыть();
КонецЕсли;
- ОбновитьСтатистикуИспользования(ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока, ЭтаФорма);
+ ДобавитьСтрокуВСтатическуюВетку(ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока);
КонецПроцедуры
@@ -799,16 +850,16 @@
ИЛИ ВидОбъекта = "Отчеты"
Тогда
КоллекцияМД = ?(Найти(ВидОбъекта,".")>0, ирКэш.ОбъектМДПоПолномуИмениЛкс(ВидОбъекта), Метаданные[ВидОбъекта]);
- МДОбъект = КоллекцияМД[ИмяОбъекта];
- ОткрытиеФормы(МДОбъект.ПолноеИмя() + ".Форма");
+ ОбъектМД = КоллекцияМД[ИмяОбъекта];
+ ОткрытиеФормы(ОбъектМД.ПолноеИмя() + ".Форма");
ИначеЕсли Истина
- И мХранимыеТипыМетаобъектов.Найти(ВидОбъекта, "Множественное") <> Неопределено
+ И (Ложь
+ Или мХранимыеТипыМетаобъектов.Найти(ВидОбъекта, "Множественное") <> Неопределено
+ Или ирОбщий.СтрНачинаетсяСЛкс(ВидОбъекта, "ВнешнийИсточникДанных."))
И ВидОбъекта <> "Константы"
-
- Тогда
- КоллекцияМД = ?(Найти(ВидОбъекта,".")>0, ирКэш.ОбъектМДПоПолномуИмениЛкс(ВидОбъекта), Метаданные[ВидОбъекта]);
- МДОбъект = КоллекцияМД[ИмяОбъекта];
- ОткрытиеФормы(МДОбъект.ПолноеИмя() + ".ФормаСписка");
+ Тогда
+ ОбъектМД = ОбъектМДВетви(ВыбраннаяСтрока);
+ ОткрытиеФормы(ОбъектМД.ПолноеИмя() + ".ФормаСписка");
Иначе
ОткрытиеФормы();
//ВызватьИсключение "ДеревоИнтерфейса_Выбор: неподдерживаемое значение вида объекта (""" + ВидОбъекта + """)";
@@ -872,7 +923,7 @@
Отказ = Истина;
СтрокаДляУдаления = ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
СтрокаКорня = СтрокаДляУдаления.Родитель;
- Если НЕ СтатическиеВетки[СтрокаКорня] = Неопределено Тогда
+ Если СтатическиеВетки[СтрокаКорня] <> Неопределено Тогда
// Сброс статистик
КлючПоиска = Новый Структура("Вид,Имя", СтрокаДляУдаления.Вид,СтрокаДляУдаления.Имя);
СтрокаСтатистики = стНастройки.СтатистикаИспользования.НайтиСтроки(КлючПоиска);
@@ -887,6 +938,9 @@
КонецЕсли;
КонецЕсли;
СтрокаКорня.Строки.Удалить(СтрокаДляУдаления);
+ РазвернутыеВетви = СохранитьРазвернутыеВетви();
+ ЗаполнитьСтатическиеВеткиДереваИнтерфейса(СтрокаКорня);
+ ВосстановитьРазвернутыеВетви(РазвернутыеВетви);
Возврат;
КонецЕсли;
@@ -933,8 +987,8 @@
СтандартнаяОбработка = Ложь;
ЗначениеПеретаскивания = ПодготовитьЗначениеПеретаскивания(ПараметрыПеретаскивания.Значение);
- НоваяСтрока = ДобавитьСтрокуВСтатическуюВетку(ЗначениеПеретаскивания, ?(Строка.Родитель = Неопределено, Строка.Имя, Строка.Родитель.Имя));
- ЗаполнитьСтатическиеВеткиДереваИнтерфейса(ЭтаФорма, НоваяСтрока);
+ ИмяРодителя = ?(Строка.Родитель = Неопределено, Строка.Имя, Строка.Родитель.Имя);
+ ДобавитьСтрокуВСтатическуюВетку(ЗначениеПеретаскивания, ИмяРодителя, Истина);
КонецПроцедуры
@@ -962,9 +1016,969 @@
Процедура КоманднаяПанельДереваИнтерфейсаДобавитьВИзбранное(Кнопка)
ДобавитьСтрокуВСтатическуюВетку(ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока, "Избранное");
- ЗаполнитьСтатическиеВеткиДереваИнтерфейса(ЭтаФорма);
КонецПроцедуры
+Функция ДобавитьСтрокуВСтатическуюВетку(СтрокаДерева, ИмяВетви = "", Знач УстановитьТекущей = Ложь) Экспорт
+ ИменаПолейОтбора = "Вид, Имя";
+ СтруктураОтбора = Новый Структура(ИменаПолейОтбора);
+ ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаДерева, ИменаПолейОтбора);
+ тзСтатистикаИспользования = стНастройки.СтатистикаИспользования;
+ #Если Сервер И Не Сервер Тогда
+ тзСтатистикаИспользования = Новый ТаблицаЗначений;
+ #КонецЕсли
+ НайденныеСтроки = тзСтатистикаИспользования.НайтиСтроки(СтруктураОтбора);
+ Если НайденныеСтроки.Количество() > 0 Тогда
+ СтрокаСтатическойВетки = НайденныеСтроки[0];
+ Иначе
+ СтрокаСтатическойВетки = тзСтатистикаИспользования.Добавить();
+ ЗаполнитьЗначенияСвойств(СтрокаСтатическойВетки, СтруктураОтбора);
+ КонецЕсли;
+ СтараяТекущаяСтрока = Неопределено;
+ ТекСтрока = ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
+ Если ТекСтрока <> Неопределено Тогда
+ Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
+ Если СтатическиеВетки[ТекСтрока.Родитель] <> Неопределено тогда
+ СтараяТекущаяСтрока = СохранитьВыбраннуюСтроку();
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(ИмяВетви) Тогда
+ СтрокаСтатическойВетки[ИмяВетви] = 1;
+ Если Не ВводДоступен() Тогда
+ УстановитьТекущей = Истина;
+ КонецЕсли;
+ Иначе
+ Если СтрокаСтатическойВетки.КоличествоИспользований = Неопределено Тогда
+ СтрокаСтатическойВетки.КоличествоИспользований = 0;
+ КонецЕсли;
+ СтрокаСтатическойВетки.КоличествоИспользований = СтрокаСтатическойВетки.КоличествоИспользований + 1;
+ СтрокаСтатическойВетки.ПоследнееИспользование = ТекущаяДата();
+ КонецЕсли;
+ Если Открыта() Тогда
+ РазвернутыеВетви = СохранитьРазвернутыеВетви();
+ Если УстановитьТекущей Тогда
+ ЗаполнитьСтатическиеВеткиДереваИнтерфейса(СтрокаСтатическойВетки, ИмяВетви);
+ Иначе
+ ЗаполнитьСтатическиеВеткиДереваИнтерфейса();
+ Если СтараяТекущаяСтрока <> Неопределено тогда
+ ВосстановитьВыбраннуюСтроку(СтараяТекущаяСтрока);
+ КонецЕсли;
+ КонецЕсли;
+ ВосстановитьРазвернутыеВетви(РазвернутыеВетви);
+ КонецЕсли;
+ СохранитьНастройки();
+ Возврат СтрокаСтатическойВетки;
+КонецФункции
+
+Функция СохранитьВыбраннуюСтроку(ВыбраннаяСтрока = Неопределено)
+
+ Если ВыбраннаяСтрока = Неопределено Тогда
+ ВыбраннаяСтрока = ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока;
+ КонецЕсли;
+ Если ВыбраннаяСтрока = Неопределено тогда
+ Возврат Неопределено;
+ КонецЕсли;
+ стСтрока = Новый Структура("Представление,Уровень,Родитель,Вид,Имя");
+ стСтрока.Представление = ВыбраннаяСтрока.Представление;
+ стСтрока.Уровень = ВыбраннаяСтрока.Уровень();
+ Если стСтрока.Уровень = 1 тогда
+ стСтрока.Родитель = ВыбраннаяСтрока.Родитель.Представление;
+ стСтрока.Вид = ВыбраннаяСтрока.Вид;
+ стСтрока.Имя = ВыбраннаяСтрока.Имя;
+ КонецЕсли;
+ Возврат стСтрока;
+
+КонецФункции
+
+Процедура СохранитьНастройки() Экспорт
+
+ стНастройки.ФильтрПодсистем = ФильтрПодсистем;
+ стНастройки.ФильтрИмен = ФильтрИмен;
+ стНастройки.РазвернутыеСтроки = СохранитьРазвернутыеВетви();
+ стНастройки.ВыбраннаяСтрока = СохранитьВыбраннуюСтроку();
+
+ мИсторияФильтраИмен = Новый Массив;
+ Для каждого зн из ЭлементыФормы.ФильтрИмен.СписокВыбора цикл
+ мИсторияФильтраИмен.Добавить(зн.Значение);
+ КонецЦикла;
+ стНастройки.ИсторияФильтраИмен = мИсторияФильтраИмен;
+ ЗаполнитьЗначенияСвойств(стНастройки, ЭтотОбъект);
+ ирОбщий.СохранитьЗначениеЛкс("ирИнтерфейснаяПанель.Настройки", стНастройки);
+
+КонецПроцедуры
+
+Процедура ПрочитатьНастройки() Экспорт
+
+ стНастройки = ирОбщий.ВосстановитьЗначениеЛкс("ирИнтерфейснаяПанель.Настройки");
+ Если ТипЗнч(стНастройки) <> Тип("Структура") тогда
+ стНастройки = Новый Структура;
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ФильтрПодсистем") тогда
+ стНастройки.Вставить("ФильтрПодсистем");
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ФильтрИмен") тогда
+ стНастройки.Вставить("ФильтрИмен");
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ИсторияФильтраИмен") тогда
+ стНастройки.Вставить("ИсторияФильтраИмен");
+ стНастройки.ИсторияФильтраИмен = Новый Массив;
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("РазвернутыеСтроки") тогда
+ стНастройки.Вставить("РазвернутыеСтроки");
+ стНастройки.РазвернутыеСтроки = Новый Массив;
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ВыбраннаяСтрока") тогда
+ стНастройки.Вставить("ВыбраннаяСтрока");
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("СтатистикаИспользования") тогда
+ стНастройки.Вставить("СтатистикаИспользования");
+ тзСтатистикаИспользования = Новый ТаблицаЗначений;
+ тзСтатистикаИспользования.Колонки.Добавить("Вид");
+ тзСтатистикаИспользования.Колонки.Добавить("Имя");
+ тзСтатистикаИспользования.Колонки.Добавить("КоличествоИспользований");
+ тзСтатистикаИспользования.Колонки.Добавить("ПоследнееИспользование");
+ стНастройки.СтатистикаИспользования = тзСтатистикаИспользования;
+ КонецЕсли;
+ // Для произвольных статических веток
+ Для каждого КлючЗначение Из МассивСтатическихВеток Цикл
+ ИмяКолонки = КлючЗначение.Имя;
+ Если стНастройки.СтатистикаИспользования.Колонки.Найти(ИмяКолонки) = Неопределено Тогда
+ // Эта колонка была добавлена позже, ее может не быть в сохраненных настройках
+ Попытка
+ стНастройки.СтатистикаИспользования.Колонки.Добавить(ИмяКолонки);
+ Исключение
+ КонецПопытки;
+ КонецЕсли;
+ КонецЦикла;
+ Если НЕ стНастройки.Свойство("Каталоги") тогда
+ стНастройки.Вставить("Каталоги", Новый Соответствие);
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ИсторияКоманд") Тогда
+ стНастройки.Вставить("ИсторияКоманд", ИсторияКоманд);
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ИспользоватьРегулярныеВыражения") Тогда
+ стНастройки.Вставить("ИспользоватьРегулярныеВыражения", ИспользоватьРегулярныеВыражения);
+ КонецЕсли;
+ Если стНастройки.ИспользоватьРегулярныеВыражения Тогда
+ RegExp = Новый COMОбъект("VBScript.RegExp");
+ RegExp.MultiLine = Ложь;
+ RegExp.Global = Истина;
+ RegExp.IgnoreCase = Истина;
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("ПриАвтозапускеОткрыватьФормуСписка") Тогда
+ стНастройки.Вставить("ПриАвтозапускеОткрыватьФормуСписка", ПриАвтозапускеОткрыватьФормуСписка);
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("флИмяСиноним") Тогда
+ стНастройки.Вставить("флИмяСиноним", флИмяСиноним);
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("флИскатьВПодкаталогах") Тогда
+ стНастройки.Вставить("флИскатьВПодкаталогах", Истина);
+ КонецЕсли;
+ Если НЕ стНастройки.Свойство("флВложенныеПодсистемы") Тогда
+ стНастройки.Вставить("флВложенныеПодсистемы", Истина);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ЗаполнитьСтатическиеВеткиДереваИнтерфейса(Знач УстановитьТекущуюСтроку = Неопределено, Знач ИмяРодителяТекущейСтроки = Неопределено) Экспорт
+
+ Если УстановитьТекущуюСтроку <> Неопределено Тогда
+ ИмяДляУстановкиТекущейСтроки = УстановитьТекущуюСтроку.Имя;
+ КонецЕсли;
+ Если СтатическиеВетки = Неопределено ИЛИ ДеревоИнтерфейса.Строки.Количество() = 0 Тогда
+ СтатическиеВетки = Новый Соответствие();
+ Для каждого ЭлементМассива Из МассивСтатическихВеток Цикл
+ Если ЭлементМассива.Использовать = Истина Тогда
+ СтрокаКорняСтатическойВетки = ДеревоИнтерфейса.Строки.Добавить();
+ СтрокаКорняСтатическойВетки.Имя = ЭлементМассива.Имя;
+ СтрокаКорняСтатическойВетки.Представление = ЭлементМассива.Представление;
+ СтатическиеВетки.Вставить(СтрокаКорняСтатическойВетки, ЭлементМассива);
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ элДеревоИнтерфейса = ЭлементыФормы.ДеревоИнтерфейса;
+
+ // Для избежания дублей статистику надо свернуть
+ тзСтатистикаИспользования = стНастройки.СтатистикаИспользования;
+ СтрокаКолонокДляСвертки = "";
+ Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
+ Если СтатическаяВетка.Значение.РазрешитьПеретаскивание = Истина Тогда
+ СтрокаКолонокДляСвертки = СтрокаКолонокДляСвертки + "," + СтатическаяВетка.Значение.Имя;
+ КонецЕсли;
+ КонецЦикла;
+ тзСтатистикаИспользования.Свернуть("Вид,Имя,ПоследнееИспользование", "КоличествоИспользований" + СтрокаКолонокДляСвертки);
+ Для Каждого СтрокаСтатистики Из тзСтатистикаИспользования Цикл
+ Если СтрокаСтатистики.Избранное > 0 Тогда
+ СтрокаСтатистики.Избранное = 1;
+ КонецЕсли;
+ КонецЦикла;
+
+ стПоиск = Новый Структура("Вид,Имя");
+ Для каждого СтатическаяВетка Из СтатическиеВетки Цикл
+ Если СтатическаяВетка.Значение.Использовать = Ложь Тогда
+ Продолжить;
+ КонецЕсли;
+ СтрокаСортировки = СтатическаяВетка.Значение.СтрокаСортировки;
+ Если ЗначениеЗаполнено(СтатическаяВетка.Значение.СортировкаПриОтображении) Тогда
+ СтрокаСортировки = СтрокаСортировки + "," + СтатическаяВетка.Значение.СортировкаПриОтображении;
+ КонецЕсли;
+ тзСтатистикаИспользования.Сортировать(СтрокаСортировки);
+ СтрокиКорня = СтатическаяВетка.Ключ.Строки;
+ СтрокиКорня.Очистить();
+ нВставленоПозиций = 0;
+ Для каждого стрСтатистика из тзСтатистикаИспользования цикл
+ ЗаполнитьЗначенияСвойств(стПоиск, стрСтатистика);
+ Если СтатическаяВетка.Ключ.Строки.НайтиСтроки(стПоиск, Истина).Количество() = 0 Тогда
+ Если нВставленоПозиций > СтатическаяВетка.Значение.КоличествоОтображаемыхЭлементов Тогда
+ Прервать;
+ КонецЕсли;
+ ЗначениеСортировки = стрСтатистика[Лев(СтатическаяВетка.Значение.СтрокаСортировки,Найти(СтатическаяВетка.Значение.СтрокаСортировки, " ")-1)];
+ Если Ложь
+ Или ЗначениеСортировки = Неопределено
+ ИЛИ ЗначениеСортировки = 0
+ ИЛИ ЗначениеСортировки = '00010101' // Попытка универсального подхода к отсечке пустых значений
+ Тогда
+ Прервать;
+ КонецЕсли;
+
+ Если ирОбщий.ЛиСсылкаНаОбъектБДЛкс(стПоиск.Имя, Ложь) Тогда
+ СсылкаПоИД = стПоиск.Имя;
+ Представление = Строка(СсылкаПоИД);
+ Если Истина
+ И СтатическаяВетка.Значение.Фильтровать
+ И НЕ ?(стНастройки.ИспользоватьРегулярныеВыражения,
+ ПроверитьУсловие(Представление, мВременныйФильтрИмен),
+ Найти(НРег(Представление), НРег(мВременныйФильтрИмен)) > 0)
+ Тогда
+ Продолжить;
+ КонецЕсли;
+ стрОбъектИнтерфейса = СтрокиКорня.Добавить();
+ стрОбъектИнтерфейса.Вид = стПоиск.Вид;
+ стрОбъектИнтерфейса.Имя = стПоиск.Имя;
+ //стрОбъектИнтерфейса.Представление = Представление;
+ стрОбъектИнтерфейса.Представление = стПоиск.Имя;
+ стрОбъектИнтерфейса.ИндексКартинки = 62;
+ Иначе
+ // Обработка результатов полнотекстового поиска в случае, если они не видны
+ мСтроки = дзВсеОбъекты.Строки.НайтиСтроки(стПоиск, Истина);
+ Если мСтроки.Количество() = 0 тогда
+ // Попытка поиска среди объектов - не метаданных (работает только с теми элементами, которые видны)
+ мСтроки = ДеревоИнтерфейса.Строки.НайтиСтроки(стПоиск, Истина);
+ Если мСтроки.Количество() = 0 тогда
+ Продолжить;
+ Иначе
+ стрОбъект = мСтроки[0];
+ ИндексКартинки = стрОбъект.ИндексКартинки;
+ КонецЕсли;
+ Иначе
+ стрОбъект = мСтроки[0];
+ ИндексКартинки = стрОбъект.ИндексКартинки;
+ КонецЕсли;
+ Если СтатическаяВетка.Значение.Фильтровать И НЕ ОбъектПроходитФильтры(стрОбъект) тогда
+ Продолжить;
+ КонецЕсли;
+ стрОбъектИнтерфейса = СтрокиКорня.Добавить();
+ стрОбъектИнтерфейса.Вид = стрОбъект.Вид;
+ стрОбъектИнтерфейса.Имя = стрОбъект.Имя;
+ стрОбъектИнтерфейса.Представление = стрОбъект.Представление;
+ стрОбъектИнтерфейса.ИндексКартинки = ИндексКартинки;
+ КонецЕсли;
+ нВставленоПозиций = нВставленоПозиций + 1;
+ КонецЕсли;
+ КонецЦикла;
+ Если НЕ ПустаяСтрока(СтатическаяВетка.Значение.СортировкаПриОтображении) Тогда
+ СтрокиКорня.Сортировать(СтатическаяВетка.Значение.СортировкаПриОтображении);
+ КонецЕсли;
+ РазвернутьВетку = Ложь;
+ Если СтатическаяВетка.Значение.Свойство("Развернуть", РазвернутьВетку) И РазвернутьВетку = Истина Тогда
+ Если НЕ элДеревоИнтерфейса.Развернут(СтатическаяВетка.Ключ) тогда
+ элДеревоИнтерфейса.Развернуть(СтатическаяВетка.Ключ);
+ КонецЕсли;
+ Иначе
+ Если элДеревоИнтерфейса.Развернут(СтатическаяВетка.Ключ) тогда
+ элДеревоИнтерфейса.Свернуть(СтатическаяВетка.Ключ);
+ КонецЕсли;
+ КонецЕсли;
+ СтатическаяВетка.Ключ.Представление = СтатическаяВетка.Значение.Представление;
+ Если СтатическаяВетка.Значение.Свойство("ИндексКартинки") Тогда
+ СтатическаяВетка.Ключ.ИндексКартинки = СтатическаяВетка.Значение.ИндексКартинки;
+ Иначе
+ СтатическаяВетка.Ключ.ИндексКартинки = -1;
+ КонецЕсли;
+ СтатическаяВетка.Ключ.Имя = СтатическаяВетка.Значение.Имя;
+ КонецЦикла;
+ Если ИмяДляУстановкиТекущейСтроки <> Неопределено Тогда
+ Если ЗначениеЗаполнено(ИмяРодителяТекущейСтроки) Тогда
+ НоваяТекущаяСтрока = ДеревоИнтерфейса.Строки.Найти(ИмяРодителяТекущейСтроки, "Имя").Строки.Найти(ИмяДляУстановкиТекущейСтроки, "Имя");
+ Иначе
+ НоваяТекущаяСтрока = ДеревоИнтерфейса.Строки.Найти(ИмяДляУстановкиТекущейСтроки, "Имя");
+ КонецЕсли;
+ Если НоваяТекущаяСтрока <> Неопределено Тогда
+ элДеревоИнтерфейса.ТекущаяСтрока = НоваяТекущаяСтрока;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ЗаполнитьДеревоИнтерфейса() Экспорт
+
+ стСтрока = СохранитьВыбраннуюСтроку();
+ мРазвернутыеВетви = СохранитьРазвернутыеВетви();
+ ДеревоИнтерфейса.Строки.Очистить();
+ ЗаполнитьСтатическиеВеткиДереваИнтерфейса();
+ ПоискПоМетаданным();
+ элДерево = ЭлементыФормы.ДеревоИнтерфейса;
+ ТекущаяСтрокаУстановлена = ВосстановитьВыбраннуюСтроку(стСтрока);
+ //Если НЕ (СтатическиеВетки[элДерево.ТекущаяСтрока] = Неопределено) И
+ // элДерево.ТекущаяСтрока.Строки.Количество() > 0
+ //Тогда
+ // элДерево.ТекущаяСтрока = элДерево.ТекущаяСтрока.Строки[0];
+ //КонецЕсли;
+ //ВосстановитьРазвернутыеВетви(мРазвернутыеВетви);
+ ИндексНачальнойСтроки = 4;
+ ЧислоДинамическихСтрок = 0;
+ ТаблицаТиповМетаОбъектов = мПлатформа.ТаблицаТиповМетаОбъектов;
+ Счетчик = 1;
+ Для Индекс = ИндексНачальнойСтроки По ДеревоИнтерфейса.Строки.Количество() - 1 Цикл
+ СтрокаДерева = ДеревоИнтерфейса.Строки[Индекс];
+ ВсеСтроки = ирОбщий.ВсеСтрокиДереваЗначенийЛкс(СтрокаДерева);
+ Для Каждого ДочерняяСтрокаДерева Из ВсеСтроки Цикл
+ Если ирОбщий.ЛиКорневойТипВнешнегоИсточникаДанныхЛкс(ирОбщий.ПервыйФрагментЛкс(ДочерняяСтрокаДерева.Вид)) Тогда
+ ДочерняяСтрокаДерева.ПолноеИмяОбъекта = "" + ДочерняяСтрокаДерева.Вид + ".Таблица." + ДочерняяСтрокаДерева.Имя;
+ Иначе
+ СтрокаТипаМетаОбъектов = ТаблицаТиповМетаОбъектов.Найти(ДочерняяСтрокаДерева.Вид, "Множественное");
+ Если Ложь
+ Или СтрокаТипаМетаОбъектов = Неопределено
+ //Или СтрокаТипаМетаОбъектов.Категория <> 0
+ Тогда
+ Продолжить;
+ КонецЕсли;
+ ДочерняяСтрокаДерева.ПолноеИмяОбъекта = "" + СтрокаТипаМетаОбъектов.Единственное + "." + ДочерняяСтрокаДерева.Имя;
+ КонецЕсли;
+ ДочерняяСтрокаДерева.Порядок = Счетчик;
+ Счетчик = Счетчик + 1;
+ //ОписаниеТаблицы = ирОбщий.ПолучитьОписаниеТаблицыБДИис(ДочерняяСтрокаДерева.ПолноеИмяОбъекта);
+ //Если Истина
+ // И ОписаниеТаблицы <> Неопределено
+ // И ОписаниеТаблицы.КоличествоСтрок <> Неопределено
+ //Тогда
+ // ирОбщий.ДобавитьКоличествоСтрокРодителюЛкс(ДочерняяСтрокаДерева, ОписаниеТаблицы.КоличествоСтрок);
+ //КонецЕсли;
+ КонецЦикла;
+ СтрокаДерева.Порядок = Счетчик;
+ Счетчик = Счетчик + 1;
+ ЧислоДинамическихСтрок = ЧислоДинамическихСтрок + ВсеСтроки.Количество();
+ КонецЦикла;
+ //ТекущаяСтрокаУстановлена = ТекущаяСтрокаУстановлена И элДерево.ТекущаяСтрока <> элДерево.Значение.Строки[ИндексНачальнойСтроки];
+ Если ЧислоДинамическихСтрок > 0 Тогда
+ Если ЧислоДинамическихСтрок <= 30 Тогда
+ ирОбщий.ТабличноеПолеДеревоЗначений_РазвернутьВсеСтрокиЛкс(элДерево, ИндексНачальнойСтроки);
+ Если Не ТекущаяСтрокаУстановлена Тогда
+ элДерево.ТекущаяСтрока = элДерево.Значение.Строки[ИндексНачальнойСтроки].Строки[0];
+ КонецЕсли;
+ Иначе
+ Если Не ТекущаяСтрокаУстановлена Тогда
+ элДерево.ТекущаяСтрока = элДерево.Значение.Строки[ИндексНачальнойСтроки];
+ КонецЕсли;
+ КонецЕсли;
+ Иначе
+ Если Истина
+ И Не ТекущаяСтрокаУстановлена
+ И НЕ (СтатическиеВетки[элДерево.ТекущаяСтрока] = Неопределено)
+ И элДерево.ТекущаяСтрока.Строки.Количество() > 0
+ Тогда
+ элДерево.ТекущаяСтрока = элДерево.ТекущаяСтрока.Строки[0];
+ КонецЕсли;
+ КонецЕсли;
+ //ирОбщий.ЗаполнитьКоличествоСтрокТаблицВДеревеМетаданныхЛкс(ДеревоИнтерфейса);
+
+КонецПроцедуры
+
+Функция ВосстановитьВыбраннуюСтроку(стСтрока)
+
+ ТекСтрока = Неопределено;
+
+ Если стСтрока <> Неопределено тогда
+ Если стСтрока.Уровень = 0 тогда
+ ТекСтрока = ДеревоИнтерфейса.Строки.Найти(стСтрока.Представление, "Представление", Ложь);
+ Иначе
+ стрРодитель = ДеревоИнтерфейса.Строки.Найти(стСтрока.Родитель, "Представление", Ложь);
+ Если стрРодитель <> Неопределено тогда
+ стПоиск = Новый Структура("Вид,Имя", стСтрока.Вид, стСтрока.Имя);
+ мСтроки = стрРодитель.Строки.НайтиСтроки(стПоиск, Ложь);
+ Если мСтроки.Количество() > 0 тогда
+ ТекСтрока = мСтроки[0];
+ Иначе
+ Если стрРодитель.Строки.Количество() > 0 тогда
+ ТекСтрока = стрРодитель.Строки[0];
+ Иначе
+ ТекСтрока = стрРодитель;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ Если ТекСтрока <> Неопределено Тогда
+ ЭлементыФормы.ДеревоИнтерфейса.ТекущаяСтрока = ТекСтрока;
+ Возврат Истина;
+ Иначе
+ Возврат Ложь;
+ КонецЕсли;
+
+КонецФункции
+
+Функция СохранитьРазвернутыеВетви()
+
+ мВетви = Новый Массив;
+ элДеревоИнтерфейса = ЭлементыФормы.ДеревоИнтерфейса;
+ Для каждого стрВетвь из ДеревоИнтерфейса.Строки цикл
+ //// Пропустим статические
+ //Если НЕ СтатическиеВетки[стрВетвь] = Неопределено Тогда
+ // Продолжить;
+ //КонецЕсли;
+ Если элДеревоИнтерфейса.Развернут(стрВетвь) тогда
+ мВетви.Добавить(стрВетвь.Представление);
+ КонецЕсли;
+ КонецЦикла;
+ Возврат мВетви;
+
+КонецФункции
+
+Процедура ВосстановитьРазвернутыеВетви(Знач мРазвернутыеВетви) Экспорт
+
+ элДеревоИнтерфейса = ЭлементыФормы.ДеревоИнтерфейса;
+ СтрокиДереваИнтерфейса = ДеревоИнтерфейса.Строки;
+
+ Для каждого ПредставлениеВетви из мРазвернутыеВетви цикл
+
+ стрВетвь = СтрокиДереваИнтерфейса.Найти(ПредставлениеВетви, "Представление", Ложь);
+ Если стрВетвь <> Неопределено тогда
+ элДеревоИнтерфейса.Развернуть(стрВетвь);
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры // ВосстановитьРазвернутыеВетви
+
+Процедура ДобавитьОбъект(СтрокиВетви, Знач ОбъектМД, Знач ВидОбъекта, Знач ИндексКартинки, ИспользоватьПолноеИмя = Ложь)
+
+ #Если Сервер И Не Сервер Тогда
+ ОбъектМД = Метаданные.Справочники.Валюты;
+ #КонецЕсли
+ стрСтрока = СтрокиВетви.Добавить();
+ Если ИспользоватьПолноеИмя Тогда
+ стрСтрока.Вид = ОбъектМД.Родитель().ПолноеИмя();
+ Иначе
+ стрСтрока.Вид = ВеткиМетаданных.НайтиПоЗначению(ВидОбъекта).Представление;
+ КонецЕсли;
+ стрСтрока.Имя = ОбъектМД.Имя;
+ стрСтрока.Представление = ОбъектМД.Представление();
+ стрСтрока.ИндексКартинки = ИндексКартинки;
+ спПодсистемы = Новый СписокЗначений;
+ //Для каждого Подсистема из МетаД.Подсистемы цикл
+ // ИмяПодсистемы = Подсистема.Имя;
+ // спПодсистемы.Добавить(ИмяПодсистемы);
+ //
+ // стрПодсистема = дзВсеПодсистемы.Строки.Найти(ИмяПодсистемы, "Имя", Истина);
+ // Пока стрПодсистема.Родитель <> Неопределено цикл
+ // стрПодсистема = стрПодсистема.Родитель;
+ //
+ // Если спПодсистемы.НайтиПоЗначению(стрПодсистема.Имя) = Неопределено тогда
+ // спПодсистемы.Добавить(стрПодсистема.Имя);
+ // КонецЕсли;
+ // КонецЦикла;
+ //КонецЦикла;
+ стрСтрока.Подсистемы = спПодсистемы;
+
+КонецПроцедуры
+
+Процедура ДобавитьВетвьМетаданных(КоллекцияМД, Знач ИмяВетви, Знач КартинкаВетви=0, Знач КартинкаОбъекта=0, Знач ИспользоватьПолноеИмя = Ложь)
+
+ стрВетвь = дзВсеОбъекты.Строки.Добавить();
+ ПредставлениеВетви = ВеткиМетаданных.НайтиПоЗначению(ИмяВетви);
+ Если ПредставлениеВетви <> Неопределено Тогда
+ стрВетвь.Представление = ПредставлениеВетви;
+ Иначе
+ стрВетвь.Представление = ИмяВетви;
+ КонецЕсли;
+ стрВетвь.Имя = ИмяВетви;
+ стрВетвь.ИндексКартинки = КартинкаВетви;
+ СтрокиВетви = стрВетвь.Строки;
+ Для каждого ОбъектМД из КоллекцияМД цикл
+ Попытка
+ ЕстьПраво = ПравоДоступа("Просмотр", ОбъектМД);
+ Исключение
+ Попытка
+ ЕстьПраво = ПравоДоступа("Использование", ОбъектМД);
+ Исключение
+ ЕстьПраво = Ложь;
+ КонецПопытки;
+ КонецПопытки;
+ Если ЕстьПраво Тогда
+ ДобавитьОбъект(СтрокиВетви, ОбъектМД, ИмяВетви, КартинкаОбъекта, ИспользоватьПолноеИмя);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ЗаполнитьДеревоВсехОбъектов() Экспорт
+
+ дзВсеОбъекты = Новый ДеревоЗначений;
+ дзВсеОбъекты.Колонки.Добавить("Имя");
+ дзВсеОбъекты.Колонки.Добавить("Вид");
+ дзВсеОбъекты.Колонки.Добавить("Представление");
+ дзВсеОбъекты.Колонки.Добавить("ИндексКартинки");
+ дзВсеОбъекты.Колонки.Добавить("Подсистемы");
+ ДобавитьВетвьМетаданных(Метаданные.ОбщиеФормы, "Общие формы", 6, 7);
+ ДобавитьВетвьМетаданных(Метаданные.Интерфейсы, "Интерфейсы", 54, 55);
+ ДобавитьВетвьМетаданных(Метаданные.Константы, "Константы", 20, 0);
+ ДобавитьВетвьМетаданных(Метаданные.Справочники, "Справочники", 2, 3);
+ стрКорень = дзВсеОбъекты.Строки.Добавить();
+ стрКорень.Представление = "Документы";
+ стрКорень.Имя = стрКорень.Представление;
+ стрКорень.ИндексКартинки = 12;
+ СтрокиКорня = стрКорень.Строки;
+ Для каждого МетаД из Метаданные.ЖурналыДокументов цикл
+ Если ПравоДоступа("Просмотр", МетаД) тогда
+ ДобавитьОбъект(СтрокиКорня, МетаД, "Журналы документов", 15);
+ КонецЕсли;
+ КонецЦикла;
+ Для каждого МетаД из Метаданные.Документы цикл
+ Если ПравоДоступа("Просмотр", МетаД) тогда
+ ДобавитьОбъект(СтрокиКорня, МетаД, "Документы", 13);
+ КонецЕсли;
+ КонецЦикла;
+ ДобавитьВетвьМетаданных(Метаданные.ПланыВидовХарактеристик, "Планы видов характеристик", 37, 38);
+ ДобавитьВетвьМетаданных(Метаданные.ПланыСчетов, "Планы счетов", 39, 40);
+ ДобавитьВетвьМетаданных(Метаданные.ПланыВидовРасчета, "Планы видов расчета", 47, 48);
+ ДобавитьВетвьМетаданных(Метаданные.Отчеты, "Отчеты", 23, 24);
+ ДобавитьВетвьМетаданных(Метаданные.Обработки, "Обработки", 18, 19);
+ ДобавитьВетвьМетаданных(Метаданные.РегистрыСведений, "Регистры сведений", 33, 34);
+ ДобавитьВетвьМетаданных(Метаданные.РегистрыНакопления, "Регистры накопления", 31, 32);
+ ДобавитьВетвьМетаданных(Метаданные.РегистрыБухгалтерии, "Регистры бухгалтерии", 41, 42);
+ ДобавитьВетвьМетаданных(Метаданные.Перечисления, "Перечисления", 9, 10);
+ ДобавитьВетвьМетаданных(Метаданные.РегистрыРасчета, "Регистры расчета", 49, 50);
+ ДобавитьВетвьМетаданных(Метаданные.БизнесПроцессы, "Бизнес-процессы", 43, 44);
+ ДобавитьВетвьМетаданных(Метаданные.Задачи, "Задачи", 45, 46);
+ ДобавитьВетвьМетаданных(Метаданные.ПланыОбмена, "Планы обмена", 51, 52);
+ Если ирКэш.НомерВерсииПлатформыЛкс() >= 802014 Тогда
+ Для Каждого МетаВнешнийИсточникДанных Из Метаданные.ВнешниеИсточникиДанных Цикл
+ Если флИмяСиноним Тогда
+ ПредставлениеИсточникаДанных = МетаВнешнийИсточникДанных.Имя;
+ Иначе
+ ПредставлениеИсточникаДанных = МетаВнешнийИсточникДанных.Представление();
+ КонецЕсли;
+ //СуффикВидаТаблиц = ". Таблицы";
+ СуффикВидаТаблиц = "";
+ ИмяВетви = "ВнешнийИсточникДанных." + ПредставлениеИсточникаДанных + СуффикВидаТаблиц;
+ ПредставлениеВетви = "Внешние. " + ПредставлениеИсточникаДанных + СуффикВидаТаблиц;
+ ВеткиМетаданных.Добавить(ИмяВетви, ПредставлениеВетви);
+ ДобавитьВетвьМетаданных(МетаВнешнийИсточникДанных.Таблицы, ИмяВетви, 64, 65, Истина);
+ КонецЦикла;
+ КонецЕсли;
+ ВыводСодержимогоКаталогов(дзВсеОбъекты);
+ ВыводСохраненныхВнешнихОбработок(дзВсеОбъекты);
+ ВыводСохраненныхНастроекОтчетов(дзВсеОбъекты);
+ СортироватьВторойУровеньДерева(дзВсеОбъекты);
+
+КонецПроцедуры
+
+Процедура СортироватьВторойУровеньДерева(Дерево) Экспорт
+
+ ИмяОсновногоПредставления = ПолучитьИмяОсновногоПредставления();
+ Для каждого стрВетви из Дерево.Строки цикл
+ стрВетви.Строки.Сортировать("Вид УБЫВ, " + ИмяОсновногоПредставления, Ложь);
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ПоискПоМетаданным()
+ Перем НайденныйОбъект;
+ СтрокаНулей = "00000000000000";
+ ОбъектыВыбранныхПодсистем = ирОбщий.ОбъектыПодсистемЛкс(ФильтрПодсистем);
+ Для каждого стрКорень из дзВсеОбъекты.Строки цикл
+
+ СтрокиКорня = Неопределено;
+ Для каждого стрОбъект из стрКорень.Строки цикл
+ Если НЕ ОбъектПроходитФильтры(стрОбъект,, ВеткиМетаданных.НайтиПоЗначению(стрКорень.Имя) <> Неопределено, ОбъектыВыбранныхПодсистем) тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если СтрокиКорня = Неопределено тогда
+ стрКореньИнтерфейса = ДеревоИнтерфейса.Строки.Добавить();
+ стрКореньИнтерфейса.Представление = стрКорень.Представление;
+ стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
+ стрКореньИнтерфейса.ИндексКартинки = стрКорень.ИндексКартинки;
+
+ СтрокиКорня = стрКореньИнтерфейса.Строки;
+ КонецЕсли;
+
+ стрОбъектИнтерфейса = СтрокиКорня.Добавить();
+ стрОбъектИнтерфейса.Вид = стрОбъект.Вид;
+ стрОбъектИнтерфейса.Имя = стрОбъект.Имя;
+ стрОбъектИнтерфейса.Представление = стрОбъект.Представление;
+ стрОбъектИнтерфейса.ИндексКартинки = стрОбъект.ИндексКартинки;
+
+ Если флПробоватьУмныйПоиск = Истина Тогда
+ Попытка
+ ОбъектМД = Метаданные[стрОбъект.Вид][стрОбъект.Имя];
+ Исключение
+ // Метаданные кончились
+ Возврат
+ КонецПопытки;
+
+ Если Ложь
+ Или стрОбъект.Вид = "Справочники"
+ ИЛИ стрОбъект.Вид = "ПланыВидовХарактеристик"
+ ИЛИ стрОбъект.Вид = "ПланыСчетов"
+ ИЛИ стрОбъект.Вид = "ПланыВидовРасчета"
+ ИЛИ стрОбъект.Вид = "Документы"
+ ИЛИ стрОбъект.Вид = "БизнесПроцессы"
+ ИЛИ стрОбъект.Вид = "Задачи"
+ Тогда
+ Если Ложь
+ Или стрОбъект.Вид = "Справочники"
+ ИЛИ стрОбъект.Вид = "ПланыВидовХарактеристик"
+ ИЛИ стрОбъект.Вид = "ПланыСчетов"
+ ИЛИ стрОбъект.Вид = "ПланыВидовРасчета"
+ Тогда
+ ДлинаКода = ОбъектМД.ДлинаКода;
+ Если Истина
+ И ДлинаКода > 0
+ И (Ложь// Есть где искать по коду
+ Или стрОбъект.Вид = "ПланыВидовХарактеристик" // Либо это план видов характеристик (только строковые коды)
+ Или стрОбъект.Вид = "ПланыСчетов" // Либо это план счетов (только строковые коды)
+ Или (ЧислоСуффиксаУмногоПоиска = 0 И Строка(ОбъектМД.ТипКода)="Строка") // Либо тип кода строковый
+ Или (ЧислоСуффиксаУмногоПоиска>0 И Строка(ОбъектМД.ТипКода)="Число") // Искомый суффикс похож на число
+ )
+ Тогда
+ Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоКоду(СтрокаСуффиксаУмногоПоиска)" );
+ Если НЕ НайденныйОбъект.Пустая() Тогда
+ СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
+ //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
+ СтрокаОбъекта.Имя = НайденныйОбъект;
+ СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
+ СтрокаОбъекта.Представление = НайденныйОбъект;
+ СтрокаОбъекта.ИндексКартинки = 62;
+ Продолжить
+ КонецЕсли
+ КонецЕсли;
+
+ Если ОбъектМД.ДлинаНаименования > 0 Тогда
+ Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоНаименованию(СтрокаСуффиксаУмногоПоиска, Ложь" + ?(стрОбъект.Вид="ПланыСчетов", ", " + стрОбъект.Вид + "." + стрОбъект.Имя + ".ПустаяСсылка())", ")") );
+ Если НЕ НайденныйОбъект.Пустая() Тогда
+
+ СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
+ //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
+ СтрокаОбъекта.Имя = НайденныйОбъект;
+ СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
+ СтрокаОбъекта.Представление = НайденныйОбъект;
+ СтрокаОбъекта.ИндексКартинки = 62;
+ Продолжить
+
+ КонецЕсли;
+ КонецЕсли;
+
+ ИначеЕсли Ложь
+ Или стрОбъект.Вид = "Документы"
+ ИЛИ стрОбъект.Вид = "БизнесПроцессы"
+ ИЛИ стрОбъект.Вид = "Задачи"
+ Тогда
+ ДлинаНомера = ОбъектМД.ДлинаНомера ;
+ Если ДлинаНомера > 0 И ((ЧислоСуффиксаУмногоПоиска>0 И Строка(ОбъектМД.ТипНомера) = "Число") ИЛИ (ЧислоСуффиксаУмногоПоиска=0 И Строка(ОбъектМД.ТипНомера)="Строка")) Тогда
+ Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоНомеру("+?(стрОбъект.Вид="Задачи", "СтрокаСуффиксаУмногоПоиска)", "СтрокаСуффиксаУмногоПоиска, РабочаяДата)" ));
+ Если НЕ НайденныйОбъект.Пустая() Тогда
+ СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
+ //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
+ СтрокаОбъекта.Имя = НайденныйОбъект;
+ СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
+ СтрокаОбъекта.Представление = НайденныйОбъект;
+ СтрокаОбъекта.ИндексКартинки = 62;
+ Продолжить
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ // Если поиск по коду, наименованию, номеру не удался, попробуем поискать по индексируемым реквизитам
+ Для каждого РеквизитОбъектаМД Из ОбъектМД.Реквизиты Цикл
+ Если РеквизитОбъектаМД.Индексирование <> Метаданные.СвойстваОбъектов.Индексирование.НЕИндексировать Тогда
+ Выполнить("НайденныйОбъект = " + стрОбъект.Вид + "." + стрОбъект.Имя + ".НайтиПоРеквизиту(РеквизитОбъектаМД.Имя, СтрокаСуффиксаУмногоПоиска)");
+ Если НЕ НайденныйОбъект.Пустая() Тогда
+
+ СтрокаОбъекта = ДеревоИнтерфейса.Строки.Вставить(0);
+ //СтрокаОбъекта.Имя = НайденныйОбъект.УникальныйИдентификатор();
+ СтрокаОбъекта.Имя = НайденныйОбъект;
+ СтрокаОбъекта.Вид = НайденныйОбъект.Метаданные().ПолноеИмя();
+ СтрокаОбъекта.Представление = НайденныйОбъект;
+ СтрокаОбъекта.ИндексКартинки = 62;
+ Продолжить
+
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+
+ КонецЕсли;
+ КонецЦикла;
+
+ КонецЦикла;
+
+
+КонецПроцедуры
+
+Процедура ВыводСодержимогоКаталогов(ДеревоОбъектов = Неопределено, СтрокаПоиска="")
+
+// Вывод содержимого каталогов
+ Для каждого Каталог Из стНастройки.Каталоги Цикл
+ СтрокиКорня = Неопределено;
+ МассивНайденныхФайлов = НайтиФайлы(Каталог.Ключ, "*", флИскатьВПодкаталогах=Истина);
+ Для каждого НайденныйФайл Из МассивНайденныхФайлов Цикл
+ Расширение = ВРЕГ(НайденныйФайл.Расширение);
+ Если Расширение = ".EPF" Тогда
+ ВидФайла = "Внешние обработки";
+ ИндексКартинки = 19; // 56;
+ ИначеЕсли Расширение = ".ERF" Тогда
+ ВидФайла = "Внешние отчеты";
+ ИндексКартинки = 19; // 57;
+ ИначеЕсли Расширение = ".TXT" Тогда
+ ВидФайла = "Текстовые документы";
+ ИндексКартинки = 58;
+ ИначеЕсли Расширение = ".MXL" Тогда
+ ВидФайла = "Табличные документы";
+ ИндексКартинки = 59;
+ ИначеЕсли Расширение = ".RCF" Тогда
+ ВидФайла = "Настройки консоли отчетов";
+ ИндексКартинки = 60;
+ ИначеЕсли Расширение = ".SEL" Тогда
+ ВидФайла = "Настройки консоли запросов";
+ ИндексКартинки = 61;
+ Иначе
+ Продолжить;
+ КонецЕсли;
+
+ Если НЕ ОбъектПроходитФильтры(НайденныйФайл.ИмяБезРасширения, СтрокаПоиска) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если СтрокиКорня = Неопределено тогда
+ стрКореньИнтерфейса = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса.Строки.Добавить(), ДеревоОбъектов.Строки.Добавить()) ;
+ стрКореньИнтерфейса.Представление = Каталог.Значение;
+ стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
+ стрКореньИнтерфейса.ИндексКартинки = 12;
+ СтрокиКорня = стрКореньИнтерфейса.Строки;
+ КонецЕсли;
+ стрОбъектИнтерфейса = СтрокиКорня.Добавить();
+ стрОбъектИнтерфейса.Вид = ВидФайла;
+ стрОбъектИнтерфейса.Имя = НайденныйФайл.ПолноеИмя;
+ стрОбъектИнтерфейса.Представление = НайденныйФайл.ИмяБезРасширения;
+ стрОбъектИнтерфейса.ИндексКартинки = ИндексКартинки;
+ КонецЦикла;
+ КонецЦикла;
+
+КонецПроцедуры
+
+Процедура ВыводСохраненныхНастроекОтчетов(ДеревоОбъектов = Неопределено, СтрокаПоиска = "")
+
+ // Вывод сохраненных настроек отчетов
+ Если ЕстьУниверсальныйОтчет И Есть_РС_СохраненныеНастройки Тогда
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ
+ | СохраненныеНастройки.ИмяОбъекта КАК Вид,
+ | СохраненныеНастройки.НаименованиеНастройки как Имя,
+ | СохраненныеНастройки.НаименованиеНастройки как Представление,
+ | 24 как ИндексКартинки
+ |ИЗ
+ | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
+ |ГДЕ
+ | Выразить(СохраненныеНастройки.ИмяОбъекта как Строка(12)) = ""ОтчетОбъект.""
+ | И СохраненныеНастройки.Пользователь = &ТекущийПользователь";
+
+ Запрос.УстановитьПараметр("ТекущийПользователь", мТекущийПользователь);
+
+ РезультатЗапросаПоНастройкам = Запрос.Выполнить();
+ Если НЕ РезультатЗапросаПоНастройкам.Пустой() Тогда
+
+ СтрокаКорняОтчетов = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Найти("Отчеты");
+ ВыборкаНастроек = РезультатЗапросаПоНастройкам.Выбрать();
+ Пока ВыборкаНастроек.Следующий() Цикл
+ Если НЕ ОбъектПроходитФильтры(ВыборкаНастроек.Представление, СтрокаПоиска) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если СтрокаКорняОтчетов = Неопределено Тогда
+ стрКореньИнтерфейса = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Добавить();
+ стрКореньИнтерфейса.Представление = "Отчеты";
+ стрКореньИнтерфейса.Имя = стрКореньИнтерфейса.Представление;
+ стрКореньИнтерфейса.ИндексКартинки = 23;
+ СтрокиКорня = стрКореньИнтерфейса.Строки;
+ Иначе
+ СтрокиКорня = СтрокаКорняОтчетов.Строки;
+ КонецЕсли;
+
+ ИмяОтчета = Сред(ВыборкаНастроек.Вид, Найти(ВыборкаНастроек.Вид, ".")+1);
+ СтрокаОтчетаДляНастройки = СтрокиКорня.Найти(ИмяОтчета, "Имя", Истина);
+ Если СтрокаОтчетаДляНастройки = Неопределено Тогда
+ МДОтчет = Метаданные.Отчеты.Найти(ИмяОтчета);
+ Если МДОтчет = Неопределено Тогда
+ // Случай, когда в регистре сведний хранится название уже несуществующего отчета
+ Продолжить;
+ Иначе
+ СтрокаОтчетаДляНастройки = СтрокиКорня.Добавить();
+ СтрокаОтчетаДляНастройки.Вид = "Отчеты";
+ СтрокаОтчетаДляНастройки.Имя = ИмяОтчета;
+ СтрокаОтчетаДляНастройки.Представление = МДОтчет.Синоним;
+ СтрокаОтчетаДляНастройки.ИндексКартинки = 23;
+ КонецЕсли;
+ КонецЕсли;
+ стрОбъектИнтерфейса = СтрокаОтчетаДляНастройки.Строки.Добавить();
+ ЗаполнитьЗначенияСвойств(стрОбъектИнтерфейса, ВыборкаНастроек);
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ВыводСохраненныхВнешнихОбработок(ДеревоОбъектов = Неопределено, СтрокаПоиска = "")
+
+ // Вывод сохраненных внешних обработок
+ Если ЕстьСправочникВнешнихОбработок Тогда
+ Если Не ПравоДоступа("Чтение", Метаданные.Справочники.ВнешниеОбработки) Тогда
+ Возврат;
+ КонецЕсли;
+ Запрос = Новый Запрос;
+ Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
+ | Наименование как Представление, Код как Имя, ""СправочникВнешниеОбработки"" как Вид,
+ | 19 как ИндексКартинки
+ |ИЗ
+ | Справочник.ВнешниеОбработки";
+
+ РезультатЗапросаПоСправочникуОбработок = Запрос.Выполнить();
+ Если НЕ РезультатЗапросаПоСправочникуОбработок.Пустой() Тогда
+ ПредставлениеКорняВнешнихОбработок = "Справочник ""Внешние обработки""";
+ СтрокаКорняВнешнихОбработок = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Найти(ПредставлениеКорняВнешнихОбработок);
+ Если СтрокаКорняВнешнихОбработок = Неопределено Тогда
+ СтрокаКорняВнешнихОбработок = ?(ДеревоОбъектов = Неопределено, ДеревоИнтерфейса, ДеревоОбъектов).Строки.Добавить();
+ СтрокаКорняВнешнихОбработок.Представление = ПредставлениеКорняВнешнихОбработок;
+ СтрокаКорняВнешнихОбработок.Имя = СтрокаКорняВнешнихОбработок.Представление;
+ СтрокаКорняВнешнихОбработок.ИндексКартинки = 18;
+ КонецЕсли;
+ СтрокиКорня = СтрокаКорняВнешнихОбработок.Строки;
+ ВыборкаПоСправочникуВнешнихОбработок = РезультатЗапросаПоСправочникуОбработок.Выбрать();
+ Пока ВыборкаПоСправочникуВнешнихОбработок.Следующий() Цикл
+ Если ОбъектПроходитФильтры(ВыборкаПоСправочникуВнешнихОбработок.Представление, СтрокаПоиска) Тогда
+ стрОбъектИнтерфейса = СтрокаКорняВнешнихОбработок.Строки.Добавить();
+ ЗаполнитьЗначенияСвойств(стрОбъектИнтерфейса, ВыборкаПоСправочникуВнешнихОбработок);
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+// проверяет условия с помощью регулярных выражений,
+// если НЕ ТолькоПроверка - заменяет выражение с помощью шаблона ШаблонЗамены и возвращает в переменной ИтоговаяСтрока
+Функция ПроверитьУсловие(СтрокаПоиска, ШаблонПоиска, ТолькоПроверка = Истина, ШаблонЗамены = "", ИтоговаяСтрока = "") Экспорт
+
+ Попытка
+ RegExp.Pattern = ШаблонПоиска;
+ Найдено = RegExp.Test(СтрокаПоиска);
+ Исключение
+ //ирОбщий.СообщитьЛкс(ОписаниеОшибки());
+ Возврат Ложь;
+ КонецПопытки;
+
+ Если Не Найдено Или ТолькоПроверка тогда
+ ИтоговаяСтрока = "";
+ возврат Найдено ;
+ Иначе
+ ИтоговаяСтрока = RegExp.Replace(СтрокаПоиска, ШаблонЗамены);
+ возврат Найдено;
+ КонецЕсли;
+
+КонецФункции // ПроверитьУсловие()
+
+Функция ПолучитьИмяОсновногоПредставления()
+
+ Если флИмяСиноним Тогда
+ ИмяКолонкиПредставления = "Имя";
+ Иначе
+ ИмяКолонкиПредставления = "Представление";
+ КонецЕсли;
+ Возврат ИмяКолонкиПредставления;
+
+КонецФункции
+
+Функция ОбъектПроходитФильтры(стрОбъект, Знач СтрокаПоиска = "", ПроверятьПодсистему = Ложь, ОбъектыВыбранныхПодсистем = Неопределено) Экспорт
+
+ Если СтрокаПоиска = "" Тогда
+ СтрокаПоиска = мВременныйФильтрИмен;
+ КонецЕсли;
+
+ // Поиск - по представлению
+ Если ТипЗнч(СтрОбъект) = Тип("СтрокаДереваЗначений") Тогда
+ ИмяКолонкиПредставления = ПолучитьИмяОсновногоПредставления();
+ Представление = стрОбъект[ИмяКолонкиПредставления];
+ Иначе
+ // В случае передачи имени файла
+ Представление = стрОбъект;
+ КонецЕсли;
+
+ МассивФрагментов = ирОбщий.СтрРазделитьЛкс(СтрокаПоиска, " ", Истина);
+ Для Каждого СтрокаПоиска Из МассивФрагментов Цикл
+ // Собственно, поиск по подстроке
+ Если НЕ ПустаяСтрока(СокрЛП(СтрокаПоиска)) Тогда
+ Если Ложь
+ Или (Истина
+ И стНастройки.ИспользоватьРегулярныеВыражения
+ И Не ПроверитьУсловие(Представление, СтрокаПоиска)) // Проверка регулярным выражением
+ Или (Истина
+ И Не стНастройки.ИспользоватьРегулярныеВыражения
+ И Найти(НРег(Представление), НРег(СтрокаПоиска)) = 0) // Проверка обычным поиском
+ Тогда
+ // Полная строка не нашлась, попробуем найти строку без уточняющего суффикса
+ Если флПробоватьУмныйПоиск = Истина Тогда
+ Если Ложь
+ Или (Истина
+ И стНастройки.ИспользоватьРегулярныеВыражения
+ И Не ПроверитьУсловие(Представление, СтрокаУмногоПоискаБезСуффикса)) // Проверка регулярным выражением
+ Или (Истина
+ И Не стНастройки.ИспользоватьРегулярныеВыражения
+ И Найти(НРег(Представление), НРег(СтрокаУмногоПоискаБезСуффикса)) = 0) // Проверка обычным поиском
+ Тогда
+ Возврат Ложь;
+ КонецЕсли
+ Иначе
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+
+ // Отбор по подсистемам - самый медленный, оставим его напоследок
+ Если Истина
+ И ПроверятьПодсистему
+ И ФильтрПодсистем.Количество() > 0
+ Тогда
+ // Убрать мусор, который не относится к подсистемам
+ Если стрОбъект.Вид = "СправочникВнешниеОбработки" Тогда
+ Возврат Ложь;
+ КонецЕсли;
+ Если ирКэш.НомерИзданияПлатформыЛкс() >= "82" Тогда
+ ОбъектМД = Метаданные[стрОбъект.Вид][стрОбъект.Имя];
+ Если ОбъектыВыбранныхПодсистем[ОбъектМД] = Неопределено тогда
+ Возврат Ложь;
+ КонецЕсли;
+ Иначе
+ Если Не ирОбщий.ЛиСпискиПодсистемПересекаютсяЛкс(ФильтрПодсистем, стрОбъект.Подсистемы) тогда
+ Возврат Ложь;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЕсли;
+
+ Возврат Истина;
+
+КонецФункции
+
Процедура КоманднаяПанельДереваИнтерфейсаДобавитьПапку(Кнопка)
ВыборКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
@@ -973,7 +1987,7 @@
ВвестиСтроку(ПредставлениеКаталога, "Представление каталога");
стНастройки.Каталоги.Вставить(ВыборКаталога.Каталог, ПредставлениеКаталога);
ЗаполнитьДеревоВсехОбъектов();
- ЗаполнитьДеревоИнтерфейса(ЭтаФорма);
+ ЗаполнитьДеревоИнтерфейса();
КонецЕсли;
КонецПроцедуры
@@ -1002,16 +2016,12 @@
КонецЦикла;
КонецПроцедуры // Автозапуск()
-Процедура ФоновыйПоиск() Экспорт
-
- ВыполнитьФоновыйПоиск();
-
- //ОтключитьОбработчикОжидания("ФоновыйПоиск");
-
-КонецПроцедуры
-
Процедура кнНастройкаНажатие(Элемент)
- ПолучитьФорму("Настройка").ОткрытьМодально();
+ РезультатФормы = ПолучитьФорму("Настройка").ОткрытьМодально();
+ Если РезультатФормы = Истина Тогда
+ ЗаполнитьЗначенияСвойств(стНастройки, ЭтотОбъект);
+ ЗаполнитьДеревоВсехОбъектов();
+ КонецЕсли;
КонецПроцедуры
Процедура кнПрятатьНажатие(Элемент)
@@ -1038,11 +2048,7 @@
ирОбщий.СообщитьЛкс(ОписаниеОшибки(), СтатусСообщения.Внимание);
Возврат
КонецПопытки;
- Иначе
- // Поиск в справочнике внешних обработок
- Обработка = НайтиИнтерфейснуюПанельВСправочникеВнешнихОбработок();
КонецЕсли;
-
Если Обработка = Неопределено Тогда
Возврат
Иначе
@@ -1053,7 +2059,6 @@
Иначе
Форма = Обработки[Метаданные().Имя].Создать().ПолучитьФорму();
КонецЕсли;
-
Иначе
_ИмяФайла_ = "";
Выполнить("_ИмяФайла_ = ИспользуемоеИмяФайла");
@@ -1068,7 +2073,6 @@
Возврат
КонецЕсли;
КонецЕсли;
-
Если Не Форма = Неопределено Тогда
Закрыть();
Форма.Открыть();
@@ -1076,50 +2080,6 @@
КонецПроцедуры // Переоткрыть()
-// Ищет интерфейсную панель по названию
-Функция НайтиИнтерфейснуюПанельВСправочникеВнешнихОбработок()
-
- Если ЕстьСправочникВнешнихОбработок Тогда
- НайденныйЭлементСправочникаВнешнихОбработок = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Интерфейсная панель");
- Если НЕ НайденныйЭлементСправочникаВнешнихОбработок.Пустая() И НайденныйЭлементСправочникаВнешнихОбработок.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка Тогда
- Попытка
- ИмяФайла = ПолучитьИмяВременногоФайла();
- ДвоичныеДанные = НайденныйЭлементСправочникаВнешнихОбработок.ХранилищеВнешнейОбработки.Получить();
- ДвоичныеДанные.Записать(ИмяФайла);
- Возврат ВнешниеОбработки.Создать(ИмяФайла);
- Исключение
- ирОбщий.СообщитьЛкс("Выбранный файл не является внешней обработкой.
- |Либо, данная обработка не предназначена для
- |запуска в этой конфигурации.");
- Возврат Неопределено;
- КонецПопытки;
- КонецЕсли;
- КонецЕсли;
-
-КонецФункции // НайтиИнтерфейснуюПанельВСправочникеВнешнихОбработок()
-
-Процедура КомандыПанели_кнКонсоль(Кнопка)
- Если Кнопка.Имя = "КонсольПостроителей" Тогда
- РасширениеФайла = "rcf";
- ИначеЕсли Кнопка.Имя = "КонсольЗапросов" Тогда
- РасширениеФайла = "sel";
- ИначеЕсли Кнопка.Имя = "КонсольКомпоновки" Тогда
- РасширениеФайла = "dcf";
- КонецЕсли;
- Форма = ОткрытьНастройкуКонсолиЗапросовПостроителейКомпоновок(РасширениеФайла);
- Если НЕ Форма = Неопределено Тогда
- Форма.Открыть();
- КонецЕсли;
-КонецПроцедуры
-
-Процедура КомандыПанелиПечать(Кнопка)
-
- ВывестиТЗвТД(ДеревоИнтерфейса, Истина, ФильтрПодсистем + ?(ЗначениеЗаполнено(ФильтрИмен), ФильтрИмен, ""));
- // Yasen Для эксперимента выведем дерево в коллекцию
- ирОбщий.ИсследоватьЛкс(ДеревоИнтерфейса.Строки,, Истина);
-
-КонецПроцедуры
-
// Открывает универсальный отчет по данному регистру
//
// Параметры
@@ -1156,16 +2116,14 @@
Если ОбъектМД = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
-
ЗначенияФункОпций = Неопределено;
ирОбщий.ФункциональныеОпцииОбъектаМДЛкс(ОбъектМД, ЗначенияФункОпций);
ФормаПросмотра = мПлатформа.ПолучитьФорму("ЗначенияФункциональныхОпций", , ПолноеИмяМД);
ФормаПросмотра.НачальноеЗначениеВыбора = ЗначенияФункОпций;
ФормаПросмотра.Открыть();
-
Возврат ФормаПросмотра;
-КонецФункции // УниверсальныйОтчетПоРегиструНакопления()
+КонецФункции
Функция ОткрытьРедакторКонстант()
@@ -1280,8 +2238,7 @@
СтруктураЭлемента.Вставить("Вид", ЗначениеИзБуфера.Метаданные().ПолноеИмя());
СтруктураЭлемента.Вставить("Представление", ЗначениеИзБуфера);
СтруктураЭлемента.Вставить("Имя", ЗначениеИзБуфера);
- НоваяСтрока = ДобавитьСтрокуВСтатическуюВетку(СтруктураЭлемента, РодительскаяСтрока.Имя);
- ЗаполнитьСтатическиеВеткиДереваИнтерфейса(ЭтаФорма, НоваяСтрока);
+ ДобавитьСтрокуВСтатическуюВетку(СтруктураЭлемента, РодительскаяСтрока.Имя, Истина);
КонецЕсли;
КонецЕсли;
@@ -1306,6 +2263,161 @@
КонецПроцедуры
ирОбщий.ИнициализироватьФормуЛкс(ЭтаФорма, "Обработка.ирИнтерфейснаяПанель.Форма.Форма");
+
+ИсторияКоманд = 50;
+ИспользоватьРегулярныеВыражения = Истина;
+ПолнотекстовыйПоискПорогНечеткости = 0;
+ПолнотекстовыйПоискРазмерПорции = 0; // Если 0 - то полнотекстовый поиск отключен
+
+ //////////////////////////////////////////////////////////////////////////////////////////////
+ // Соответствие статических веток (История использования и Избранное) и настроек для них
+ //Представление, - отображение в интерфейсе
+ //СтрокаСортировки, - строка сортировки в таблице статистики
+ //КоличествоОтображаемыхЭлементов, - сколько элементов выводить
+ //Фильтровать - фильтровать ли данную ветку вместе с деревом
+ МассивСтатическихВеток = Новый Массив;
+
+ //// Быстрый поиск
+ //МассивСтатическихВеток.Добавить(Новый Структура(
+ // "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
+ // "БыстрыйПоиск",
+ // Истина, // Использовать ли данную ветку
+ // "Быстрый поиск", // Представление ветки в дереве
+ // "БыстрыйПоиск УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
+ // 5, // Количество элементов, отображаемых в данной ветке
+ // Истина, // Фильтровать ли ветку при непустой строке фильтра
+ // "", // не сортировать
+ // Ложь, // Разрешить перетаскивание
+ // Ложь // Автозапуск команд в данной ветке при открытии обработки
+ // ,Истина // Ветка развернута
+ // )
+ // );
+
+ // Недавние
+ МассивСтатическихВеток.Добавить(Новый Структура(
+ "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
+ "НедавноИспользованные",
+ Истина, // Использовать ли данную ветку
+ "Недавно использованные", // Представление ветки в дереве
+ "ПоследнееИспользование УБЫВ", // Строка сортировки статистической таблицы. Сортировка определяет, какие элементы выводятся
+ 10, // Количество элементов, отбражаемых в данной ветке
+ Ложь, // Фильтровать ли ветку при непустой строке фильтра
+ // Сортировка отображаемых элементов
+ // "Вид,Имя" - обычная сортировка
+ "", // сортировка по дате использования
+ Ложь, // Перетаскивание
+ Ложь // Автозапуск
+ ,Ложь // Ветка свернута
+ )
+ );
+ // Часто используемые
+ МассивСтатическихВеток.Добавить(Новый Структура(
+ "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
+ "ЧастоИспользуемые",
+ Истина,
+ "Часто используемые",
+ "КоличествоИспользований УБЫВ,ПоследнееИспользование",
+ 10,
+ Ложь,
+ // Сортировка отображаемых элементов
+ "Вид,Имя",
+ Ложь, // Перетаскивание
+ Ложь // Автозапуск
+ ,Ложь // Ветка свернута
+ )
+ );
+ // Избранное
+ МассивСтатическихВеток.Добавить(Новый Структура(
+ "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть, ИндексКартинки",
+ "Избранное",
+ Истина, // Использовать ли данную ветку
+ "Избранное", // Представление ветки в дереве
+ "Избранное УБЫВ",
+ 10,
+ Ложь,
+ // Сортировка отображаемых элементов
+ "Вид,Имя",
+ Истина, // Перетаскивание
+ Ложь // Автозапуск
+ ,Ложь // Ветка свернута
+ , 63
+ )
+ );
+ // Автозапуск
+ МассивСтатическихВеток.Добавить(Новый Структура(
+ "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск,Развернуть",
+ "Автозапуск",
+ Истина, // Использовать ли данную ветку
+ "Автозапуск", // Представление ветки в дереве
+ "Автозапуск УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
+ 10, // Количество элементов, отображаемых в данной ветке
+ Ложь, // Фильтровать ли ветку при непустой строке фильтра
+ "", // не сортировать
+ Истина, // Разрешить перетаскивание
+ Истина // Автозапуск команд в данной ветке при открытии обработки
+ ,Ложь // Ветка свернута
+ )
+ );
+// Пример пользовательской статической ветки (раскомментируйте и добавьте необходимое количество экземпляров)
+ //СтатическиеВетки.Вставить(ДеревоИнтерфейса.Строки.Добавить(), Новый Структура(
+ // "Имя,Использовать,Представление,СтрокаСортировки,КоличествоОтображаемыхЭлементов,Фильтровать,СортировкаПриОтображении,РазрешитьПеретаскивание,Автозапуск",
+ // "МойСборникКоманд", // Представление ветки в дереве
+ // Истина, // Использовать ли данную ветку
+ // "Мой сборник команд", // Представление ветки в дереве
+ // "МойСборникКоманд УБЫВ", // Строка сортировки статистической таблицы. Определяет, какие элементы выводятся
+ // 10, // Количество элементов, отображаемых в данной ветке
+ // Ложь, // Фильтровать ли ветку при непустой строке фильтра
+ // "", // не сортировать
+ // Истина, // Разрешить перетаскивание
+ // Ложь // Автозапуск команд в данной ветке при открытии обработки
+ // )
+ // );
+ //
+
+КолонкиДерева = ДеревоИнтерфейса.Колонки;
+Если КолонкиДерева.Найти("Представление") = Неопределено Тогда
+ КолонкиДерева.Добавить("Представление");
+ КолонкиДерева.Добавить("Имя");
+ КолонкиДерева.Добавить("Вид");
+ КолонкиДерева.Добавить("ИндексКартинки");
+ КолонкиДерева.Добавить("ПолноеИмяОбъекта");
+ КолонкиДерева.Добавить("КоличествоСтрок");
+ КолонкиДерева.Добавить("Порядок");
+КонецЕсли;
+мПлатформа = ирКэш.Получить();
+КомандыПоиска = Новый Массив();
+ВеткиМетаданных = Новый СписокЗначений;
+ВеткиМетаданных.Добавить("Общие формы", "ОбщиеФормы");
+ВеткиМетаданных.Добавить("Интерфейсы", "Интерфейсы");
+ВеткиМетаданных.Добавить("Константы", "Константы");
+ВеткиМетаданных.Добавить("Справочники", "Справочники");
+ВеткиМетаданных.Добавить("Перечисления", "Перечисления");
+ВеткиМетаданных.Добавить("Документы", "Документы");
+ВеткиМетаданных.Добавить("Журналы документов", "ЖурналыДокументов");
+ВеткиМетаданных.Добавить("Отчеты", "Отчеты");
+ВеткиМетаданных.Добавить("Обработки", "Обработки");
+ВеткиМетаданных.Добавить("Планы видов характеристик", "ПланыВидовХарактеристик");
+ВеткиМетаданных.Добавить("Регистры сведений", "РегистрыСведений");
+ВеткиМетаданных.Добавить("Регистры накопления", "РегистрыНакопления");
+ВеткиМетаданных.Добавить("Планы счетов", "ПланыСчетов");
+ВеткиМетаданных.Добавить("Планы видов расчета", "ПланыВидовРасчета");
+ВеткиМетаданных.Добавить("Регистры бухгалтерии", "РегистрыБухгалтерии");
+ВеткиМетаданных.Добавить("Регистры расчета", "РегистрыРасчета");
+ВеткиМетаданных.Добавить("Бизнес-процессы", "БизнесПроцессы");
+ВеткиМетаданных.Добавить("Задачи","Задачи");
+ВеткиМетаданных.Добавить("Планы обмена", "ПланыОбмена");
+ЕстьУниверсальныйОтчет = (Метаданные.Отчеты.Найти("УниверсальныйОтчет") <> Неопределено);
+Есть_РС_СохраненныеНастройки = (Метаданные.РегистрыСведений.Найти("СохраненныеНастройки") <> Неопределено);
+ЕстьСправочникВнешнихОбработок = (Метаданные.Справочники.Найти("ВнешниеОбработки") <> Неопределено);
+ИмяКорневойПодсистемы = "Конфигурация." + Метаданные.Имя;
+Если Метаданные.ПараметрыСеанса.Найти("ТекущийПользователь") = Неопределено Тогда
+ мТекущийПользователь = Неопределено;
+Иначе
+ Попытка
+ мТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
+ Исключение
+ КонецПопытки;
+КонецЕсли;
мКоличествоСтатическихКнопокКоманднойПанели = ЭлементыФормы.КоманднаяПанельДереваИнтерфейса.Кнопки.Количество();
ПрочитатьНастройки();
Если стНастройки.Свойство("СостояниеОкна") Тогда
@@ -1320,9 +2432,3 @@
Иначе
стНастройки.Вставить("СостояниеОкна", СостояниеОкна);
КонецЕсли;
-//мСписокВыбораПодсистем = Новый СписокЗначений;
-ТабличныйДокумент = ПолучитьМакет("Картинки");
-КартинкаСтрок = ТабличныйДокумент.Рисунки[0].Картинка;
-ЭлементыФормы.ДеревоИнтерфейса.Колонки.Имя.КартинкиСтрок = КартинкаСтрок;
-ЭлементыФормы.ДеревоИнтерфейса.Колонки.Представление.КартинкиСтрок = КартинкаСтрок;
-ЭлементыФормы.ДеревоИнтерфейса.Колонки.КоличествоСтрок.Видимость = Ложь;
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/form.txt b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/form.txt
index 6e546d5f3..c898dcd15 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/form.txt
+++ b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Form/form.txt
@@ -244,7 +244,9 @@
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0,0},9,2,0,0,1,1,
{5,94048054-ba26-4268-b32b-9df5fbc0ffa6,10,1,8,
-{7,c697ba66-e2c1-4772-91aa-9645a7e3510a,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,88ecf29a-96f8-4209-8a43-3933fbb9642b,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},
+{7,3ed18aa2-8253-4987-89b6-1295cc210182,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельДереваИнтерфейсаДобавитьПапку",
{1,"КоманднаяПанельДереваИнтерфейсаДобавитьПапку",
{1,1,
@@ -260,14 +262,17 @@
{0},"",-1,-1,1,0,""},
{0,0,0}
}
-},11,
+},15,
{1,1,
-{"ru","Добавить папку"}
+{"ru","Добавить папку файлов"}
+},
+{1,1,
+{"ru","Добавить папку файлов"}
},
{4,1,
{0,894afc03-9904-465d-b671-f555ffb9b21c},"",-1,-1,1,0,""},
{0,118,0},2},
-{7,dcf0f566-df58-432b-a24f-5138af1a3c26,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,1d3ed4f2-88a8-4aec-9f88-98929bac2162,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КоманднаяПанельДереваИнтерфейсаДобавитьВИзбранное",
{1,"КоманднаяПанельДереваИнтерфейсаДобавитьВИзбранное",
{1,1,
@@ -285,19 +290,14 @@
}
},9,
{4,1,
-{0,37e91e77-93ce-4c3b-8d30-a9d8cfd3d3b0},"",-1,-1,1,0,""},
+{0,1001ae3e-9289-4303-9699-3c0c17e20e61},"",-1,-1,1,0,""},
{0,68,8},2},
-{7,5d052836-ff56-4f34-9d0a-003b1ec25a0c,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{7,82f7eafc-ba9c-44ff-ab4f-16fd7df4d018,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},
-{7,70fd2775-48ac-4a52-9a24-8c2da1297eb9,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
-{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},
-{7,a10495bd-96c1-4891-9c7e-d3e8cc3cd0ce,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{7,22dcd09f-8c23-424c-a9ad-49be743e7c09,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,0,00000000-0000-0000-0000-000000000000,88,
{1,99,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,2},
-{7,c4d191d7-7e89-40c5-810c-e86466668ea9,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
-{6,0,00000000-0000-0000-0000-000000000000,89,
-{1,99,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,2},
-{7,bb73773c-444b-4717-9a04-38908a07069d,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,132f15a6-d35a-434a-9f1d-b21c0def55a9,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ВставитьИзБуфера",
{1,"ВставитьИзБуфера",
{1,1,
@@ -323,37 +323,40 @@
{4,1,
{0,ef4a1e23-a419-47a0-a14a-c6ad33f99d31},"",-1,-1,1,0,""},
{0,86,20},2},
-{7,fd8848a0-c24c-43c0-82dd-126e0881d5ef,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{7,e84200be-ca43-4dc0-b754-09416d32bcf5,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{6,0,00000000-0000-0000-0000-000000000000,89,
+{1,99,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,2},
+{7,ac8ba4a0-b92c-498f-b98f-b1673eb1f4ec,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,5d052836-ff56-4f34-9d0a-003b1ec25a0c,
-{8,"Разделитель1",0,1,
-{1,1,
-{"ru","Действие2"}
-},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,9,1e2,2,0,1,0,0,0,0},a10495bd-96c1-4891-9c7e-d3e8cc3cd0ce,
-{8,"Действие",0,1,
-{1,1,
-{"#","Действие"}
-},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,6,1e2,0,0,1,0,0,0,0},c4d191d7-7e89-40c5-810c-e86466668ea9,
-{8,"Действие1",0,1,
-{1,1,
-{"#","Действие1"}
-},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,7,1e2,0,0,1,0,0,0,0},70fd2775-48ac-4a52-9a24-8c2da1297eb9,
-{8,"Действие2",0,1,
-{1,1,
-{"ru","Действие2"}
-},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,8,1e2,2,0,1,0,0,0,0},dcf0f566-df58-432b-a24f-5138af1a3c26,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,1d3ed4f2-88a8-4aec-9f88-98929bac2162,
{8,"ДобавитьВИзбранное",0,1,
{1,1,
{"ru","Добавить в избранное"}
-},1,94048054-ba26-4268-b32b-9df5fbc0ffa6,1,1e2,0,0,1,0,0,0,0},c697ba66-e2c1-4772-91aa-9645a7e3510a,
+},1,94048054-ba26-4268-b32b-9df5fbc0ffa6,1,1e2,0,0,1,0,0,0,0},3ed18aa2-8253-4987-89b6-1295cc210182,
{8,"ДобавитьПапку",0,1,
{1,1,
{"#","Добавить папку"}
-},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,2,1e2,0,0,1,0,0,0,0},bb73773c-444b-4717-9a04-38908a07069d,
+},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,2,1e2,0,0,1,0,0,0,0},82f7eafc-ba9c-44ff-ab4f-16fd7df4d018,
+{8,"Разделитель1",0,1,
+{1,1,
+{"ru","Действие2"}
+},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,9,1e2,2,0,1,0,0,0,0},22dcd09f-8c23-424c-a9ad-49be743e7c09,
+{8,"Действие",0,1,
+{1,1,
+{"#","Действие"}
+},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,6,1e2,0,0,1,0,0,0,0},e84200be-ca43-4dc0-b754-09416d32bcf5,
+{8,"Действие1",0,1,
+{1,1,
+{"#","Действие1"}
+},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,7,1e2,0,0,1,0,0,0,0},ac8ba4a0-b92c-498f-b98f-b1673eb1f4ec,
+{8,"Действие2",0,1,
+{1,1,
+{"ru","Действие2"}
+},0,94048054-ba26-4268-b32b-9df5fbc0ffa6,8,1e2,2,0,1,0,0,0,0},132f15a6-d35a-434a-9f1d-b21c0def55a9,
{8,"ВставитьИзБуфера",0,1,
{1,1,
{"ru","Вставить значение"}
-},1,94048054-ba26-4268-b32b-9df5fbc0ffa6,10,1e2,0,0,1,0,0,0,0},fd8848a0-c24c-43c0-82dd-126e0881d5ef,
+},1,94048054-ba26-4268-b32b-9df5fbc0ffa6,10,1e2,0,0,1,0,0,0,0},88ecf29a-96f8-4209-8a43-3933fbb9642b,
{8,"Разделитель",0,1,
{1,1,
{"ru","Действие"}
@@ -961,34 +964,9 @@
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0,0},9,2,0,0,1,1,
{5,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,184,1,8,
-{7,21087e88-8987-4188-8876-110ce8e937c3,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{7,86a2e6c0-19e9-4b78-8363-cfa52432ea25,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},
-{7,ac950d06-5b83-40ec-ae6f-6e88a343456e,1,e1692cc2-605b-4535-84dd-28440238746c,
-{3,"КлсКомандаНажатие",
-{1,"КлсКомандаНажатие",
-{1,1,
-{"ru","Клс команда нажатие"}
-},
-{1,1,
-{"ru","Клс команда нажатие"}
-},
-{1,1,
-{"ru","Клс команда нажатие"}
-},
-{4,0,
-{0},"",-1,-1,1,0,""},
-{0,0,0}
-}
-},7,
-{1,1,
-{"ru","Открыть новое окно"}
-},
-{1,1,
-{"ru","Открыть новое окно"}
-},
-{4,1,
-{0,31324465-3215-4477-b5ac-5ec8be01ddcc},"",-1,-1,0,0,""},2},
-{7,b4d9d7fe-c189-495a-84df-a6dd605c7cac,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,332aa8c7-9ab9-4f16-8d54-182c4b092a6c,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КомандыПанелиИмяСиноним",
{1,"КомандыПанелиИмяСиноним",
{1,2,
@@ -1016,9 +994,9 @@
{"ru","Имя / Синоним"},
{"en","Name / Presentation"}
},2},
-{7,cd10ea65-e3e0-4d97-b400-f84999f79e84,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
+{7,71291502-8640-428b-9383-3871576ce283,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,2},
-{7,2d09905a-fdf2-42e7-86e5-d42ba97098b7,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,e1694b23-0c2b-4cc6-8207-cb9d4b2d034e,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КомандыПанелиОбновитьКоличествоСтрок",
{1,"КомандыПанелиОбновитьКоличествоСтрок",
{1,1,
@@ -1043,7 +1021,35 @@
},
{4,1,
{0,9f855199-dfc8-4e63-9271-bd30801f2796},"",-1,-1,1,0,""},2},
-{7,89d356c3-d187-4f82-bada-045cde2d8de8,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,e61d186c-04d9-470d-8854-7250b48bd528,1,e1692cc2-605b-4535-84dd-28440238746c,
+{3,"КлсКомандаНажатие",
+{1,"КлсКомандаНажатие",
+{1,1,
+{"ru","Клс команда нажатие"}
+},
+{1,1,
+{"ru","Клс команда нажатие"}
+},
+{1,1,
+{"ru","Клс команда нажатие"}
+},
+{4,0,
+{0},"",-1,-1,1,0,""},
+{0,0,0}
+}
+},7,
+{1,1,
+{"ru","О подсистеме"}
+},
+{1,1,
+{"ru","О подсистеме"}
+},
+{4,1,
+{0,f4bd79b3-3b25-494b-99c4-74b39341e007},"",-1,-1,0,0,""},2},
+{7,2d6cd984-d7dd-4d6a-b8a3-65532b467384,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
+{6,4294967295,00000000-0000-0000-0000-000000000000,300,
+{1,99,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,1},0,1},0,2},
+{7,91015ecc-8099-4c7f-b172-df62f64e3a42,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"кнНастройкаНажатие",
{1,"кнНастройкаНажатие",
{1,1,
@@ -1070,10 +1076,7 @@
},
{4,1,
{0,31b93f03-0ba2-4631-a171-0d3a3d2ecc48},"",-1,-1,1,0,""},2},
-{7,2c80c771-aa86-489a-9cb6-b012990f8648,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
-{6,4294967295,00000000-0000-0000-0000-000000000000,300,
-{1,99,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,1},0,1},0,2},
-{7,651c0757-0843-4bca-ba1f-3c118606fad1,1,e1692cc2-605b-4535-84dd-28440238746c,
+{7,dfb3abe6-a8d1-49fc-95f3-123ad2a247df,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КлсКомандаНажатие",
{1,"КлсКомандаНажатие",
{1,1,
@@ -1091,44 +1094,44 @@
}
},7,
{1,1,
-{"ru","О подсистеме"}
+{"ru","Открыть новое окно"}
},
{1,1,
-{"ru","О подсистеме"}
+{"ru","Открыть новое окно"}
},
{4,1,
-{0,f4bd79b3-3b25-494b-99c4-74b39341e007},"",-1,-1,0,0,""},2},1,
-{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,21087e88-8987-4188-8876-110ce8e937c3,
+{0,31324465-3215-4477-b5ac-5ec8be01ddcc},"",-1,-1,0,0,""},2},1,
+{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,8,86a2e6c0-19e9-4b78-8363-cfa52432ea25,
{8,"Разделитель",0,2,
{1,1,
{"ru","Действие1"}
-},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,184,1e2,2,0,1,0,0,0,0},b4d9d7fe-c189-495a-84df-a6dd605c7cac,
+},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,184,1e2,2,0,1,0,0,0,0},332aa8c7-9ab9-4f16-8d54-182c4b092a6c,
{8,"ИмяСиноним",0,1,
{1,2,
{"ru","Имя/Синоним"},
{"en","Name/Presentation"}
-},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,115,1e2,0,0,1,0,0,0,0},cd10ea65-e3e0-4d97-b400-f84999f79e84,
+},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,115,1e2,0,0,1,0,0,0,0},71291502-8640-428b-9383-3871576ce283,
{8,"Разделитель1",0,1,
{1,1,
{"ru","Действие1"}
-},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,121,1e2,2,0,1,0,0,0,0},2d09905a-fdf2-42e7-86e5-d42ba97098b7,
+},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,121,1e2,2,0,1,0,0,0,0},e1694b23-0c2b-4cc6-8207-cb9d4b2d034e,
{8,"ВключитьКоличествоСтрок",0,5,
{1,1,
{"ru","Количество строк"}
-},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,182,1e2,0,0,1,0,0,0,0},89d356c3-d187-4f82-bada-045cde2d8de8,
+},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,182,1e2,0,0,1,0,0,0,0},91015ecc-8099-4c7f-b172-df62f64e3a42,
{8,"кнНастройка",0,1,
{1,2,
{"ru","Настройка"},
{"en","Settings"}
-},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,7,1e2,0,0,1,0,0,0,0},ac950d06-5b83-40ec-ae6f-6e88a343456e,
+},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,7,1e2,0,0,1,0,0,0,0},dfb3abe6-a8d1-49fc-95f3-123ad2a247df,
{8,"НовоеОкно",0,9,
{1,1,
{"ru","НовоеОкно"}
-},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,181,1e2,0,0,1,0,0,0,0},2c80c771-aa86-489a-9cb6-b012990f8648,
+},1,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,181,1e2,0,0,1,0,0,0,0},2d6cd984-d7dd-4d6a-b8a3-65532b467384,
{8,"Действие",0,1,
{1,1,
{"#","Действие"}
-},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,178,1e2,0,0,1,0,1,0,0},651c0757-0843-4bca-ba1f-3c118606fad1,
+},0,7a5d99a1-9dbb-412f-92c9-dde579bfa25b,178,1e2,0,0,1,0,1,0,0},e61d186c-04d9-470d-8854-7250b48bd528,
{8,"ОПодсистеме",0,4,
{1,1,
{"ru","О подсистеме"}
@@ -1356,7 +1359,7 @@
{0}
}
}
-},250,275,1,0,0,4,4,1940,250,275,96},
+},250,275,1,0,0,4,4,2080,250,275,96},
{
{0},14,
{2,
@@ -1396,7 +1399,7 @@
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
-{0,11,
+{0,8,
{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
{3,362a4971-f113-4777-bc32-d9ed21a1b1fb,"ИспользоватьРегулярныеВыражения",0}
},
@@ -1404,12 +1407,6 @@
{3,146e074d-274e-415d-a444-6aa5e1a129cf,"ИсторияКоманд",0}
},
{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
-{3,0e4208cf-b84e-42be-9b79-9730da4d0cdc,"ПолнотекстовыйПоискПорогНечеткости",0}
-},
-{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
-{3,5eb85926-1d07-4eba-b744-ac8f6c12650a,"ПолнотекстовыйПоискРазмерПорции",0}
-},
-{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
{3,d9ab2255-ee14-4241-b775-9befa90fe7bf,"ФильтрИмен",0}
},
{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
@@ -1419,9 +1416,6 @@
{3,04c5c86d-a200-40b1-b2d7-ae83af5811dc,"ПриАвтозапускеОткрыватьФормуСписка",0}
},
{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
-{3,1e56333a-fdb0-4b1e-8ada-36ee34b60cb7,"флИспользоватьУмныйПоиск",0}
-},
-{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
{3,5a59ef73-82be-41d1-873a-4ef19d2a5d49,"флИскатьОтладочнуюВерсию",0}
},
{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776,
diff --git a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Help/ru.html b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Help/ru.html
index 125699bf8..5c4383a20 100644
--- a/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Help/ru.html
+++ b/DataProcessors/ирИнтерфейснаяПанель/Forms/Форма/Ext/Help/ru.html
@@ -4,10 +4,6 @@
===========================================================
Главная особенность новой версии: работа на платформе 8.2
Правда, пока - только на толстом клиенте. Если кому-то нужна управляемая форма, ищите "ИП-лайт". Она есть на Инфостарте
-Главная фишка новой версии: "Умный поиск"
-"Умный" поиск документов, элементов справочников, ПВХ, ПС, ПО, ПВР, БП, задач.
-"Умный" поиск позволяет сразу находить нужный объект по части имени метаданных и начальным символам индексируемого поля (код, наименование и т.п.).
Например: "Реал 1777", "Номенклатура Диван", "характ кожаный".
-Более того, "умный" поиск позволяет искать по значимой цифровой части номера/кода даже если код текстовый. Например, чтобы найти документ "Реализация товаров и услуг МСК000123" достаточно ввести "реал 123"
Поиск объектов метаданных
Интерфейсная панель (далее - ИП) позволяет искать (точнее, фильтровать) объекты метаданных в конфигурации по подстроке или по регулярному выражению.
Также возможна фильтрация отображаемых объектов метаданных по одной из выбранных подсистем конфигурации.
@@ -21,8 +17,6 @@
Поиск и открытие настроек отчетов в регистре сведений "Сохраненные настройки"
В некоторых типовых конфигурациях (УТ 10.3, УПП 1.2) есть Универсальный отчет - мощное и гибкое средство построения отчетов. Если Есть такой отчет и настройки по нему сохраняются в регистре сведений "СохраненныеНастройки" (как в типовых УТ и УПП), то эти настройки так же включаются в выдачу фильтра.
Это бывает очень удобно для пользователей, которые не знают, каким отчетом когда пользоваться. Создаем настройку, называем нужным образом и включаем пользователю в "Избранное"
-Полнотекстовый поиск
-Для версий платформы 8.1 и выше выдаются также результаты полнотекстового поиска (при условии, что он включен).
При этом найденный объект сохраняется в истории вызовов, может быть добавлен в "Избранное", "Автозапуск" и т.п.
Работа с результатами поиска
Все найденные объекты так или иначе можно открыть прямо из обработки.
- Для ссылочных объектов выводятся все доступные формы
@@ -30,8 +24,7 @@
- При выборе интерфейса, происходит переключение на выбранный интерфейс.
- При выборе файлов, найденных в каталогах, эти файлы открываются средствами 1С:Предприятие.
- Для возможности открытия сохраненных настроек консоли запросов (файлов с расширением SEL) в обработку встроена КонсольЗапросов.
-- Для возможности открытия сохраненных настроек консоли отчетов (файлов с расширением RCF) в обработку встроена КонсольОтчетов.
-История выбранных команд
+Для возможности открытия сохраненных настроек консоли отчетов (файлов с расширением RCF) в обработку встроена КонсольОтчетов.История выбранных команд
Возможно сохранение недавно выбранных а также часто используемых команд.
Избранное
Есть ветка Избранное, в которую можно "перетащить" команду или добавить ее нажатием клавиши Ctrl-D .
@@ -45,74 +38,7 @@
Настройки позволяют:
- управлять использованием регулярных выражений,
- настраивать полнотекстовый поиск,
-- создавать свои собственные настраиваемые ветки команд за 5 минут!
===========================================================
-
-ИСТОРИЯ ВЕРСИЙ
-Версия 3.0
-Проведена повторная интеграция с подсистемой "Инструменты разработчика":
+ По найденным объектам доступна команда "Исследовать объект" - открывается обработка "ирИсследовательОбъектов"
+ По найденным объектам доступна команда "Универсальный редактор реквизитов" - открывается обработка "ирУниверсальныйРедакторРеквизитов"
+ По найденным объектам доступна команди "Удалить непосредственно" - возможность пользователю на свой страх и риск удалить объект из ИБ
-+ Добавлена интеграция с обработкой "Рабочий стол". Найденный объект метаданных можно простым перетаскиванием разместить на рабочем столе.
-+ Добавлен вывод констант. В контекстном меню можно открыть обработку "ирРедакторКонстант" из подсистемы "Инструменты разработчика"
-Версия 2.9
-+ Исправлена ошибка, возникавшая при обращении к общим модулям типовых конфигураций, которых нет в других конфигурациях. Теперь методы вызываются только если они есть.
* Возобновлен фильтр подсистем, который был отключен с выходом платформы 8.2
-Версия 2.8
-+ Добавлена настройка "Искать в подкаталогах". Если она включена, поиск объектов 1С:Предприятия будет выполняться и в подкаталогах указанных каталогов
* Каталоги, включенные в поиск теперь можно удалять
-Версия 2.7.1
-* Исправлено несколько багов
* Для регистра накопления сначала пытаемся открыть универсальный отчет, и только потом форму списка
-Версия 2.7
-+ Элемент справочника "Внешние обработки" теперь можно не только запустить, но и найти в справочнике и открыть форму элемента
* Корректно обрабатывается вызов внешних отчетов, которые хранятся в справочнике внешних обработок
* Налажена работа с сохраненными настройками отчетов. Теперь их можно добавлять в "Избранное" и т.д.
* Исправлена ошибка открытия объекта в случае "умного" поиска.
-Версия 2.6
-+ "Умный" поиск позволяет искать по цифровой части номера/кода. Например, чтобы найти документ "Реализация товаров и услуг МСК000123" достаточно ввести "реал 123"
-Версия 2.5
-+ "Умный" поиск документов, элементов справочников, ПВХ, ПС, ПО, ПВР, БП, задач. "Умный" поиск позволяет сразу находить нужный объект по части имени метаданных и части индексируемого поля (код, наименование и т.п.).
Например: "Реализация 1777", "Номенклатура Диван", "счет НДС"
-Версия 2.4
-* Работа на платформе 8.2 (изменился способ работы с подсистемами)
+ Поиск теперь фоновый - не сразу при вводе строки поиска, а постепенно
* В статических ветвях (например избранное и автозапуск) теперь сохраняются не только объекты метаданных, но и элементы справочника "Дополнительные внешние отчеты и обработки", объекты в сохраненных пользователем каталогах и настройки отчетов на базе Универсального отчета
+ Соответственно, возможен автозапуск любого объекта, а не только объекта метаданных
+ Для статических ветвей добавлена настройка режима свертки при открытии
+ На форму выведена кнопка настройки и запуск консоли отчетов и консоли запросов, которые хранятся в макете обработки
+ Возможность автооткрытия формы списка, а не первой формы в списке форм метаданных объекта (удобно, если нужно автооткрывать какой-то журнал или справочник)
-Версия 2.3
-* Оптимизирован код для улучшения быстродействия
+ Объекты результатов полнотекстового поиска теперь обрабатываются статическими ветвями. То есть, можно добавить в Избранное (или а Автозапуск) определенный документ, элемент (группу) справочника, в общем, любой объект ссылочного типа.
+ Для объекта полнотекстового поиска доступно открытие любой формы, а не только формы по умолчанию
-Версия 2.2
-* Исправлены ошибки, найденные в версии 2.1
* Оптимизирован код для улучшения быстродействия
-Версия 2.1
-+ Добавлена возможность автозапуска в любой базе.
-Работая с различными базами клиентов, часто сталкиваюсь с тем, что ИП нужна сразу при открытии программы. В случае активной отладки 1С запускается по нескольку раз в час.
-Для удобства отладки добавлена функция автооткрытия ИП: помещаем в табло команду ВнешниеОбработки.Создать("<путь>ip8.epf").Открыть() и при каждом запуске, если окно табло включено, обработка будет запускаться автоматически.
-Для этого же в статических ветках добавлен флаг автозапуска. Создана ветка "Автозапуск" с включенным флагом автозапуска.
-+ Упрощена возможность создания статических веток. Для этого достаточно создать еще одно соответствие строке ДереваИнтерфейса и задать настройки. Пример в теле модуля формы обработки.
-* Настройки обработки (параметрические значения, с помощью которых можно управлять поведением обработки) сгруппированы в конце модуля
-Учтен вариант, когда в конфигурации есть Универсальный отчет без использования РС "СохраненныеНастройки"
-2.0.2
* Восстановлена обратная совместимость кода с платформой 8.0.
* В избранное и историю теперь попадают не только объекты метаданных, а любые элементы (кроме результатов полнотекстового поиска)
-Версия 2.0.1.
Пофиксено:
* макеты обработок были от версии 8.0
* не работало перетаскивание в пустую папку Избранное
* Иконки внешних обработок и полнотекстового поиска
Добавлено: поиск в метаданных консолей подсистемы "Инструменты разработчика"
* ирКонсольЗапросов
* ирКонсольПостроителяОтчетов
то есть, если вы используете "Инструменты разработчика", макеты обработок можно смело удалять.
-
-Версия 2.0 (поиск по метаданным и полнотекстовый поиск по данным)
-Добавлен поиск по справочнику "ВнешниеОбработки".
-В обработке для платформы 8.1 работает полнотекстовый поиск!
-Версия 1.7
Добавлены возможности:
+ открытие сохраненных настроек консоли отчетов (*.rcf)
+ открытие сохраненных настроек консоли запросов (*.sel)
+ открытие настроек типовых отчетов, сохраненных в регистре сведений "СохраненныеНастройки". Работает во всех типовых конфигурациях, где есть Универсальный отчет.
-Внимание! Для универсальной возможности обработки файлов *.rcf и *.sel в обработку загружены двоичные макеты КонсольЗапросов и КонсольОтчетов. Если эти обработки есть в Вашей конфигурации, или Вам не требуется обработка этих файлов, просто удалите эти макеты.
-Версия 1.6
Полностью переписан механизм генерации и обработки команд.
Теперь команды выводятся в автоматически создаваемое контекстное меню
-Версия 1.5
-Регистры накопления гораздо удобнее смотреть с помощью Универсального отчета. Если он есть в конфигурации, то он вызывается с настройками по данному регистру.
-Версия 1.4.1
-Пофиксен кривой вывод иконок для планов обмена
Внешние отчеты выводятся только для версии 8.1 и выше.
-Версия 1.4
-Возможность поиска внешних обработок, отчетов, табличных и текстовых документов в указанных каталогах
Выбор формы для открытия через контекстное меню.
Открытие общих форм.
Переключение интерфейсов.
-Версия 1.3.1
-Работает перетаскивание в Избранное.
Строки удалются клавишей Del, а не Backspace.
Удалена нижняя панель за своей ненадобностью.
-Версия 1.3
-Переписан вывод статических веток. Теперь он более универсален можете легко создавать собственные статические ветки.
Описание и реализация - в процедуре ЗаполнитьДеревоИнтерфейса()
Для примера, я создал статическую ветку "Избранное".
-Добавлена возможность удалять строки из статических веток.
-Добавлена возможность добавления команд в избранное.
-Версия 1.2
-Функциональность управляется реквизитами формы:
-ИспользоватьРегулярныеВыражения - признак использования регулярных выражений. Более удобно, но работает с использованием COM-объекта VBScript.Regex. Значение по умолчанию Истина
-ИсторияКоманд - количество команд в истории. Значение по умолчанию.
-ФильтроватьИсторию - фильтровать ли историю или только дерево метаданных. Значение по умолчанию Ложь.
-
-Версия 1.1
-Добавлен текст BSD-лицензии
-Поиск теперь ведется по регулярным выражениям. Подробнее о регулярных выражениях здесь: http://en.wikipedia.org/wiki/Regexp
-
-Версия 1.0
-Работает поиск по началу строки.
-Есть история недавно вызванных и часто используемых команд
-Поиск по всем синонимам метаданных 8.0 кроме планов обмена.
+создавать свои собственные настраиваемые ветки команд за 5 минут!