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