Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Исправление под требования BSL. Апгрейд функций под актуальный Oscript. #9

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 50 additions & 37 deletions src/AutoUpdateIB.os
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,35 @@
// Инициализация

// Инициализация параметров
Функция Инициализировать()
Процедура Инициализировать()

Каталоги = Новый Структура;
УстановитьКаталоги();


// Параметры ИТС
ПараметрыАутентификации = Новый Структура;
УстановитьПараметрыАутентификации();

ПараметрыЗавершенияСоединения = Новый Структура;
УстановитьПараметрыЗавершенияСоединения();

ПараметрыБлокировкиCеансов = Новый Структура;
УстановитьПараметрыБлокировкиCеансов();

ПараметрыРезервногоКопирования = Новый Структура;
УстановитьПараметрыРезервногоКопирования();

НастройкиПодключения = Новый Структура;
НастройкиПодключения.Вставить("СерверПроверкиОбновлений", "downloads.1c.ru"); // Адрес сервера для проверки наличия обновлений (открытая часть).
НастройкиПодключения.Вставить("ПутьКФайлуПроверкиОбновлений", "/ipp/ITSREPV/V8Update/Configs"); // Путь к файлу проверки обновлений на сервере.
НастройкиПодключения.Вставить("СерверОбновлений", "downloads.v8.1c.ru"); //Адрес сервера обновлений (закрытая часть).
НастройкиПодключения.Вставить("ПутьКФайлуОбновлений", "/tmplts"); // Путь к файлу обновлений на сервере.
// Адрес сервера для проверки наличия обновлений (открытая часть).
НастройкиПодключения.Вставить("СерверПроверкиОбновлений", "downloads.1c.ru");
// Путь к файлу проверки обновлений на сервере.
НастройкиПодключения.Вставить("ПутьКФайлуПроверкиОбновлений", "/ipp/ITSREPV/V8Update/Configs");
//Адрес сервера обновлений (закрытая часть).
НастройкиПодключения.Вставить("СерверОбновлений", "downloads.v8.1c.ru");
// Путь к файлу обновлений на сервере.
НастройкиПодключения.Вставить("ПутьКФайлуОбновлений", "/tmplts");

КонецФункции
КонецПроцедуры

// Устанавливает каталоги хранения файлов обновления и временных файлов
//
Expand All @@ -46,18 +51,16 @@
//
Процедура УстановитьКаталоги(КаталогФайловОбновления = "", КаталогВременныхФайлов = "") Экспорт

СистемнаяИнформация = Новый СистемнаяИнформация();

Если ПустаяСтрока(КаталогФайловОбновления) Тогда
КаталогAPPDATA = СистемнаяИнформация.ПолучитьПеременнуюСреды("APPDATA");
КаталогAPPDATA = ПолучитьПеременнуюСреды("APPDATA");
КаталогФайловОбновления = ОбъединитьПути(КаталогAPPDATA, "1C\1Cv8\tmplts\1c");
КонецЕсли;
Если НЕ ОбеспечитьКаталог(КаталогФайловОбновления) Тогда
ВызватьИсключение "Выполнение обработки прервано";
КонецЕсли;

Если ПустаяСтрока(КаталогВременныхФайлов) Тогда
КаталогTEMP = СистемнаяИнформация.ПолучитьПеременнуюСреды("TEMP");
КаталогTEMP = ПолучитьПеременнуюСреды("TEMP");
КаталогВременныхФайлов = ОбъединитьПути(КаталогTEMP, "AutoUpdateIB");
КонецЕсли;
Если НЕ ОбеспечитьКаталог(КаталогВременныхФайлов) Тогда
Expand Down Expand Up @@ -143,8 +146,7 @@

Если СоздаватьРезервнуюКопию Тогда
Если ПустаяСтрока(КаталогРезервныхКопий) Тогда
СистемнаяИнформация = Новый СистемнаяИнформация();
КаталогTEMP = СистемнаяИнформация.ПолучитьПеременнуюСреды("TEMP");
КаталогTEMP = ПолучитьПеременнуюСреды("TEMP");
КаталогРезервныхКопий = ОбъединитьПути(КаталогTEMP, "AutoUpdateIB", "DumpIB");
КонецЕсли;
Если НЕ ОбеспечитьКаталог(КаталогРезервныхКопий) Тогда
Expand Down Expand Up @@ -202,6 +204,9 @@
КонецПроцедуры

// Возвращает лог
// Возвращаемое значение:
// Логирование - Компонента логирования Logos
//
Функция ПолучитьЛог() Экспорт

Возврат Лог;
Expand Down Expand Up @@ -300,10 +305,10 @@

// Получаем сам файл из Интернета.
Попытка
Соединение = Новый HTTPСоединение(НастройкиПодключения.СерверПроверкиОбновлений, , ПараметрыАутентификации.Пользователь, ПараметрыАутентификации.Пароль,);
Соединение = Новый HTTPСоединение(НастройкиПодключения.СерверПроверкиОбновлений, , ПараметрыАутентификации.Пользователь, ПараметрыАутентификации.Пароль, , 10);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:
|%2'"), НастройкиПодключения.СерверПроверкиОбновлений, ИнформацияОбОшибке()));
|%2'"), НастройкиПодключения.СерверПроверкиОбновлений, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand All @@ -314,7 +319,7 @@
Соединение.Получить(HTTPЗапрос, ZipФайлСпискаШаблонов);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось получить файл с сервера %1:
|%2'"), НастройкиПодключения.СерверПроверкиОбновлений, ИнформацияОбОшибке()));
|%2'"), НастройкиПодключения.СерверПроверкиОбновлений, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand All @@ -323,7 +328,7 @@
ФайлZip = Новый ЧтениеZipФайла(ZipФайлСпискаШаблонов);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось прочесть архив %1:
|%2'"), ZipФайлСпискаШаблонов, ИнформацияОбОшибке()));
|%2'"), ZipФайлСпискаШаблонов, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;
ФайлZip.ИзвлечьВсе(Каталоги.КаталогВременныхФайлов);
Expand All @@ -334,7 +339,7 @@
УдалитьФайлы(ZipФайлСпискаШаблонов);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось удалить временный файл %1:
|%2'"), ZipФайлСпискаШаблонов, ИнформацияОбОшибке()));
|%2'"), ZipФайлСпискаШаблонов, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

Лог.Отладка(НСтр("ru = 'Получение списков обновления завершено.'"));
Expand Down Expand Up @@ -425,7 +430,7 @@
Исключение

Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при чтении файла списка обновлений.
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
ЧтениеXML.Закрыть();

Возврат Неопределено;
Expand All @@ -438,7 +443,7 @@
УдалитьФайлы(ФайлСпискаШаблонов);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось удалить временный файл %1:
|%2'"), ФайлСпискаШаблонов, ИнформацияОбОшибке()));
|%2'"), ФайлСпискаШаблонов, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

Лог.Отладка(НСтр("ru = 'Анализ списков обновления завершен.'"));
Expand Down Expand Up @@ -731,10 +736,10 @@

// Получаем сам файл из Интернета.
Попытка
Соединение = Новый HTTPСоединение(НастройкиПодключения.СерверОбновлений, , ПараметрыАутентификации.Пользователь, ПараметрыАутентификации.Пароль,);
Соединение = Новый HTTPСоединение(НастройкиПодключения.СерверОбновлений, , ПараметрыАутентификации.Пользователь, ПараметрыАутентификации.Пароль, , 10);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:
|%2'"), НастройкиПодключения.СерверОбновлений, ИнформацияОбОшибке()));
|%2'"), НастройкиПодключения.СерверОбновлений, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand All @@ -746,7 +751,7 @@
Соединение.Получить(HTTPЗапрос, ZipФайлОбновления);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось получить файл с сервера %1:
|%2'"), НастройкиПодключения.СерверОбновлений, ИнформацияОбОшибке()));
|%2'"), НастройкиПодключения.СерверОбновлений, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand All @@ -755,7 +760,7 @@
ФайлZip = Новый ЧтениеZipФайла(ZipФайлОбновления);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось прочесть архив %1:
|%2'"), ZipФайлОбновления, ИнформацияОбОшибке()));
|%2'"), ZipФайлОбновления, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;
ФайлZip.ИзвлечьВсе(ВерсияДляОбновления.Каталог);
Expand All @@ -766,7 +771,7 @@
УдалитьФайлы(ZipФайлОбновления);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось удалить временный файл %1:
|%2'"), ZipФайлОбновления, ИнформацияОбОшибке()));
|%2'"), ZipФайлОбновления, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand Down Expand Up @@ -871,7 +876,7 @@

Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при установке запрета на подключение новых соединений.
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
ОсвободитьОбъект(Соединение);
ВыполнитьСборкуМусора();
Соединение = Неопределено;
Expand Down Expand Up @@ -933,7 +938,7 @@
ФайлZip.Записать();
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при записи файла информационной базы в архив.
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand Down Expand Up @@ -990,7 +995,7 @@
Соединение.ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОтложенноеОбновлениеСейчас();
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при выполнении отложенных обработчиков обновления.
|%1'"),ИнформацияОбОшибке()));
|%1'"),ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
ОсвободитьОбъект(Соединение);
ВыполнитьСборкуМусора();
Соединение = Неопределено;
Expand Down Expand Up @@ -1117,7 +1122,7 @@
Результат = Соединение.ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы(Ложь);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при принятии изменений в информационной базе.
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) ));
ОсвободитьОбъект(Соединение);
ВыполнитьСборкуМусора();
Соединение = Неопределено;
Expand Down Expand Up @@ -1176,7 +1181,7 @@
ФайлZip = Новый ЧтениеZipФайла(ФайлРезервнойКопии);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось прочесть архив %1:
|%2'"), ФайлРезервнойКопии, ИнформацияОбОшибке()));
|%2'"), ФайлРезервнойКопии, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;
ФайлZip.ИзвлечьВсе(ПараметрыПодключения.КаталогИнформационнойБазы);
Expand Down Expand Up @@ -1214,7 +1219,7 @@
Соединение.СоединенияИБ.РазрешитьРаботуПользователей();
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Ошибка при разрешении подключений новых соединений.
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
ОсвободитьОбъект(Соединение);
ВыполнитьСборкуМусора();
Соединение = Неопределено;
Expand Down Expand Up @@ -1252,7 +1257,7 @@
СоздатьКаталог(Каталог);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось создать каталог %1.
|%2'"), Каталог, ИнформацияОбОшибке()));
|%2'"), Каталог, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Ложь;
КонецПопытки;

Expand Down Expand Up @@ -1332,7 +1337,7 @@
COMОбъект = Новый COMОбъект(ИмяCOMСоединителя);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось подключится к другой программе:
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Неопределено;
КонецПопытки;

Expand Down Expand Up @@ -1374,7 +1379,7 @@
Соединение = COMОбъект.Connect(СтрокаСоединения);
Исключение
Лог.Ошибка(СтрШаблон(НСтр("ru = 'Не удалось подключится к другой программе:
|%1'"), ИнформацияОбОшибке()));
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Возврат Неопределено;
КонецПопытки;

Expand Down Expand Up @@ -1419,5 +1424,13 @@

КонецФункции

Функция Форматировать(Знач Уровень, Знач Сообщение) Экспорт

Возврат СтрШаблон("%1: %2 - %3", ТекущаяДата(), УровниЛога.НаименованиеУровня(Уровень), Сообщение);

КонецФункции

Лог = Логирование.ПолучитьЛог("oscript.lib.AutoUpdateIB");
Лог.УстановитьРаскладку(ЭтотОбъект);

Инициализировать();