Начать выгрузку. Инициализирует выгрузку.
// Инициализирует выгрузку.
//
// Параметры:
// АдресПриложения - Строка - url приложения, которое создано специально для миграции.
// Логин - Строка - логин пользователя в этом приложении.
// Пароль - Строка - пароль пользователя.
// ВыгружатьНастройкиПользователей - Соответствие - коллекция пользователей, настройки которых нужно выгружать:
// * Ключ - СправочникСсылка.Пользователи - пользователь, настройки которого нужно выгрузить.
// * Значение - Строка - новый логин пользователя.
// ЗавершитьМиграциюАвтоматически - Булево - если Истина, то будет выполнена попытка установить монопольный режим и
// завершить миграцию.
// ДополнительныеСвойства - Структура - доп. свойства для сохранения.
//
Процедура НачатьВыгрузку(АдресПриложения, Логин, Пароль, ВыгружатьНастройкиПользователей, ЗавершитьМиграциюАвтоматически, ДополнительныеСвойства) Экспорт
ПроверитьСоставПланаОбмена();
ПроверитьИспользованиеРазделениеСеанса();
Запись = РегистрыСведений.МиграцияПриложенийСостояниеВыгрузки.СоздатьМенеджерЗаписи();
Запись.Прочитать();
Если Запись.Выбран() Тогда
ВызватьИсключение НСтр("ru = 'Переход уже начался.'");
КонецЕсли;
НачатьТранзакцию();
Попытка
НовыйУзел = ПланыОбмена.МиграцияПриложений.СоздатьУзел();
НовыйУзел.Наименование = СтрШаблон(НСтр("ru = 'Миграция в %1 (%2)'"), Метаданные.Представление(), АдресПриложения);
НовыйУзел.Код = Строка(Новый УникальныйИдентификатор);
НовыйУзел.Записать();
ПараметрыДоступа = Новый Структура;
ПараметрыДоступа.Вставить("URL", АдресПриложения);
ПараметрыДоступа.Вставить("UserName", Логин);
ПараметрыДоступа.Вставить("Password", Пароль);
УстановитьПривилегированныйРежим(Истина);
ИнтеграцияПодсистемБТС.ЗаписатьДанныеВБезопасноеХранилище(НовыйУзел.Ссылка, ПараметрыДоступа, "ПараметрыДоступа");
УстановитьПривилегированныйРежим(Ложь);
Запись = РегистрыСведений.МиграцияПриложенийСостояниеВыгрузки.СоздатьМенеджерЗаписи();
Запись.Состояние = Перечисления.СостоянияМиграцииПриложения.Выполняется;
Запись.ДатаНачала = ТекущаяУниверсальнаяДата();
Запись.АдресПриложения = АдресПриложения;
Запись.ВыгружатьНастройкиПользователей = Новый ХранилищеЗначения(ВыгружатьНастройкиПользователей);
Запись.УзелОбмена = НовыйУзел.Ссылка;
Запись.ЗавершитьМиграциюАвтоматически = ЗавершитьМиграциюАвтоматически;
Запись.ДополнительныеСвойства = Новый ХранилищеЗначения(ДополнительныеСвойства);
Запись.Инициатор = Пользователи.ТекущийПользователь();
Запись.Записать();
ЗначенияПоУмолчанию = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.МиграцияПриложенийВыгрузка);
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.МиграцияПриложенийВыгрузка);
ПараметрыЗадания.Вставить("Использование", Истина);
ПараметрыЗадания.Вставить("Расписание", ЗначенияПоУмолчанию.Расписание);
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", ЗначенияПоУмолчанию.КоличествоПовторовПриАварийномЗавершении);
ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", ЗначенияПоУмолчанию.ИнтервалПовтораПриАварийномЗавершении);
ПараметрыЗадания.Вставить("Ключ", ЗначенияПоУмолчанию.Ключ);
РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
НачатьПодписание_ПослеВыгрузкиСертификатаКриптографии (БСП)
ЗарегистрироватьДанныеПоДатеНачалаВыгрузкиИОрганизациям (БСП)
ПредставлениеНачалоВыбораЗавершение (БСП)
ПродолжитьОткрытиеНачало (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)