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