Files
2020-02-17 22:32:00 +03:00

143 lines
11 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИдентификаторПроверки = Параметры.ИдентификаторПроверки;
Если ИдентификаторПроверки = "РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресах" Тогда
Заголовок = НСтр("ru='Исправление адресов с типом здания Литер'");
Элементы.Пояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Элементы.Пояснение.Заголовок,
Строка(Параметры.ВидПроверки.Свойство2));
Иначе
Заголовок = НСтр("ru='Исправление устаревших адресов'");
Элементы.Пояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Элементы.Пояснение.Заголовок,
Строка(Параметры.ВидПроверки.Свойство2));
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ИсправитьАдреса(Команда)
Если ИдентификаторПроверки = "РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресах" Тогда
ДлительнаяОперация = ИсправитьАдресаСТипомЛитерВФоне(ИдентификаторПроверки);
Иначе
ДлительнаяОперация = ИсправитьУстаревшиеАдресаВФоне(ИдентификаторПроверки);
КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ИсправитьПроблемуВФонеЗавершение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекущуюСтраницу(Форма, ИмяСтраницы)
ЭлементыФормы = Форма.Элементы;
Если ИмяСтраницы = "ИдетИсправлениеПроблемы" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.Исправить.Видимость = Истина;
ИначеЕсли ИмяСтраницы = "ИсправлениеУспешноВыполнено" Тогда
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Истина;
ЭлементыФормы.Закрыть.КнопкаПоУмолчанию = Истина;
ЭлементыФормы.Исправить.Видимость = Ложь;
Иначе // "Вопрос"
ЭлементыФормы.ГруппаИндикаторИсправления.Видимость = Ложь;
ЭлементыФормы.ГруппаИндикаторНачалаИсправления.Видимость = Истина;
ЭлементыФормы.ГруппаИндикаторУспешноеИсправление.Видимость = Ложь;
ЭлементыФормы.Исправить.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ИсправитьУстаревшиеАдресаВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление устаревших адресов контактной информации'");
ПараметрыВыполненияФоновогоЗадания = Новый Структура;
ПараметрыВыполненияФоновогоЗадания.Вставить("ИдентификаторПроверки", ИдентификаторПроверки);
ПараметрыВыполненияФоновогоЗадания.Вставить("ВидПроверки", Параметры.ВидПроверки);
Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСАдресами.ИсправитьУстаревшиеАдресаВФоне",
ПараметрыВыполненияФоновогоЗадания, ПараметрыВыполнения);
КонецФункции
&НаСервере
Функция ИсправитьАдресаСТипомЛитерВФоне(ИдентификаторПроверки)
Если ДлительнаяОперация <> Неопределено Тогда
ДлительныеОперации.ОтменитьВыполнениеЗадания(ДлительнаяОперация.ИдентификаторЗадания);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Исправление адресов контактной информации с типом здания Литер'");
ПараметрыВыполненияФоновогоЗадания = Новый Структура;
ПараметрыВыполненияФоновогоЗадания.Вставить("ИдентификаторПроверки", ИдентификаторПроверки);
ПараметрыВыполненияФоновогоЗадания.Вставить("ВидПроверки", Параметры.ВидПроверки);
Возврат ДлительныеОперации.ВыполнитьВФоне("РаботаСАдресами.ИсправитьТипЗданияЛитерВАдресахВФоне",
ПараметрыВыполненияФоновогоЗадания, ПараметрыВыполнения);
КонецФункции
&НаКлиенте
Процедура ИсправитьПроблемуВФонеЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДлительнаяОперация = Неопределено;
Если Результат = Неопределено Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИдетИсправлениеПроблемы");
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
УстановитьТекущуюСтраницу(ЭтотОбъект, "Вопрос");
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
ИначеЕсли Результат.Статус = "Выполнено" Тогда
Результат = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Элементы.НадписьУспешноеИсправление.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
Элементы.НадписьУспешноеИсправление.Заголовок, Результат.ИсправленоОбъектов, Результат.ВсегоОбъектов);
КонецЕсли;
УстановитьТекущуюСтраницу(ЭтотОбъект, "ИсправлениеУспешноВыполнено");
КонецЕсли;
КонецПроцедуры
#КонецОбласти