Система компоновки данных (СКД) » История » Версия 3
Всеволод Дорофеев, 01.02.2017 17:58
1 | 1 | Всеволод Дорофеев | h1. Система компоновки данных (СКД) |
---|---|---|---|
2 | 1 | Всеволод Дорофеев | |
3 | 1 | Всеволод Дорофеев | h3. Программное выполнение СКД с выводом в таблицу значений |
4 | 1 | Всеволод Дорофеев | |
5 | 1 | Всеволод Дорофеев | <pre> |
6 | 1 | Всеволод Дорофеев | &НаСервере |
7 | 1 | Всеволод Дорофеев | Процедура ПеренестиНоменклатуруСервере() |
8 | 1 | Всеволод Дорофеев | ОбъектНаСервере = РеквизитФормыВЗначение("Объект"); |
9 | 1 | Всеволод Дорофеев | СхемаНоменклатуры = ОбъектНаСервере.ПолучитьМакет("СКД"); |
10 | 1 | Всеволод Дорофеев | |
11 | 2 | Всеволод Дорофеев | //СКД. Программная установка параметров в управляемой форме отчета |
12 | 2 | Всеволод Дорофеев | ПараметрДанных = КомпоновщикНаФорме.Настройки.ПараметрыДанных.Элементы.Найти("ГруппаНоменклатуры"); |
13 | 1 | Всеволод Дорофеев | ПараметрДанных.Использование = Истина; |
14 | 1 | Всеволод Дорофеев | ПараметрДанных.Значение = Объект.ПапкаАрхив; |
15 | 1 | Всеволод Дорофеев | |
16 | 1 | Всеволод Дорофеев | КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; |
17 | 1 | Всеволод Дорофеев | МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаНоменклатуры, КомпоновщикНаФорме.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); |
18 | 1 | Всеволод Дорофеев | |
19 | 1 | Всеволод Дорофеев | ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; |
20 | 1 | Всеволод Дорофеев | ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,, Истина); |
21 | 1 | Всеволод Дорофеев | |
22 | 1 | Всеволод Дорофеев | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; |
23 | 1 | Всеволод Дорофеев | |
24 | 1 | Всеволод Дорофеев | ТЗНоменклатура = Новый ТаблицаЗначений; |
25 | 1 | Всеволод Дорофеев | ПроцессорВывода.УстановитьОбъект(ТЗНоменклатура); |
26 | 1 | Всеволод Дорофеев | ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
27 | 1 | Всеволод Дорофеев | ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); |
28 | 1 | Всеволод Дорофеев | |
29 | 1 | Всеволод Дорофеев | Для каждого СтрокаТЗ из ТЗНоменклатура Цикл |
30 | 1 | Всеволод Дорофеев | ОбработкаОбъект.ПеренестиНоменклатурнуюПозициюВПапкуНаСервере(СтрокаТЗ); |
31 | 1 | Всеволод Дорофеев | КонецЦикла; |
32 | 1 | Всеволод Дорофеев | |
33 | 1 | Всеволод Дорофеев | КонецПроцедуры |
34 | 1 | Всеволод Дорофеев | </pre> |
35 | 3 | Всеволод Дорофеев | |
36 | 3 | Всеволод Дорофеев | h3. ШАБЛОНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ СКД |
37 | 3 | Всеволод Дорофеев | |
38 | 3 | Всеволод Дорофеев | <pre> |
39 | 3 | Всеволод Дорофеев | //**************************************************************************** |
40 | 3 | Всеволод Дорофеев | // ШАБЛОНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ СКД |
41 | 3 | Всеволод Дорофеев | // {{ |
42 | 3 | Всеволод Дорофеев | //**************************************************************************** |
43 | 3 | Всеволод Дорофеев | // Заполняет переданный объект на основани СКД |
44 | 3 | Всеволод Дорофеев | // |
45 | 3 | Всеволод Дорофеев | // Параметры |
46 | 3 | Всеволод Дорофеев | // |
47 | 3 | Всеволод Дорофеев | // СКД – собствеено настройки СКД |
48 | 3 | Всеволод Дорофеев | // |
49 | 3 | Всеволод Дорофеев | // ОбъектДляЗагрузки – объект в который выгружаются данные, таблица значений, дерево значений, табличный документ |
50 | 3 | Всеволод Дорофеев | // |
51 | 3 | Всеволод Дорофеев | // ИсполняемыеНастройки – Пользовательские настройки СКД если не указаны будут использованы настроки СКД по умолчанию |
52 | 3 | Всеволод Дорофеев | // |
53 | 3 | Всеволод Дорофеев | // СтруктураПараметров - Структура – Передаваемые для СКД параметры |
54 | 3 | Всеволод Дорофеев | // |
55 | 3 | Всеволод Дорофеев | // ДеревоЗначений = Новый ДеревоЗначений; |
56 | 3 | Всеволод Дорофеев | // |
57 | 3 | Всеволод Дорофеев | // ПРИМЕР ВЫЗОВА |
58 | 3 | Всеволод Дорофеев | // СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); |
59 | 3 | Всеволод Дорофеев | // СтруктураПараметров = Новый Структура("ДатаОтчета", НашаДата); |
60 | 3 | Всеволод Дорофеев | // ПолучитьДанныеНаОснованииСКД(СхемаКомпоновкиДанных, ДеревоЗначений, СхемаКомпоновкиДанных.НастройкиПоУмолчанию, СтруктураПараметров); |
61 | 3 | Всеволод Дорофеев | // |
62 | 3 | Всеволод Дорофеев | &НаСервере |
63 | 3 | Всеволод Дорофеев | Процедура ПолучитьДанныеНаОснованииСКД(СКД, ОбъектДляЗагрузки, ИсполняемыеНастройки = Неопределено, СтруктураПараметров = Неопределено, РасшифровкаСКД = Неопределено, МакетКомпоновки = Неопределено, ВнешниеНаборыДанных = Неопределено) Экспорт |
64 | 3 | Всеволод Дорофеев | |
65 | 3 | Всеволод Дорофеев | КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; |
66 | 3 | Всеволод Дорофеев | |
67 | 3 | Всеволод Дорофеев | //Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда |
68 | 3 | Всеволод Дорофеев | Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда |
69 | 3 | Всеволод Дорофеев | ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанных"); |
70 | 3 | Всеволод Дорофеев | Иначе |
71 | 3 | Всеволод Дорофеев | ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"); |
72 | 3 | Всеволод Дорофеев | КонецЕсли; |
73 | 3 | Всеволод Дорофеев | |
74 | 3 | Всеволод Дорофеев | Если ИсполняемыеНастройки = Неопределено Тогда |
75 | 3 | Всеволод Дорофеев | |
76 | 3 | Всеволод Дорофеев | ИсполняемыеНастройки = СКД.НастройкиПоУмолчанию; |
77 | 3 | Всеволод Дорофеев | |
78 | 3 | Всеволод Дорофеев | КонецЕсли; |
79 | 3 | Всеволод Дорофеев | |
80 | 3 | Всеволод Дорофеев | Если СтруктураПараметров <> Неопределено Тогда |
81 | 3 | Всеволод Дорофеев | |
82 | 3 | Всеволод Дорофеев | КоллекцияЗначенийПараметров = ИсполняемыеНастройки.ПараметрыДанных.Элементы; |
83 | 3 | Всеволод Дорофеев | |
84 | 3 | Всеволод Дорофеев | Для каждого Параметр Из СтруктураПараметров Цикл |
85 | 3 | Всеволод Дорофеев | |
86 | 3 | Всеволод Дорофеев | НайденноеЗначениеПараметра = КоллекцияЗначенийПараметров.Найти(Параметр.Ключ); |
87 | 3 | Всеволод Дорофеев | |
88 | 3 | Всеволод Дорофеев | Если НайденноеЗначениеПараметра <> Неопределено Тогда |
89 | 3 | Всеволод Дорофеев | |
90 | 3 | Всеволод Дорофеев | НайденноеЗначениеПараметра.Использование = Истина; |
91 | 3 | Всеволод Дорофеев | |
92 | 3 | Всеволод Дорофеев | НайденноеЗначениеПараметра.Значение = Параметр.Значение; |
93 | 3 | Всеволод Дорофеев | |
94 | 3 | Всеволод Дорофеев | КонецЕсли; |
95 | 3 | Всеволод Дорофеев | |
96 | 3 | Всеволод Дорофеев | КонецЦикла; |
97 | 3 | Всеволод Дорофеев | |
98 | 3 | Всеволод Дорофеев | КонецЕсли; |
99 | 3 | Всеволод Дорофеев | |
100 | 3 | Всеволод Дорофеев | МакетКомпоновкиСКД = КомпоновщикМакета.Выполнить(СКД, ИсполняемыеНастройки, РасшифровкаСКД, МакетКомпоновки, ТипГенератора); |
101 | 3 | Всеволод Дорофеев | |
102 | 3 | Всеволод Дорофеев | ПроцессорКомпановки = Новый ПроцессорКомпоновкиДанных; |
103 | 3 | Всеволод Дорофеев | |
104 | 3 | Всеволод Дорофеев | ПроцессорКомпановки.Инициализировать(МакетКомпоновкиСКД, ВнешниеНаборыДанных, РасшифровкаСКД); |
105 | 3 | Всеволод Дорофеев | |
106 | 3 | Всеволод Дорофеев | //Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ПолеТабличногоДокумента") ИЛИ ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда |
107 | 3 | Всеволод Дорофеев | Если ТипЗнч(ОбъектДляЗагрузки) = Тип("ТабличныйДокумент") Тогда |
108 | 3 | Всеволод Дорофеев | |
109 | 3 | Всеволод Дорофеев | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; |
110 | 3 | Всеволод Дорофеев | |
111 | 3 | Всеволод Дорофеев | ПроцессорВывода.УстановитьДокумент(ОбъектДляЗагрузки); |
112 | 3 | Всеволод Дорофеев | |
113 | 3 | Всеволод Дорофеев | Иначе |
114 | 3 | Всеволод Дорофеев | |
115 | 3 | Всеволод Дорофеев | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; |
116 | 3 | Всеволод Дорофеев | |
117 | 3 | Всеволод Дорофеев | ПроцессорВывода.УстановитьОбъект(ОбъектДляЗагрузки); |
118 | 3 | Всеволод Дорофеев | |
119 | 3 | Всеволод Дорофеев | КонецЕсли; |
120 | 3 | Всеволод Дорофеев | |
121 | 3 | Всеволод Дорофеев | ПроцессорВывода.ОтображатьПроцентВывода = Истина; |
122 | 3 | Всеволод Дорофеев | |
123 | 3 | Всеволод Дорофеев | ПроцессорВывода.Вывести(ПроцессорКомпановки, Истина); |
124 | 3 | Всеволод Дорофеев | |
125 | 3 | Всеволод Дорофеев | КонецПроцедуры // ПолучитьДанныеНаОснованииСКД() |
126 | 3 | Всеволод Дорофеев | |
127 | 3 | Всеволод Дорофеев | //**************************************************************************** |
128 | 3 | Всеволод Дорофеев | // }} |
129 | 3 | Всеволод Дорофеев | //**************************************************************************** |
130 | 3 | Всеволод Дорофеев | </pre> |