-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbase_list.os
98 lines (70 loc) · 5.51 KB
/
base_list.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#Использовать "."
Процедура ЗаписатьТаблицуВФайл(ТаблицаЗначений, КудаСохранять)
ТекстТаблицы = "";
МассивКолонок = Новый Массив;
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
ТекстТаблицы = СтрШаблон("%1%2%3", ТекстТаблицы, Колонка.Имя, ";");
МассивКолонок.Добавить(Колонка.Имя);
КонецЦикла;
ТекстТаблицы = СтрШаблон("%1%2", ТекстТаблицы, Символы.ПС);
Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
Для Каждого Колонка Из МассивКолонок Цикл
ТекстТаблицы = СтрШаблон("%1%2%3", ТекстТаблицы, СтрокаТаблицы[Колонка], ";");
КонецЦикла;
ТекстТаблицы = СтрШаблон("%1%2", ТекстТаблицы, Символы.ПС);
КонецЦикла;
ЗаписьТекста = Новый ЗаписьТекста(КудаСохранять);
ЗаписьТекста.Записать(ТекстТаблицы);
ЗаписьТекста.Закрыть();
КонецПроцедуры
Функция СоздатьТаблицуИнформацияОБазах()
ИнформацияОБазах = Новый ТаблицаЗначений;
ИнформацияОБазах.Колонки.Добавить("DATABASE_NAME");
ИнформацияОБазах.Колонки.Добавить("BASE_1C");
ИнформацияОБазах.Колонки.Добавить("DATABASE_SIZE");
ИнформацияОБазах.Колонки.Добавить("BACKUP_RESTORE_DATE");
ИнформацияОБазах.Колонки.Добавить("LAST_UPDATE_DATE");
ИнформацияОБазах.Колонки.Добавить("LAST_CONFIG_DATE");
ИнформацияОБазах.Колонки.Добавить("CREATE_DATE");
ИнформацияОБазах.Колонки.Добавить("SERVER_RESTART_DATE");
Возврат ИнформацияОБазах;
КонецФункции
ИдентификаторСервера = "SQL_122";
Сервер = ДанныеСерверов.Сервера()[ИдентификаторСервера];
ИнформацияОБазах = СоздатьТаблицуИнформацияОБазах();
БазыСервера = КомандыSQL.СписокБазНаСервере(Сервер);
ТаблицаСДаннымиБекапа = КомандыSQL.ПоследниеРазворачиванияИзБекапа(Сервер);
ТаблицаСПоследнимиИзменениямиДанных = КомандыSQL.ПоследнееИзменениеДанных(Сервер);
ТаблицаСДатойСозданияБаз = КомандыSQL.ДатыСозданияБаз(Сервер);
Для Каждого СтрокаБазы Из БазыСервера Цикл
ИмяБазы = СтрокаБазы.DATABASE_NAME;
ДатаИзмененияКонфигурации = КомандыSQL.ВремяПоследнегоИзмененияКонфига(ИмяБазы, Сервер);
НоваяСтрока = ИнформацияОБазах.Добавить();
НоваяСтрока.DATABASE_NAME = ИмяБазы;
НоваяСтрока.LAST_CONFIG_DATE = ДатаИзмененияКонфигурации;
Если ЗначениеЗаполнено(ДатаИзмененияКонфигурации) Тогда
НоваяСтрока.BASE_1C = Истина;
Иначе
НоваяСтрока.BASE_1C = Ложь;
КонецЕсли;
НоваяСтрока.DATABASE_SIZE = СтрокаБазы.DATABASE_SIZE;
НайденнаяСтрока = ТаблицаСДаннымиБекапа.Найти(ИмяБазы, "DATABASE_NAME");
Если НайденнаяСтрока <> Неопределено Тогда
НоваяСтрока.BACKUP_RESTORE_DATE = НайденнаяСтрока.last_restore_date;
КонецЕсли;
НайденнаяСтрока = ТаблицаСПоследнимиИзменениямиДанных.Найти(ИмяБазы, "DATABASE_NAME");
Если НайденнаяСтрока <> Неопределено Тогда
НоваяСтрока.LAST_UPDATE_DATE = НайденнаяСтрока.last_user_update;
КонецЕсли;
НайденнаяСтрока = ТаблицаСДатойСозданияБаз.Найти(ИмяБазы, "DATABASE_NAME");
Если НайденнаяСтрока <> Неопределено Тогда
НоваяСтрока.CREATE_DATE = НайденнаяСтрока.CREATE_DATE;
КонецЕсли;
КонецЦикла;
НайденнаяСтрока = ТаблицаСДатойСозданияБаз.Найти("tempdb", "DATABASE_NAME");
Если НайденнаяСтрока <> Неопределено Тогда
ИнформацияОБазах.ЗаполнитьЗначения(НайденнаяСтрока.CREATE_DATE, "SERVER_RESTART_DATE");
КонецЕсли;
ИмяФайла = СтрШаблон("out_%1_%2.csv", ИдентификаторСервера, Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd"));
ПолноеИмяФайла = ОбъединитьПути(ТекущийСценарий().Каталог, ИмяФайла);
ЗаписатьТаблицуВФайл(ИнформацияОБазах, ПолноеИмяФайла);