930 lines
50 KiB
Plaintext
930 lines
50 KiB
Plaintext
#Область ОбработчикиСобытийФормы
|
|
|
|
&НаСервере
|
|
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
|
|
|
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
ПроверитьВозможностьИспользованияФормы(Отказ);
|
|
|
|
Если Отказ Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
ИнициализироватьРеквизитыФормы();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриОткрытии(Отказ)
|
|
|
|
УстановитьПорядковыйНомерПерехода(1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
|
|
|
|
Если НачальнаяВыгрузка Тогда
|
|
ТекстПредупреждения = НСтр("ru = 'Отменить начальную выгрузку данных?'");
|
|
Иначе
|
|
ТекстПредупреждения = НСтр("ru = 'Отменить выгрузку данных?'");
|
|
КонецЕсли;
|
|
|
|
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы(
|
|
ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно");
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
|
|
|
Если Не ЗавершениеРаботы Тогда
|
|
Оповестить("ВыполненОбменДанными");
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОбработчикиКомандФормы
|
|
|
|
&НаКлиенте
|
|
Процедура КомандаДалее(Команда)
|
|
|
|
ИзменитьПорядковыйНомерПерехода(+1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура КомандаНазад(Команда)
|
|
|
|
ИзменитьПорядковыйНомерПерехода(-1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура КомандаГотово(Команда)
|
|
|
|
ПараметрЗакрытия = Неопределено;
|
|
Если ВыгрузкаДанныхВыполнена Тогда
|
|
ПараметрЗакрытия = УзелОбмена;
|
|
КонецЕсли;
|
|
|
|
ЗакрытьФормуБезусловно = Истина;
|
|
Закрыть(ПараметрЗакрытия);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура КомандаОтмена(Команда)
|
|
|
|
Закрыть();
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область СлужебныеПроцедурыИФункции
|
|
|
|
#Область ПроверкаПараметровПодключения
|
|
|
|
&НаКлиенте
|
|
Процедура ПриНачалеПроверкиПодключения()
|
|
|
|
ПродолжитьОжидание = Истина;
|
|
|
|
ПриНачалеПроверкиПодключенияНаСервере(ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(
|
|
ПараметрыОбработчикаОжиданияПроверкиПодключения);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииПроверкиПодключения",
|
|
ПараметрыОбработчикаОжиданияПроверкиПодключения.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ПриЗавершенииПроверкиПодключения();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриОжиданииПроверкиПодключения()
|
|
|
|
ПродолжитьОжидание = Ложь;
|
|
ПриОжиданииПроверкиПодключенияНаСервере(ПараметрыОбработчикаПроверкиПодключения, ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
ДлительныеОперацииКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияПроверкиПодключения);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииПроверкиПодключения",
|
|
ПараметрыОбработчикаОжиданияПроверкиПодключения.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ПараметрыОбработчикаОжиданияПроверкиПодключения = Неопределено;
|
|
ПриЗавершенииПроверкиПодключения();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриЗавершенииПроверкиПодключения()
|
|
|
|
ПриЗавершенииПроверкиПодключенияНаСервере();
|
|
|
|
ИзменитьПорядковыйНомерПерехода(+1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриНачалеПроверкиПодключенияНаСервере(ПродолжитьОжидание)
|
|
|
|
Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS
|
|
И ЗапроситьПароль Тогда
|
|
НастройкиПодключения = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(УзелОбмена, WSПароль);
|
|
Иначе
|
|
НастройкиПодключения = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(УзелОбмена, ВидТранспорта);
|
|
КонецЕсли;
|
|
НастройкиПодключения.Вставить("ВидТранспортаСообщенийОбмена", ВидТранспорта);
|
|
|
|
НастройкиПодключения.Вставить("ИмяПланаОбмена", ОбменДаннымиПовтИсп.ПолучитьИмяПланаОбмена(УзелОбмена));
|
|
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриНачалеПроверкиПодключения(
|
|
НастройкиПодключения, ПараметрыОбработчикаПроверкиПодключения, ПродолжитьОжидание);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервереБезКонтекста
|
|
Процедура ПриОжиданииПроверкиПодключенияНаСервере(ПараметрыОбработчика, ПродолжитьОжидание)
|
|
|
|
ПродолжитьОжидание = Ложь;
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриОжиданииПроверкиПодключения(ПараметрыОбработчика, ПродолжитьОжидание);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриЗавершенииПроверкиПодключенияНаСервере()
|
|
|
|
СтатусЗавершения = Неопределено;
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриЗавершенииПроверкиПодключения(
|
|
ПараметрыОбработчикаПроверкиПодключения, СтатусЗавершения);
|
|
|
|
Если СтатусЗавершения.Отказ Тогда
|
|
ПроверкаПодключенияВыполнена = Ложь;
|
|
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
|
|
Иначе
|
|
ПроверкаПодключенияВыполнена = СтатусЗавершения.Результат.ПодключениеУстановлено
|
|
И СтатусЗавершения.Результат.ПодключениеРазрешено;
|
|
|
|
Если Не ПроверкаПодключенияВыполнена
|
|
И Не ПустаяСтрока(СтатусЗавершения.Результат.СообщениеОбОшибке) Тогда
|
|
СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область РегистрацияИзменений
|
|
|
|
&НаКлиенте
|
|
Процедура ПриНачалеРегистрацииИзменений()
|
|
|
|
ПродолжитьОжидание = Истина;
|
|
ПриНачалеРегистрацииИзмененийНаСервере(ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(
|
|
ПараметрыОбработчикаОжиданияРегистрацииДанныхДляНачальнойВыгрузки);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииРегистрацииИзменений",
|
|
ПараметрыОбработчикаОжиданияРегистрацииДанныхДляНачальнойВыгрузки.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ПриЗавершенииРегистрацииИзменений();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриОжиданииРегистрацииИзменений()
|
|
|
|
ПродолжитьОжидание = Ложь;
|
|
ПриОжиданииРегистрацииИзмененийНаСервере(ПараметрыОбработчикаРегистрацииДанныхДляНачальнойВыгрузки, ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
ДлительныеОперацииКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияРегистрацииДанныхДляНачальнойВыгрузки);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииРегистрацииИзменений",
|
|
ПараметрыОбработчикаОжиданияРегистрацииДанныхДляНачальнойВыгрузки.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ПараметрыОбработчикаОжиданияРегистрацииДанныхДляНачальнойВыгрузки = Неопределено;
|
|
ПриЗавершенииРегистрацииИзменений();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриЗавершенииРегистрацииИзменений()
|
|
|
|
ПриЗавершенииРегистрацииИзмененийНаСервере();
|
|
|
|
ИзменитьПорядковыйНомерПерехода(+1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриНачалеРегистрацииИзмененийНаСервере(ПродолжитьОжидание)
|
|
|
|
НастройкиРегистрации = Новый Структура;
|
|
НастройкиРегистрации.Вставить("УзелОбмена", УзелОбмена);
|
|
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриНачалеРегистрацииДанныхДляНачальнойВыгрузки(
|
|
НастройкиРегистрации, ПараметрыОбработчикаРегистрацииДанныхДляНачальнойВыгрузки, ПродолжитьОжидание);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервереБезКонтекста
|
|
Процедура ПриОжиданииРегистрацииИзмененийНаСервере(ПараметрыОбработчика, ПродолжитьОжидание)
|
|
|
|
ПродолжитьОжидание = Ложь;
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриОжиданииРегистрацииДанныхДляНачальнойВыгрузки(
|
|
ПараметрыОбработчика, ПродолжитьОжидание);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриЗавершенииРегистрацииИзмененийНаСервере()
|
|
|
|
СтатусЗавершения = Неопределено;
|
|
Обработки.ПомощникСозданияОбменаДанными.ПриЗавершенииРегистрацииДанныхДляНачальнойВыгрузки(
|
|
ПараметрыОбработчикаРегистрацииДанныхДляНачальнойВыгрузки, СтатусЗавершения);
|
|
|
|
Если СтатусЗавершения.Отказ Тогда
|
|
РегистрацияИзмененийВыполнена = Ложь;
|
|
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
|
|
Иначе
|
|
РегистрацияИзмененийВыполнена = СтатусЗавершения.Результат.ДанныеЗарегистрированы;
|
|
|
|
Если Не РегистрацияИзмененийВыполнена
|
|
И Не ПустаяСтрока(СтатусЗавершения.Результат.СообщениеОбОшибке) Тогда
|
|
СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ВыгрузкаДанных
|
|
|
|
&НаКлиенте
|
|
Процедура ПриНачалеВыгрузкиДанныхДляСопоставления()
|
|
|
|
ПроцентВыполнения = 0;
|
|
|
|
ПродолжитьОжидание = Истина;
|
|
ПриНачалеВыгрузкиДанныхДляСопоставленияНаСервере(ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
|
|
Если ЭтоОбменСПриложениемВСервисе Тогда
|
|
ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(
|
|
ПараметрыОбработчикаОжиданияВыгрузкиДанныхДляСопоставления);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииВыгрузкиДанныхДляСопоставления",
|
|
ПараметрыОбработчикаОжиданияВыгрузкиДанныхДляСопоставления.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыгрузкаДанныхДляСопоставленияЗавершение", ЭтотОбъект);
|
|
|
|
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
|
|
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
|
ПараметрыОжидания.ВыводитьПрогрессВыполнения = ИспользоватьПрогресс;
|
|
ПараметрыОжидания.ОповещениеОПрогрессеВыполнения = Новый ОписаниеОповещения("ВыгрузкаДанныхДляСопоставленияПрогресс", ЭтотОбъект);
|
|
|
|
ДлительныеОперацииКлиент.ОжидатьЗавершение(ПараметрыОбработчикаВыгрузкиДанныхДляСопоставления.ФоновоеЗадание,
|
|
ОповещениеОЗавершении, ПараметрыОжидания);
|
|
КонецЕсли;
|
|
|
|
Иначе
|
|
|
|
ПриЗавершенииВыгрузкиДанныхДляСопоставления();
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриОжиданииВыгрузкиДанныхДляСопоставления()
|
|
|
|
ПродолжитьОжидание = Ложь;
|
|
ПриОжиданииВыгрузкиДанныхДляСопоставленияНаСервере(ПараметрыОбработчикаВыгрузкиДанныхДляСопоставления, ПродолжитьОжидание);
|
|
|
|
Если ПродолжитьОжидание Тогда
|
|
ДлительныеОперацииКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжиданияВыгрузкиДанныхДляСопоставления);
|
|
|
|
ПодключитьОбработчикОжидания("ПриОжиданииВыгрузкиДанныхДляСопоставления",
|
|
ПараметрыОбработчикаОжиданияВыгрузкиДанныхДляСопоставления.ТекущийИнтервал, Истина);
|
|
Иначе
|
|
ПараметрыОбработчикаОжиданияВыгрузкиДанныхДляСопоставления = Неопределено;
|
|
ПриЗавершенииВыгрузкиДанныхДляСопоставления();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПриЗавершенииВыгрузкиДанныхДляСопоставления()
|
|
|
|
ПроцентВыполнения = 100;
|
|
|
|
ПриЗавершенииВыгрузкиДанныхДляСопоставленияНаСервере();
|
|
ИзменитьПорядковыйНомерПерехода(+1);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВыгрузкаДанныхДляСопоставленияЗавершение(Результат, ДополнительныеПараметры) Экспорт
|
|
|
|
ПриЗавершенииВыгрузкиДанныхДляСопоставления();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВыгрузкаДанныхДляСопоставленияПрогресс(Прогресс, ДополнительныеПараметры) Экспорт
|
|
|
|
Если Прогресс = Неопределено Тогда
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
СтруктураПрогресса = Прогресс.Прогресс;
|
|
Если СтруктураПрогресса <> Неопределено Тогда
|
|
ПроцентВыполнения = СтруктураПрогресса.Процент;
|
|
ДопИнформацияВыполнение = СтруктураПрогресса.Текст;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриНачалеВыгрузкиДанныхДляСопоставленияНаСервере(ПродолжитьОжидание)
|
|
|
|
НастройкиВыгрузки = Новый Структура;
|
|
|
|
Если ЭтоОбменСПриложениемВСервисе Тогда
|
|
НастройкиВыгрузки.Вставить("Корреспондент", УзелОбмена);
|
|
НастройкиВыгрузки.Вставить("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента);
|
|
|
|
МодульПомощникНастройки = ОбщегоНазначения.ОбщийМодуль(
|
|
"Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса");
|
|
Иначе
|
|
НастройкиВыгрузки.Вставить("УзелОбмена", УзелОбмена);
|
|
НастройкиВыгрузки.Вставить("ВидТранспорта", ВидТранспорта);
|
|
|
|
Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS
|
|
И ЗапроситьПароль Тогда
|
|
НастройкиВыгрузки.Вставить("WSПароль", WSПароль);
|
|
КонецЕсли;
|
|
|
|
МодульПомощникНастройки = ОбщегоНазначения.ОбщийМодуль("Обработки.ПомощникИнтерактивногоОбменаДанными");
|
|
КонецЕсли;
|
|
|
|
МодульПомощникНастройки.ПриНачалеВыгрузкиДанныхДляСопоставления(
|
|
НастройкиВыгрузки, ПараметрыОбработчикаВыгрузкиДанныхДляСопоставления, ПродолжитьОжидание);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервереБезКонтекста
|
|
Процедура ПриОжиданииВыгрузкиДанныхДляСопоставленияНаСервере(ПараметрыОбработчика, ПродолжитьОжидание)
|
|
|
|
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
|
|
МодульПомощникНастройки = ОбщегоНазначения.ОбщийМодуль(
|
|
"Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса");
|
|
МодульПомощникНастройки.ПриОжиданииВыгрузкиДанныхДляСопоставления(ПараметрыОбработчика, ПродолжитьОжидание);
|
|
Иначе
|
|
ПродолжитьОжидание = Ложь;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ПриЗавершенииВыгрузкиДанныхДляСопоставленияНаСервере()
|
|
|
|
СтатусЗавершения = Неопределено;
|
|
|
|
Если ЭтоОбменСПриложениемВСервисе Тогда
|
|
МодульПомощникНастройки = ОбщегоНазначения.ОбщийМодуль(
|
|
"Обработки.ПомощникИнтерактивногоОбменаДаннымиВМоделиСервиса");
|
|
Иначе
|
|
МодульПомощникНастройки = ОбщегоНазначения.ОбщийМодуль("Обработки.ПомощникИнтерактивногоОбменаДанными");
|
|
КонецЕсли;
|
|
|
|
МодульПомощникНастройки.ПриЗавершенииВыгрузкиДанныхДляСопоставления(
|
|
ПараметрыОбработчикаВыгрузкиДанныхДляСопоставления, СтатусЗавершения);
|
|
|
|
Если СтатусЗавершения.Отказ Тогда
|
|
ВыгрузкаДанныхВыполнена = Ложь;
|
|
СообщениеОбОшибке = СтатусЗавершения.СообщениеОбОшибке;
|
|
Иначе
|
|
ВыгрузкаДанныхВыполнена = СтатусЗавершения.Результат.ДанныеВыгружены;
|
|
|
|
Если Не ВыгрузкаДанныхВыполнена
|
|
И Не ПустаяСтрока(СтатусЗавершения.Результат.СообщениеОбОшибке) Тогда
|
|
СообщениеОбОшибке = СтатусЗавершения.Результат.СообщениеОбОшибке;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ИнициализацияФормыПриСоздании
|
|
|
|
&НаСервере
|
|
Процедура ПроверитьВозможностьИспользованияФормы(Отказ = Ложь)
|
|
|
|
// Обязательная должны быть переданы параметры выполнения выгрузки данных.
|
|
Если Не Параметры.Свойство("УзелОбмена") Тогда
|
|
ТекстСообщения = НСтр("ru = 'Форма не предназначена для непосредственного использования.'");
|
|
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , , , Отказ);
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
Если ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Параметры.УзелОбмена) Тогда
|
|
ТекстСообщения = НСтр("ru = 'Начальная выгрузка не поддерживается для узлов распределенных информационных баз.'");
|
|
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , , , Отказ);
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура ИнициализироватьРеквизитыФормы()
|
|
|
|
УзелОбмена = Параметры.УзелОбмена;
|
|
|
|
Если Параметры.Свойство("НачальнаяВыгрузка") Тогда
|
|
РежимВыгрузкиДанных = "НачальнаяВыгрузка";
|
|
НачальнаяВыгрузка = Истина;
|
|
Иначе
|
|
РежимВыгрузкиДанных = "ОбычнаяВыгрузка";
|
|
КонецЕсли;
|
|
|
|
НаименованиеПриложения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "Наименование");
|
|
|
|
Параметры.Свойство("ЭтоОбменСПриложениемВСервисе", ЭтоОбменСПриложениемВСервисе);
|
|
Параметры.Свойство("ОбластьДанныхКорреспондента", ОбластьДанныхКорреспондента);
|
|
|
|
ИспользоватьПрогресс = Не ЭтоОбменСПриложениемВСервисе;
|
|
|
|
ВидТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(УзелОбмена);
|
|
|
|
Если ВидТранспорта = Перечисления.ВидыТранспортаСообщенийОбмена.WS Тогда
|
|
|
|
ИспользоватьПрогресс = Ложь;
|
|
|
|
НастройкиТранспорта = РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспортаWS(УзелОбмена);
|
|
|
|
ЗапроситьПароль = Не (НастройкиТранспорта.WSЗапомнитьПароль
|
|
Или ОбменДаннымиСервер.ПарольСинхронизацииДанныхЗадан(УзелОбмена));
|
|
|
|
КонецЕсли;
|
|
|
|
ЗаполнитьТаблицуПереходов();
|
|
|
|
УстановитьНаименованиеПриложенияВНадписяхФормы();
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаСервере
|
|
Процедура УстановитьНаименованиеПриложенияВНадписяхФормы()
|
|
|
|
Элементы.ДекорацияНадписьПароль.Заголовок = СтрЗаменить(Элементы.ДекорацияНадписьПароль.Заголовок,
|
|
"%НаименованиеПриложения%", НаименованиеПриложения);
|
|
|
|
Элементы.ДекорацияНадписьВыгрузкаДанныхБезПрогресса.Заголовок = СтрЗаменить(Элементы.ДекорацияНадписьВыгрузкаДанныхБезПрогресса.Заголовок,
|
|
"%НаименованиеПриложения%", НаименованиеПриложения);
|
|
|
|
Элементы.ДекорацияНадписьВыгрузкаДанныхПрогресс.Заголовок = СтрЗаменить(Элементы.ДекорацияНадписьВыгрузкаДанныхПрогресс.Заголовок,
|
|
"%НаименованиеПриложения%", НаименованиеПриложения);
|
|
|
|
Элементы.ДекорацияНадписьВыгрузкаЗавершена.Заголовок = СтрЗаменить(Элементы.ДекорацияНадписьВыгрузкаЗавершена.Заголовок,
|
|
"%НаименованиеПриложения%", НаименованиеПриложения);
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область СценарииРаботыПомощника
|
|
|
|
&НаСервере
|
|
Функция ДобавитьСтрокуТаблицыПереходов(ИмяОсновнойСтраницы, ИмяСтраницыНавигации, ИмяСтраницыДекорации = "")
|
|
|
|
СтрокаПереходов = ТаблицаПереходов.Добавить();
|
|
СтрокаПереходов.ПорядковыйНомерПерехода = ТаблицаПереходов.Количество();
|
|
СтрокаПереходов.ИмяОсновнойСтраницы = ИмяОсновнойСтраницы;
|
|
СтрокаПереходов.ИмяСтраницыНавигации = ИмяСтраницыНавигации;
|
|
СтрокаПереходов.ИмяСтраницыДекорации = ИмяСтраницыДекорации;
|
|
|
|
Возврат СтрокаПереходов;
|
|
|
|
КонецФункции
|
|
|
|
&НаСервере
|
|
Процедура ЗаполнитьТаблицуПереходов()
|
|
|
|
ТаблицаПереходов.Очистить();
|
|
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаНачало", "СтраницаНавигацияНачало");
|
|
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаНачало_ПриОткрытии";
|
|
|
|
Если ЗапроситьПароль Тогда
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаЗапросПароля", "СтраницаНавигацияПродолжение");
|
|
НовыйПереход.ИмяОбработчикаПриПереходеДалее = "СтраницаЗапросПароля_ПриПереходеДалее";
|
|
КонецЕсли;
|
|
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаПроверкаПодключения", "СтраницаНавигацияОжидание");
|
|
НовыйПереход.ДлительнаяОперация = Истина;
|
|
НовыйПереход.ИмяОбработчикаДлительнойОперации = "СтраницаПроверкаПодключения_ДлительнаяОперация";
|
|
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаРегистрацияИзменений", "СтраницаНавигацияОжидание");
|
|
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаРегистрацияИзменений_ПриОткрытии";
|
|
НовыйПереход.ДлительнаяОперация = Истина;
|
|
НовыйПереход.ИмяОбработчикаДлительнойОперации = "СтраницаРегистрацияИзменений_ДлительнаяОперация";
|
|
|
|
Если ИспользоватьПрогресс Тогда
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаВыгрузкаДанныхПрогресс", "СтраницаНавигацияОжидание");
|
|
Иначе
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаВыгрузкаДанныхБезПрогресса", "СтраницаНавигацияОжидание");
|
|
КонецЕсли;
|
|
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаВыгрузкаДанных_ПриОткрытии";
|
|
НовыйПереход.ДлительнаяОперация = Истина;
|
|
НовыйПереход.ИмяОбработчикаДлительнойОперации = "СтраницаВыгрузкаДанных_ДлительнаяОперация";
|
|
|
|
НовыйПереход = ДобавитьСтрокуТаблицыПереходов("СтраницаОкончание", "СтраницаНавигацияОкончание");
|
|
НовыйПереход.ИмяОбработчикаПриОткрытии = "СтраницаОкончание_ПриОткрытии";
|
|
|
|
КонецПроцедуры
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ОбработчикиСобытийПереходов
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаНачало_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
|
|
|
|
Элементы.РежимВыгрузкиДанных.Доступность = Не НачальнаяВыгрузка;
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаЗапросПароля_ПриПереходеДалее(Отказ)
|
|
|
|
Если Не ЗапроситьПароль Тогда
|
|
Возврат 0;
|
|
КонецЕсли;
|
|
|
|
Если ПустаяСтрока(WSПароль) Тогда
|
|
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
|
|
НСтр("ru = 'Укажите пароль.'"), , "WSПароль", , Отказ);
|
|
КонецЕсли;
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаПроверкаПодключения_ДлительнаяОперация(Отказ, ПерейтиДалее)
|
|
|
|
ПерейтиДалее = Ложь;
|
|
ПриНачалеПроверкиПодключения();
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаРегистрацияИзменений_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
|
|
|
|
Если Не ПроверкаПодключенияВыполнена Тогда
|
|
ПропуститьСтраницу = Истина;
|
|
Возврат 0;
|
|
Иначе
|
|
Если РежимВыгрузкиДанных = "ОбычнаяВыгрузка" Тогда
|
|
ПропуститьСтраницу = Истина;
|
|
РегистрацияИзмененийВыполнена = Истина;
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаРегистрацияИзменений_ДлительнаяОперация(Отказ, ПерейтиДалее)
|
|
|
|
ПерейтиДалее = Ложь;
|
|
ПриНачалеРегистрацииИзменений();
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаВыгрузкаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
|
|
|
|
ПропуститьСтраницу = Не ПроверкаПодключенияВыполнена
|
|
Или Не РегистрацияИзмененийВыполнена;
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаВыгрузкаДанных_ДлительнаяОперация(Отказ, ПерейтиДалее)
|
|
|
|
ПерейтиДалее = Ложь;
|
|
ПриНачалеВыгрузкиДанныхДляСопоставления();
|
|
|
|
КонецФункции
|
|
|
|
&НаКлиенте
|
|
Функция Подключаемый_СтраницаОкончание_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
|
|
|
|
Если Не ПроверкаПодключенияВыполнена Тогда
|
|
Элементы.ПанельСостояниеЗавершения.ТекущаяСтраница = Элементы.СтраницаЗавершениеОшибкаПроверкаПодключения;
|
|
ИначеЕсли Не РегистрацияИзмененийВыполнена Тогда
|
|
Элементы.ПанельСостояниеЗавершения.ТекущаяСтраница = Элементы.СтраницаЗавершениеОшибкаРегистрацияИзменений;
|
|
ИначеЕсли Не ВыгрузкаДанныхВыполнена Тогда
|
|
Элементы.ПанельСостояниеЗавершения.ТекущаяСтраница = Элементы.СтраницаЗавершениеОшибкаВыгрузкаДанных;
|
|
Иначе
|
|
Элементы.ПанельСостояниеЗавершения.ТекущаяСтраница = Элементы.СтраницаЗавершениеУспех;
|
|
КонецЕсли;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#Область ДополнительныеОбработчикиПереходов
|
|
|
|
&НаКлиенте
|
|
Процедура ИзменитьПорядковыйНомерПерехода(Итератор)
|
|
|
|
ОчиститьСообщения();
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура УстановитьПорядковыйНомерПерехода(Знач Значение)
|
|
|
|
ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода);
|
|
|
|
ПорядковыйНомерПерехода = Значение;
|
|
|
|
Если ПорядковыйНомерПерехода < 1 Тогда
|
|
|
|
ПорядковыйНомерПерехода = 1;
|
|
|
|
КонецЕсли;
|
|
|
|
ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее);
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее)
|
|
|
|
// Выполняем обработчики событий перехода.
|
|
ВыполнитьОбработчикиСобытийПерехода(ЭтоПереходДалее);
|
|
|
|
// Устанавливаем отображение страниц.
|
|
СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода));
|
|
|
|
Если СтрокиПереходаТекущие.Количество() = 0 Тогда
|
|
ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'");
|
|
КонецЕсли;
|
|
|
|
СтрокаПереходаТекущая = СтрокиПереходаТекущие[0];
|
|
|
|
Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы];
|
|
Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации];
|
|
|
|
Элементы.ПанельНавигации.ТекущаяСтраница.Доступность = Не (ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация);
|
|
|
|
// Устанавливаем текущую кнопку по умолчанию.
|
|
КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаДалее");
|
|
|
|
Если КнопкаДалее <> Неопределено Тогда
|
|
|
|
КнопкаДалее.КнопкаПоУмолчанию = Истина;
|
|
|
|
Иначе
|
|
|
|
КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаГотово");
|
|
|
|
Если КнопкаГотово <> Неопределено Тогда
|
|
|
|
КнопкаГотово.КнопкаПоУмолчанию = Истина;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
Если ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация Тогда
|
|
|
|
ПодключитьОбработчикОжидания("ВыполнитьОбработчикДлительнойОперации", 0.1, Истина);
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВыполнитьОбработчикиСобытийПерехода(Знач ЭтоПереходДалее)
|
|
|
|
// Обработчики событий переходов.
|
|
Если ЭтоПереходДалее Тогда
|
|
|
|
СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1));
|
|
|
|
Если СтрокиПерехода.Количество() > 0 Тогда
|
|
СтрокаПерехода = СтрокиПерехода[0];
|
|
|
|
// Обработчик ПриПереходеДалее.
|
|
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее)
|
|
И Не СтрокаПерехода.ДлительнаяОперация Тогда
|
|
|
|
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)";
|
|
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее);
|
|
|
|
Отказ = Ложь;
|
|
|
|
Результат = Вычислить(ИмяПроцедуры);
|
|
|
|
Если Отказ Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
|
|
|
|
Возврат;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
Иначе
|
|
|
|
СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1));
|
|
|
|
Если СтрокиПерехода.Количество() > 0 Тогда
|
|
СтрокаПерехода = СтрокиПерехода[0];
|
|
|
|
// Обработчик ПриПереходеНазад.
|
|
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад)
|
|
И Не СтрокаПерехода.ДлительнаяОперация Тогда
|
|
|
|
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)";
|
|
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад);
|
|
|
|
Отказ = Ложь;
|
|
|
|
Результат = Вычислить(ИмяПроцедуры);
|
|
|
|
Если Отказ Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1);
|
|
|
|
Возврат;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода));
|
|
|
|
Если СтрокиПереходаТекущие.Количество() = 0 Тогда
|
|
ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'");
|
|
КонецЕсли;
|
|
|
|
СтрокаПереходаТекущая = СтрокиПереходаТекущие[0];
|
|
|
|
Если СтрокаПереходаТекущая.ДлительнаяОперация И Не ЭтоПереходДалее Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
// обработчик ПриОткрытии
|
|
Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда
|
|
|
|
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)";
|
|
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии);
|
|
|
|
Отказ = Ложь;
|
|
ПропуститьСтраницу = Ложь;
|
|
|
|
Результат = Вычислить(ИмяПроцедуры);
|
|
|
|
Если Отказ Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
|
|
|
|
Возврат;
|
|
|
|
ИначеЕсли ПропуститьСтраницу Тогда
|
|
|
|
Если ЭтоПереходДалее Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1);
|
|
|
|
Возврат;
|
|
|
|
Иначе
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
|
|
|
|
Возврат;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Процедура ВыполнитьОбработчикДлительнойОперации()
|
|
|
|
СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода));
|
|
|
|
Если СтрокиПереходаТекущие.Количество() = 0 Тогда
|
|
ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'");
|
|
КонецЕсли;
|
|
|
|
СтрокаПереходаТекущая = СтрокиПереходаТекущие[0];
|
|
|
|
// Обработчик ОбработкаДлительнойОперации.
|
|
Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда
|
|
|
|
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПерейтиДалее)";
|
|
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации);
|
|
|
|
Отказ = Ложь;
|
|
ПерейтиДалее = Истина;
|
|
|
|
Результат = Вычислить(ИмяПроцедуры);
|
|
|
|
Если Отказ Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1);
|
|
|
|
Возврат;
|
|
|
|
ИначеЕсли ПерейтиДалее Тогда
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1);
|
|
|
|
Возврат;
|
|
|
|
КонецЕсли;
|
|
|
|
Иначе
|
|
|
|
УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1);
|
|
|
|
Возврат;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
&НаКлиенте
|
|
Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды)
|
|
|
|
Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл
|
|
|
|
Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда
|
|
|
|
ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды);
|
|
|
|
Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда
|
|
|
|
Возврат ЭлементФормыПоИмениКоманды;
|
|
|
|
КонецЕсли;
|
|
|
|
ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы")
|
|
И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда
|
|
|
|
Возврат Элемент;
|
|
|
|
Иначе
|
|
|
|
Продолжить;
|
|
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
|
|
Возврат Неопределено;
|
|
|
|
КонецФункции
|
|
|
|
#КонецОбласти
|
|
|
|
#КонецОбласти
|