-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathПримерИспользования_TRun1C.os
253 lines (210 loc) · 15.3 KB
/
ПримерИспользования_TRun1C.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
// При подключении библиотеки необходиомо указать путь к каталогу TRun1C с библиотекой TRun1C.
// Путь указывается относительно расположения данного файла.
#Использовать "."
//*****************************************************************
Процедура ПолныйТестВсехПроцедур(Запуск1С, Знач РабочийКаталог = "")
// Флаг наличия ошибок
БылиОшибки = Ложь;
// Создадим необходимые файлы
Если РабочийКаталог = "" Тогда
РабочийКаталог = ".\";
КонецЕсли;
РабочийКаталог = ОбъединитьПути(РабочийКаталог,"Test_TRun1C");
СоздатьКаталог(РабочийКаталог);
// Результат работы в пакетном режиме
ПараметрыЗапуска = Запуск1С.ПараметрыЗапуска;
ПараметрыЗапуска.ФайлДляЗаписиРезультатовРаботыВПакетномРежиме = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("txt")); //Можно не указывать
Если ПараметрыЗапуска.ТипБазы = "S" Тогда // Серверная база
// Запустим 1С:Предприятие
Если Запуск1С.ЗапуститьПредприятие() Тогда
Сообщить("ЗапуститьПредприятие: УСПЕШНО");
Иначе
Сообщить("ЗапуститьПредприятие: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Запустим Конфигуратор
Если Запуск1С.ЗапуститьКонфигуратор() Тогда
Сообщить("ЗапуститьКонфигуратор: УСПЕШНО");
Иначе
Сообщить("ЗапуститьКонфигуратор: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Получим список сеансов
ТаблицаСеансов = Запуск1С.ПолучитьСписокСеансов();
Если ТаблицаСеансов <> Неопределено Тогда
Сообщить("ПолучитьСписокСеансов: УСПЕШНО");
Для Каждого Сеанс Из ТаблицаСеансов Цикл
Сообщить(" Номер: " + Сеанс.НомерСоединения + ", Время начала: " + Сеанс.ВремяНачала + ", Имя пользователя: " + Сеанс.ИмяПользователя +
", Имя компьютера: " + Сеанс.ИмяКомпьютера + ", Приложение: " + Сеанс.Приложение);
КонецЦикла;
Иначе
Сообщить("ПолучитьСписокСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Заблокируем сеансы
Если Запуск1С.УстановитьБлокировкуНачалаСеансов() Тогда
Сообщить("УстановитьБлокировкуНачалаСеансов: УСПЕШНО");
Иначе
Сообщить("УстановитьБлокировкуНачалаСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Завершим работу пользователей, наш сеанс должен закрыться
Если Запуск1С.ЗавершитьРаботуПользователей() Тогда
Сообщить("ЗавершитьРаботуПользователей: УСПЕШНО");
Иначе
Сообщить("ЗавершитьРаботуПользователей: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
ВыполнитьСборкуМусора();
КонецЕсли;
// Отключимся от хранилища
Если Запуск1С.ОтключитьКонфигурациюОтХранилища() Тогда
Сообщить("ОтключитьКонфигурациюОтХранилища: УСПЕШНО");
Иначе
Сообщить("ОтключитьКонфигурациюОтХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выгрузим информационную базу
ПолныйПутьКФайлу = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("dt"));
Если Запуск1С.ВыгрузитьИнформационнуюБазу(ПолныйПутьКФайлу) Тогда
Сообщить("ВыгрузитьИнформационнуюБазу: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("ВыгрузитьИнформационнуюБазу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Загрузим файл в информационную базу
Если Запуск1С.ЗагрузитьИнформационнуюБазу(ПолныйПутьКФайлу) Тогда
Сообщить("ЗагрузитьИнформационнуюБазу: УСПЕШНО " + " из " + ПолныйПутьКФайлу);
Иначе
Сообщить("ЗагрузитьИнформационнуюБазу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
УдалитьФайлы(ПолныйПутьКФайлу);
// Сохраним конфигурацию в файл
ПолныйПутьКФайлу = ОбъединитьПути(РабочийКаталог,Запуск1С.ИмяФайлаПоИмениБазыНаДату("cf"));
Если Запуск1С.СохранитьКонфигурациюВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Загрузим конфигурацию из файла
Если Запуск1С.ЗагрузитьКонфигурациюИзФайла(ПолныйПутьКФайлу) Тогда
Сообщить("ЗагрузитьКонфигурациюИзФайла: УСПЕШНО " + " из " + ПолныйПутьКФайлу);
Иначе
Сообщить("ЗагрузитьКонфигурациюИзФайла: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сохраним конфигурацию баз данных в файл
Если Запуск1С.СохранитьКонфигурациюБазыДанныхВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюБазыДанныхВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюБазыДанныхВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сохраним конфигурацию хранилища в файл
Если Запуск1С.СохранитьКонфигурациюИзХранилищаВФайл(ПолныйПутьКФайлу) Тогда
Сообщить("СохранитьКонфигурациюИзХранилищаВФайл: УСПЕШНО " + " в " + ПолныйПутьКФайлу);
Иначе
Сообщить("СохранитьКонфигурациюИзХранилищаВФайл: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Обновим конфигурацию из хранилища
Если Запуск1С.ОбновитьКонфигурациюИзХранилища() Тогда
Сообщить("ОбновитьКонфигурациюИзХранилища: УСПЕШНО");
Иначе
Сообщить("ОбновитьКонфигурациюИзХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Обновим конфигурацию базы данных
Если Запуск1С.ОбновитьКонфигурациюБазыДанных() Тогда
Сообщить("ОбновитьКонфигурациюБазыДанных: УСПЕШНО");
Иначе
Сообщить("ОбновитьКонфигурациюБазыДанных: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
//Проверим, есть ли изменения в основной конфигурации
ЕстьИзменения = Запуск1С.ЕстьИзмененияОсновнойКонфигурации();
Если ЕстьИзменения <> Неопределено Тогда
Сообщить("ЕстьИзмененияОсновнойКонфигурации: УСПЕШНО, Есть изменения: " + ?(ЕстьИзменения,"Да","Нет"));
Иначе
Сообщить("ЕстьИзмененияОсновнойКонфигурации: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Подключимся к хранилищу
Если Запуск1С.ПодключитьКонфигурациюКХранилищу() Тогда
Сообщить("ПодключитьКонфигурациюКХранилищу: УСПЕШНО");
Иначе
Сообщить("ПодключитьКонфигурациюКХранилищу: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выполним очистку локального кэша хранилища конфигурации
Если Запуск1С.ВыполнитьОчисткуЛокальногоКешаХранилища() Тогда
Сообщить("ВыполнитьОчисткуЛокальногоКешаХранилища: УСПЕШНО");
Иначе
Сообщить("ВыполнитьОчисткуЛокальногоКешаХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Выполним очистку локальной базы данных хранилища конфигурации
Если Запуск1С.ВыполнитьОчисткуЛокальнойБазыДанныхХранилища() Тогда
Сообщить("ВыполнитьОчисткуЛокальнойБазыДанныхХранилища: УСПЕШНО");
Иначе
Сообщить("ВыполнитьОчисткуЛокальнойБазыДанныхХранилища: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Проверим, есть ли изменения в хранилище конфигураций
ЕстьИзмененияВХранилище = Запуск1С.ЕстьИзмененияВХранилище();
Если ЕстьИзмененияВХранилище <> Неопределено Тогда
Сообщить("ЕстьИзмененияВХранилище: УСПЕШНО, Есть изменения: " + ?(ЕстьИзмененияВХранилище,"Да","Нет"));
Иначе
Сообщить("ЕстьИзмененияВХранилище: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Если ПараметрыЗапуска.ТипБазы = "S" Тогда // Серверная база
// Снимем блокировку пользователей
Если Запуск1С.СнятьБлокировкуНачалаСеансов() Тогда
Сообщить("СнятьБлокировкуНачалаСеансов: УСПЕШНО");
Иначе
Сообщить("СнятьБлокировкуНачалаСеансов: " + Запуск1С.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
КонецЕсли;
ВыполнитьСборкуМусора();
УдалитьФайлы(ПолныйПутьКФайлу);
УдалитьФайлы(ПараметрыЗапуска.ФайлДляЗаписиРезультатовРаботыВПакетномРежиме);
УдалитьФайлы(РабочийКаталог);
// Отчет о работче процедуры
Сообщить("");
Сообщить("-----------------------------------------------");
Сообщить("Результат работы тестирования модуля: " + ?(БылиОшибки,"БЫЛИ ОШИБКИ!","УСПЕШНО."));
Сообщить("-----------------------------------------------");
Сообщить("");
КонецПроцедуры
//*****************************************************************
// Создадим объект
Запуск1С = Новый ТУправлениеЗапуском1С();
// Введем параметры
ПараметрыЗапуска = Запуск1С.ПараметрыЗапуска;
ПараметрыЗапуска.ПутьКПлатформе1С = "C:\Program Files (x86)\1cv8\8.3.8.2054\bin\1cv8.exe";
ПараметрыЗапуска.ТипБазы = "S";
ПараметрыЗапуска.ИмяБазы = "TestBase";
ПараметрыЗапуска.АдресКластера = "10.1.1.40";
ПараметрыЗапуска.ПортКластера = "2541";
ПараметрыЗапуска.ПортАгента = "2540";
ПараметрыЗапуска.ИмяПользователя = "Администратор";
ПараметрыЗапуска.ПарольПользователя = "";
ПараметрыЗапуска.ВидныДействияВПакетномРежиме = Ложь; //Можно не указывать
ПараметрыЗапуска.АдресХранилища = "C:\repo\OS_TScripts\_Tests\Repository";
ПараметрыЗапуска.ИмяПользователяХранилища = "admin";
ПараметрыЗапуска.ПарольПользователяХранилища = "1";
// Запустим тест всех процедур
ПолныйТестВсехПроцедур(Запуск1С);
// Введем параметры
ПараметрыЗапуска.ТипБазы = "F";
ПараметрыЗапуска.ИмяБазы = "C:\repo\OS_TScripts\_Tests\Base";
ПараметрыЗапуска.ИмяПользователя = "";
ПараметрыЗапуска.ПарольПользователя = "";
// Запустим тест всех процедур
ПолныйТестВсехПроцедур(Запуск1С);