Обновление конфигурации получено.
Функция ОбновлениеКонфигурацииПолучено(Обновление, Контекст) Экспорт
Если Обновление.Получено Тогда
Возврат Истина;
ИначеЕсли Не ФайлСуществует(Обновление.ПолноеИмяCFUФайлаВКаталогеДистрибутивов, Ложь)
Или ПустаяСтрока(Обновление.КонтрольнаяСумма) Тогда
Возврат Ложь;
Иначе
// Проверка контрольных сумм.
#Если Не ТонкийКлиент Тогда
Хеширование = Новый ХешированиеДанных(ХешФункция.MD5);
Хеширование.ДобавитьФайл(Обновление.ПолноеИмяCFUФайлаВКаталогеДистрибутивов);
Попытка
Если Обновление.КонтрольнаяСумма <> Base64Строка(Хеширование.ХешСумма) Тогда
Возврат Ложь;
Иначе
Обновление.Получено = Истина;
Возврат Истина;
КонецЕсли;
Исключение
ПолучениеОбновленийПрограммыВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Ложь;
КонецПопытки;
#Иначе
Попытка
ПолноеИмяИндексногоФайла = Контекст.КаталогИндексаФайлов + Обновление.ИмяИндексногоФайла;
Если Не ФайлСуществует(ПолноеИмяИндексногоФайла, Ложь) Тогда
Возврат ложь;
КонецЕсли;
ЧтениеТекста = Новый ЧтениеТекста(ПолноеИмяИндексногоФайла);
ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
Если ТекСтрока = Неопределено Тогда
Возврат Ложь;
ИначеЕсли ТекСтрока <> Обновление.ПолноеИмяCFUФайлаВКаталогеДистрибутивов Тогда
Возврат Ложь;
КонецЕсли;
ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
Если ТекСтрока = Неопределено Тогда
Возврат Ложь;
ИначеЕсли ТекСтрока <> Обновление.КонтрольнаяСумма Тогда
Возврат Ложь;
КонецЕсли;
ОписательФайлаОбновления = Новый Файл(Обновление.ПолноеИмяCFUФайлаВКаталогеДистрибутивов);
ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
Если ТекСтрока = Неопределено Тогда
Возврат Ложь;
ИначеЕсли ТекСтрока <> Строка(ОписательФайлаОбновления.Размер()) Тогда
Возврат Ложь;
КонецЕсли;
ТекСтрока = ЧтениеТекста.ПрочитатьСтроку();
Если ТекСтрока = Неопределено Тогда
Возврат Ложь;
ИначеЕсли ТекСтрока <> Строка(ОписательФайлаОбновления.ПолучитьУниверсальноеВремяИзменения()) Тогда
Возврат Ложь;
КонецЕсли;
ЧтениеТекста.Закрыть();
Обновление.Получено = Истина;
Возврат Истина;
Исключение
ПолучениеОбновленийПрограммыВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Ложь;
КонецПопытки;
#КонецЕсли
КонецЕсли;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
НастройкиОбновленияКонфигурации (БСП)
СохранитьНастройкиОбновленияКонфигурации (БСП)
ОперативноеОбновлениеРазделенныхДанныхКонфигурации (БСП)
СброситьСтатусОбновленияКонфигурации (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)