Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Область ОбработчикиСобытийФормы
- &НаСервере
- Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
- Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
- Возврат;
- КонецЕсли;
- Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда
- МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов");
- МодульВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
- КонецЕсли;
- Если Параметры.Ключ.Пустая() Тогда
- Объект.Черновик = Истина;
- Объект.Ответственный = Пользователи.ТекущийПользователь();
- //++ Юкаев Роман 20180125 (
- Объект.ВидКредита = Справочники.ВидыКредитов.ИпотечныйКредит;
- //-- Юкаев Роман 20180125 )
- //<874899>, Басаргин (09.10.2018) {
- Если Параметры.Свойство("РекомендуемыйБанк") Тогда
- Объект.РекомендуемыйБанк = Параметры.РекомендуемыйБанк;
- Объект.ПараметрыПодключения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РекомендуемыйБанк, "ПараметрыПодключения");
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- | СоответствиеПроектовОтделениямБанков.ОтделениеБанка КАК ОтделениеБанка
- |ИЗ
- | РегистрСведений.СоответствиеПроектовОтделениямБанков КАК СоответствиеПроектовОтделениямБанков
- |ГДЕ
- | СоответствиеПроектовОтделениямБанков.Проект = &Проект
- | И СоответствиеПроектовОтделениямБанков.Банк = &Банк";
- Запрос.УстановитьПараметр("Банк", Объект.РекомендуемыйБанк);
- Запрос.УстановитьПараметр("Проект", Объект.Проект);
- РезультатЗапроса = Запрос.Выполнить();
- ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
- Если ВыборкаДетальныеЗаписи.Следующий() Тогда
- Объект.ОтделениеБанка = ВыборкаДетальныеЗаписи.ОтделениеБанка;
- КонецЕсли;
- КонецЕсли;
- Если Параметры.Свойство("ТипОбъекта") Тогда
- ВидОбъектаНедвижимости = Строка(Параметры.ТипОбъекта);
- Объект.ВидОбъектаНедвижимости = ?(СтрНайти(ВидОбъектаНедвижимости, "Первичный"), Справочники.ВидыОбъектовНедвижимости.Первичка, Справочники.ВидыОбъектовНедвижимости.Вторичка);
- КонецЕсли;
- Если Параметры.Свойство("ПрикрепленныеФайлы") Тогда
- Для каждого Элемент Из Параметры.ПрикрепленныеФайлы Цикл
- Файл = Элемент.Значение;
- НоваяСтрока = Объект.ПрикрепленныеФайлы.Добавить();
- НоваяСтрока.Файл = Файл; //СкопироватьФайл(Файл, Объект.Ссылка);
- СведенияОФайле = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Файл, "ДатаСоздания, Наименование, Расширение, ИндексКартинки");
- НоваяСтрока.id = Файл.УникальныйИдентификатор();
- НоваяСтрока.path = ЗаявкиНаКредитRestAPI.ПолучитьПутьКФайлу(Файл);
- //НоваяСтрока.create_date = СведенияОФайле.ДатаСоздания;
- НоваяСтрока.name = СведенияОФайле.Наименование + "." + СведенияОФайле.Расширение; //СведенияОФайле.ИмяБезРасширения + "." + СведенияОФайле.РасширениеБезТочки;
- НоваяСтрока.ИндексКартинки = СведенияОФайле.ИндексКартинки;
- НоваяСтрока.Отправлять = Истина;
- КонецЦикла;
- КонецЕсли;
- Если Параметры.Свойство("ПрограммаКредитования") Тогда
- Объект.ПрограммаКредитования = Параметры.ПрограммаКредитования;
- КонецЕсли;
- //<874899> }
- //<897513>, Басаргин (12.12.2018) {
- //Объект.agentPhone = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьНомерТелефонаАгента();
- Объект.ИпотечныйАгент = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьИпотечногоАгента(Объект.Ответственный, Объект.РасчетИпотеки);
- //<897513> }
- КонецЕсли;
- УправлениеВидимостьюДоступностью();
- //++ Юкаев Роман 20180123 (
- Элементы.КонтактноеЛицо.СписокВыбора.Добавить(Объект.КонтактноеЛицо);
- //-- Юкаев Роман 20180123 )
- ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
- КонецПроцедуры
- &НаКлиенте
- Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
- //<940395>, Басаргин (27.02.2019) {
- Если НЕ ДомКлик И Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка") Тогда
- Если НЕ ЗначениеЗаполнено(Объект.ПроцентнаяСтавка) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена процентная ставка", Объект.Ссылка, "ПроцентнаяСтавка", "Объект", Отказ);
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.sum_approved) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена одобренная сумма кредита", Объект.Ссылка, "sum_approved", "Объект", Отказ);
- КонецЕсли;
- КонецЕсли;
- //<940395> }
- КонецПроцедуры
- &НаСервере
- Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
- //Проверка для создания документа взаимодействия с типом встреча, если взаимодействия нет, необходимо создать...
- СтрВстречи = CRMСервер.НаличиеДокументаВзаимодействияВстреча(Объект.Ссылка, Объект.КонтактноеЛицо);
- ПараметрыЗаписи.Вставить("ЕстьДокументВстреча", СтрВстречи.Результат);
- ПараметрыЗаписи.Вставить("ДокВстреча", СтрВстречи.ДокументВзаимодействие);
- //Проверка для корректировки взаимодействия с будущей датой.
- СтрЗапланированнойВстречи = CRMСервер.НаличиеЗапланированногоДокументаВстреча(Объект.Ссылка, Объект.КонтактноеЛицо);
- ПараметрыЗаписи.Вставить("ЕстьЗапланированнаяВстреча", СтрЗапланированнойВстречи.Результат);
- ПараметрыЗаписи.Вставить("ДокЗапланированнаяВстреча", СтрЗапланированнойВстречи.ДокументВзаимодействие);
- ПараметрыЗаписи.Вставить("ЕстьДокументТелЗвонок", Ложь);
- ПараметрыЗаписи.Вставить("ДокТелЗвонок", Неопределено);
- СтрЗапланированногоЗвонка = CRMСервер.НаличиеЗапланированногоДокументаТелефонногоЗвонка(Объект.Ссылка, Объект.КонтактноеЛицо);
- ПараметрыЗаписи.Вставить("ЕстьЗапланированныйЗвонок", СтрЗапланированногоЗвонка.Результат);
- ПараметрыЗаписи.Вставить("ДокЗапланированныйЗвонок", СтрЗапланированногоЗвонка.ДокументВзаимодействие);
- КонецПроцедуры
- #КонецОбласти
- #Область ОбработчикиСобытийЭлементовШапкиФормы
- &НаКлиенте
- Процедура ОтделениеБанкаПриИзменении(Элемент)
- Если НЕ ТолькоОтправкаПисем Тогда
- ОтделениеБанкаПриИзмененииНаСервере();
- Если ПроверкаОтделения() Тогда
- ПоказатьПредупреждение(, "У выбранного отделения банка не заполнен ID из системы банка. Для корректной работы заполните ID отделения и перевыберите его в документе", 0);
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Функция ПроверкаОтделения()
- Возврат НЕ ЗначениеЗаполнено(Объект.ЦИК) И ВРег(Объект.РекомендуемыйБанк.Наименование) = "СБЕРБАНК";
- КонецФункции
- &НаКлиенте
- Процедура РекомендуемыйБанкПриИзменении(Элемент)
- РекомендуемыйБанкПриИзмененииНаСервере();
- КонецПроцедуры
- &НаКлиенте
- Процедура РекомендуемыйБанкНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
- //НовыйПараметр = Новый ПараметрВыбора("Отбор.Ссылка", ДоступныеБанки);
- //НовыйМассив = Новый Массив();
- //НовыйМассив.Добавить(НовыйПараметр);
- //НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
- //Элементы.РекомендуемыйБанк.ПараметрыВыбора = НовыеПараметры;
- КонецПроцедуры
- &НаКлиенте
- Процедура СостояниеЗаявкиПриИзменении(Элемент)
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаКлиенте
- Процедура СтатусЗаявкиПриИзменении(Элемент)
- СтатусЗаявкиПриИзмененииНаСервере();
- //Если //Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ВозвратНаДоработку") ИЛИ
- // Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ПустаяСсылка") Тогда
- // Объект.УспешнаяОтправка = Ложь;
- //Иначе
- // Объект.УспешнаяОтправка = Истина;
- //КонецЕсли;
- //
- //Если Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.КредитОдобрен")
- // //ИЛИ Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.КредитВыдан")
- // Тогда
- // //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Одобрение");
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка");
- // Объект.ДатаРешенияБанка = ТекущаяДата();
- //ИначеЕсли Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.Отказ")
- // ИЛИ Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.НеКредитуем") Тогда
- // //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказБанка");
- // Объект.ДатаРешенияБанка = ТекущаяДата();
- //ИначеЕсли Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ОтказКлиента") Тогда
- // //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказКлиентаОтРассмотрения");
- // Объект.ДатаРешенияБанка = ТекущаяДата();
- ////<934452>, Басаргин (08.02.2019) {
- //ИначеЕсли Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ВозвратНаДоработку")
- // ИЛИ ЗначениеРеквизитаОбъектаНаСервере(Объект.СтатусЗаявки, "ID") = 8220 Тогда
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- // Объект.ДатаРешенияБанка = Неопределено;
- ////Иначе
- //// //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.ПустаяСсылка");
- //// Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- //// Объект.ДатаРешенияБанка = Неопределено;
- ////<934452> }
- //КонецЕсли;
- //
- //УправлениеВидимостьюДоступностью();
- // { МанухинД http://it.absgroup.ru/browse/AN-549
- //Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаМенеджеру", ЭтаФорма);
- //ПоказатьВопрос(Оповещение, "Отправить оповещение менеджеру?", РежимДиалогаВопрос.ДаНет, 0);
- // } МанухинД http://it.absgroup.ru/browse/AN-549
- КонецПроцедуры
- &НаКлиенте
- Процедура РешениеБанкаПриИзменении(Элемент)
- Если ТолькоОтправкаПисем Тогда
- РешениеБанкаПриИзмененииНаСервере();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтветственныйПриИзменении(Элемент)
- //<897513>, Басаргин (04.12.2018) {
- //Объект.agentPhone = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьНомерТелефонаАгента(Объект.Ответственный);
- Объект.ИпотечныйАгент = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьИпотечногоАгента(Объект.Ответственный, Объект.РасчетИпотеки);
- //<897513> }
- КонецПроцедуры
- //<897513>, Басаргин (17.12.2018) {
- &НаКлиенте
- Процедура ПослеВыбораАнкеты(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт
- Если ВыбранныйЭлемент = Неопределено Тогда
- Возврат;
- КонецЕсли;
- РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Ссылка, ЭтаФорма.УникальныйИдентификатор);
- НайденныеСтроки = Объект.Анкеты.НайтиСтроки(Новый Структура("Анкета", ВыбранныйЭлемент.Значение));
- Если НайденныеСтроки.Количество() Тогда
- ApplicationID = НайденныеСтроки[0].ApplicationID;
- КонецЕсли;
- ОбновитьТаблицуФайлов(ВыбранныйЭлемент.Значение, ApplicationID, 20750);
- КонецПроцедуры
- &НаКлиенте
- Процедура АнкетыАнкетаПриИзменении(Элемент)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- ТипАнкеты = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьТипАнкеты(ТекущиеДанные.Анкета); //ПолучитьТипАнкетыНаСервере(ТекущиеДанные.Анкета);
- СтрокаАнкет = Объект.Анкеты.НайтиПоИдентификатору(ТекущиеДанные.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкет = Неопределено Тогда
- СтрокаАнкет.ТипАнкеты = ТипАнкеты;
- КонецЕсли;
- КонецПроцедуры
- //<897513> }
- &НаКлиенте
- Процедура КонтактноеЛицоПриИзменении(Элемент)
- Если ЗначениеЗаполнено(Объект.КонтактноеЛицо) Тогда
- СтруктураПараметров = ПолучитьКонтактныеДанныеКлиента(Объект.КонтактноеЛицо);
- Объект.ДатаРожденияКлиента = СтруктураПараметров.ДатаРожденияКлиента;
- Объект.ФИОКлиента = СтруктураПараметров.ФИОКлиента;
- Объект.СерияНомерПаспорта = СтруктураПараметров.СерияНомерПаспорта;
- Объект.АдресФактическогоПроживания = СтруктураПараметров.АдресФактическогоПроживания;
- Объект.НомерТелефонаКлиента = СтруктураПараметров.НомерТелефона;
- Объект.EmailКлиента = СтруктураПараметров.EmailКлиента;
- Иначе
- ОчиститьКонтактныеДанные();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура КонтактноеЛицоОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
- СтандартнаяОбработка = Ложь;
- Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда
- Объект.КонтактноеЛицо = ВыбранноеЗначение;
- Элементы.КонтактноеЛицо.СписокВыбора.Очистить();
- Элементы.КонтактноеЛицо.СписокВыбора.Добавить(Объект.КонтактноеЛицо);
- КонецЕсли;
- КонтактноеЛицоПриИзменении(Элемент);
- КонецПроцедуры
- &НаКлиенте
- Процедура КонтактноеЛицоОчистка(Элемент, СтандартнаяОбработка)
- КонтактноеЛицоПриИзменении(Элемент);
- КонецПроцедуры
- #КонецОбласти
- #Область ОбработчикиСобытийЭлементовТаблицФормы
- &НаКлиенте
- Процедура КомментарииЗаявкиКомментарийОткрытие(Элемент, СтандартнаяОбработка)
- СтандартнаяОбработка = Ложь;
- Комментарий = "";
- ТекущиеДанные = Элементы.КомментарииЗаявки.ТекущиеДанные;
- Если НЕ ТекущиеДанные = Неопределено Тогда
- Подсказка = "Введите текст комментария";
- Комментарий = ТекущиеДанные.Комментарий;
- Если НЕ ВвестиСтроку(Комментарий, Подсказка, 0, Истина) Тогда
- Возврат;
- КонецЕсли;
- ТекущиеДанные.Комментарий = Комментарий;
- ТекущиеДанные.ДатаДобавления = ТекущаяДата();
- ТекущиеДанные.Отправлять = Истина;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура КомментарииЗаявкиКомментарийПриИзменении(Элемент)
- ТекущиеДанные = Элементы.КомментарииЗаявки.ТекущиеДанные;
- Если НЕ ТекущиеДанные = Неопределено Тогда
- Комментарий = ТекущиеДанные.Комментарий;
- ТекущиеДанные.ДатаДобавления = ТекущаяДата();
- ТекущиеДанные.Отправлять = Истина;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПрикрепленныеФайлыПередУдалением(Элемент, Отказ)
- Отказ = Истина;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПрикрепленныеФайлыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
- Отказ = Истина;
- КонецПроцедуры
- &НаКлиенте
- Процедура КомментарииЗаявкиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
- Отказ = Истина;
- КонецПроцедуры
- &НаКлиенте
- Процедура АнкетыПередУдалением(Элемент, Отказ)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Если ЗначениеЗаполнено(ТекущиеДанные.ApplicationID) Тогда
- Отказ = Истина;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура АнкетыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
- //ПроверитьКлиентовНаСервере(Отказ);
- //
- //Если Отказ Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкеты заводятся по разным клиентам.");
- //КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура АнкетыПриИзменении(Элемент)
- // Вставить содержимое обработчика.
- КонецПроцедуры
- #КонецОбласти
- #Область ОбработчикиКомандФормы
- &НаКлиенте
- Процедура ОтправитьЗаявкуOnLine(Команда)
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ВыполнитьОтправку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Если ТолькоОтправкаПисем Тогда
- ОтправитьПоПочте();
- Иначе
- ОтправитьИпотечнуюЗаявку();
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбновитьФайлы(Команда)
- ОбновитьТаблицуФайлов();
- КонецПроцедуры
- &НаКлиенте
- Процедура кнДобавитьФайл(Команда)
- Если Объект.Ссылка.Пустая() Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ДобавитьФайлы_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- ДобавитьФайлы_Асинхр(Истина, Неопределено);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура кнОткрытьКарточкуФайла(Команда)
- ТекДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если НЕ ТекДанные = Неопределено Тогда
- ОткрытьЗначение(Элементы.ПрикрепленныеФайлы.ТекущиеДанные.Файл);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура кнУдалитьФайл(Команда)
- ТекДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если НЕ ТекДанные = Неопределено Тогда
- Если ЗначениеЗаполнено(ТекДанные.ID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нельзя удалять отправленный файл.");
- Возврат;
- КонецЕсли;
- Попытка
- УдалитьФайлНаСервере(ТекДанные.Файл);
- Объект.ПрикрепленныеФайлы.Удалить(ТекДанные);
- ЭтаФорма.Модифицированность = Истина;
- Исключение
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось удалить файл: " + ОписаниеОшибки());
- КонецПопытки;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура кнПросмотрФайла(Команда)
- ТекДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если НЕ ТекДанные = Неопределено Тогда
- ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайла(Элементы.ПрикрепленныеФайлы.ТекущиеДанные.Файл, ЭтаФорма.УникальныйИдентификатор);
- РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура Авторизация(Команда)
- Ошибки = "";
- Авторизация = ЗаявкиНаКредитRestAPI.ВыполнитьАвторизацию(Объект.ПараметрыПодключения, TGT, ST, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("X_Auth_Token = " + Token);
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("X_Auth_User = " + X_Auth_User);
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при авторизации: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура Разлогиниться(Команда)
- Ошибки = "";
- Авторизация = ЗаявкиНаКредитRestAPI.Разлогиниться(Объект.ПараметрыПодключения, Объект.ТестоваяЗаявка, Ошибки);
- Если НЕ Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при авторизации: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура СоздатьЧерновик(Команда)
- Ошибки = "";
- ID_Заявки = ЗаявкиНаКредитRestAPI.ОтправитьЗаявку(Объект.ПараметрыПодключения, Объект.Ссылка, ПочтовыйАдресОтправителя, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Объект.ID_Заявки = ID_Заявки;
- Объект.ДатаПодачиЗаявки = ТекущаяДата();
- Модифицированность = Истина;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ДобавитьДокуметнты(Команда)
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ СтрокаФайл.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Ошибки = "";
- Данные = ЗаявкиНаКредитRestAPI.ДобавитьФайлКЗаявке(Объект.ПараметрыПодключения, Объект.ID_Заявки, СтрокаФайл.Файл, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если ТипЗнч(Данные) = Тип("Структура") Тогда
- ЗаполнитьЗначенияСвойств(СтрокаФайл, Данные);
- Если НЕ ЗначениеЗаполнено(СтрокаФайл.create_date) Тогда
- СтрокаФайл.create_date = ТекущаяДата();
- КонецЕсли;
- СтрокаФайл.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке вложения: " + Ошибки);
- КонецЕсли;
- КонецЦикла;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена");
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ДобавитьКомментарии(Команда)
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Для каждого СтрокаКомментарий Из Объект.КомментарииЗаявки Цикл
- Если НЕ СтрокаКомментарий.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Ошибки = "";
- ID_Комментария = ЗаявкиНаКредитRestAPI.ДобавитьКомментарийКЗаявке(Объект.ПараметрыПодключения, Объект.ID_Заявки, СтрокаКомментарий.Комментарий, ПочтовыйАдресОтправителя, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- СтрокаКомментарий.ID = ID_Комментария;
- СтрокаКомментарий.ДатаОтправки = ТекущаяДата();
- СтрокаКомментарий.Отправлять = Ложь;
- Модифицированность = Истина;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка отправке комментария: " + Ошибки);
- КонецЕсли;
- КонецЦикла;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена");
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ИзменитьСтатус(Команда)
- Ошибки = "";
- ИдентификаторЗаявкиНаКредит = ЗаявкиНаКредитRestAPI.ИзменитьСтатусЗаявки(Объект.ПараметрыПодключения, Объект.СтатусЗаявки, Объект.ID_Заявки, Объект.КомментарийСтатуса, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если Объект.ID_Заявки = ИдентификаторЗаявкиНаКредит И ЗначениеЗаполнено(ИдентификаторЗаявкиНаКредит) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Статус обновлен на " + Объект.СтатусЗаявки);
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка обновления статуса заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ИзменитьЗаявку(Команда)
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ИзменитьЗаявку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- ИзменитьЗаявку_Асинхр(Истина, Неопределено);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьДанныеОЗаявке(Команда)
- Оповещение = Новый ОписаниеОповещения("ВопросВыводитьХодОбновления", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ПолучитьДанныеЗаявки_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Выводить сообщения о результатах обновления?", РежимДиалогаВопрос.ДаНет, 0);
- КонецПроцедуры
- &НаКлиенте
- Процедура ДоступныеАгенты(Команда)
- Ошибки = "";
- ДанныеОбАгентах = ЗаявкиНаКредитRestAPI.ПолучитьДоступныхАгентов(Объект.ПараметрыПодключения, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Данные об агентах: ");
- Для каждого Данные Из ДанныеОбАгентах Цикл
- Для каждого Элемент Из Данные Цикл
- Если ТипЗнч(Элемент.Значение) = Тип("Строка")
- ИЛИ ТипЗнч(Элемент.Значение) = Тип("Число")
- ИЛИ ТипЗнч(Элемент.Значение) = Тип("Булево")
- ИЛИ Элемент.Значение = Неопределено Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Элемент.Ключ + " : " + ?(ТипЗнч(Элемент.Значение) = Тип("Число"), СтрЗаменить(Элемент.Значение, Символы.НПП, ""), Элемент.Значение));
- КонецЕсли;
- КонецЦикла;
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("");
- КонецЦикла;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при получении данных об агентах: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура СкачатьФайл(Команда)
- Ошибки = "";
- ТекущиеДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено ИЛИ ТекущиеДанные.Path = "" Тогда
- Возврат;
- КонецЕсли;
- ПутьКФайлу = ТекущиеДанные.Path;
- ДанныеФайла = ЗаявкиНаКредитRestAPI.ПолучитьДанныеФайла(Объект.ПараметрыПодключения, ПутьКФайлу, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки, ЭтаФорма.УникальныйИдентификатор);
- Если Ошибки = "" Тогда
- Если ЭтоАдресВременногоХранилища(ДанныеФайла.Адрес) Тогда
- #Если ВебКлиент Тогда
- ОписаниеПередаваемогоФайла = Новый ОписаниеПередаваемогоФайла(ДанныеФайла.ИмяФайла, ДанныеФайла.Адрес); //ПолучитьИмяВременногоФайла(ДанныеФайла.Расширение)
- ПолучаемыеФайлы = Новый Массив;
- ПолучаемыеФайлы.Добавить(ОписаниеПередаваемогоФайла);
- ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
- ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
- ДиалогОткрытияФайла.Расширение = ДанныеФайла.Расширение;
- ДиалогОткрытияФайла.ПолноеИмяФайла = ДанныеФайла.ИмяФайла;
- ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;
- ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаСохраненияФайлов", ЭтаФорма);
- НачатьПолучениеФайлов(ОписаниеОповещения, ПолучаемыеФайлы, ДиалогОткрытияФайла, Истина);
- #Иначе
- ПолучитьФайл(ДанныеФайла.Адрес, ДанныеФайла.ИмяФайла, Истина);
- #КонецЕсли
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при получении файла: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьОтделенияБанков(Команда)
- Данные = ЗаявкиНаКредитRestAPI.ПолучитьОтделенияБанков();
- Для каждого Элемент Из Данные Цикл
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("ID = " + Элемент.ID + ";" + "full_address = " + Элемент.full_address + ";" + "name = " + Элемент.name);
- КонецЦикла;
- КонецПроцедуры
- &НаКлиенте
- Процедура Отказ(Команда)
- Ошибки = "";
- ИдентификаторЗаявкиНаКредит = ЗаявкиНаКредитRestAPI.ИзменитьСтатусЗаявки(Объект.ПараметрыПодключения, ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ОтказКлиента"), Объект.ID_Заявки, Объект.КомментарийСтатуса, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если Объект.ID_Заявки = ИдентификаторЗаявкиНаКредит И ЗначениеЗаполнено(ИдентификаторЗаявкиНаКредит) Тогда
- Модифицированность = Истина;
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ОтказКлиента");
- Записать();
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Статус обновлен на " + Объект.СтатусЗаявки);
- УправлениеВидимостьюДоступностью();
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка обновления статуса заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПроверитьНастройкуПользователя(Команда)
- Попытка
- ЗаявкиНаКредитRestAPI.ПолучитьПараметрыПодключения(Объект.ПараметрыПодключения, Объект.Ответственный, Истина);
- Исключение
- КонецПопытки;
- КонецПроцедуры
- &НаКлиенте
- Процедура кнДобавитьСтрокиКомментария(Команда)
- ТекущиеДанные = Объект.КомментарииЗаявки.Добавить();
- Если НЕ ТекущиеДанные = Неопределено Тогда
- Комментарий = "Добрый день! Направляю заявку на согласование.";
- ТекущиеДанные.Комментарий = Комментарий;
- ТекущиеДанные.ДатаДобавления = ТекущаяДата();
- ТекущиеДанные.Отправлять = Истина;
- КонецЕсли;
- КонецПроцедуры
- //<897513>, Басаргин (04.12.2018) {
- #Область ДомКлик
- &НаКлиенте
- Процедура СозданиеСделки(Команда)
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ВыполнитьОтправку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- СозданиеСделкиНаСервере();
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбновлениеСделки(Команда)
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ОбновлениеСделки_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- ОбновлениеСделкиНаСервере();
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтправитьСделку(Команда)
- Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Черновик не создан.");
- Возврат;
- КонецЕсли;
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ОтправитьСделку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОСинхронизации", ЭтаФорма);
- ПоказатьВопрос(Оповещение, "Перед отправкой необходима синхронизация. Обновить данные заявки?", РежимДиалогаВопрос.ДаНетОтмена, 0);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ИзменитьСтатусСделки(Команда)
- ИзменитьСтатусСделкиНаСервере();
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьДанныеСделки(Команда)
- Оповещение = Новый ОписаниеОповещения("ВопросВыводитьХодОбновления", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ПолучитьДанныеСделки_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Выводить результаты обновления?", РежимДиалогаВопрос.ДаНет, 0);
- КонецПроцедуры
- &НаКлиенте
- Процедура СозданиеАнкеты(Команда)
- Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена.");
- Возврат;
- КонецЕсли;
- СозданиеАнкетНаСервере();
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбновлениеАнкеты(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ОбновлениеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, ТекущиеДанные.Анкета, ТекущиеДанные.ТипАнкеты, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- СтрокаАнкеты = Объект.Анкеты.НайтиПоИдентификатору(ТекущиеДанные.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкеты = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(СтрокаАнкеты, СтруктураВозврата);
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета обновлена.");
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении анкеты: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура УдалениеАнкетыСозаемщика(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Если ТекущиеДанные.ТипАнкеты = ПредопределенноеЗначение("Справочник.ТипыАнкетДомКлик.Заемщик") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Невозможно удалить анкету заемщика. Выберите анкету созаемщика.");
- Возврат;
- КонецЕсли;
- Ошибки = "";
- РезультатУдаления = УправлениеИпотечнымиЗаявкамиДомКлик.УдалениеАнкетыСозаемщика(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если РезультатУдаления = 200 Тогда
- Объект.Анкеты.Удалить(ТекущиеДанные);
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета созаемщика успешно удалена.");
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при удалении анкеты созаемщика: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтправитьПереотправитьСМСКлиенту(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Если ТекущиеДанные.Статус = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхАнкетДомКлик.Одобрено") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета уже одобрена.");
- Возврат;
- КонецЕсли;
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ОтправитьПереотправитьСМСКлиенту(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ СтруктураВозврата = Неопределено Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("СМС клиенту отправлено.");
- СтрокаАнкеты = Объект.Анкеты.НайтиПоИдентификатору(ТекущиеДанные.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкеты = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(СтрокаАнкеты, СтруктураВозврата);
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке СМС клиенту: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПодписатьСогласиеКодомИзСМС(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Если ТекущиеДанные.Статус = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхАнкетДомКлик.Одобрено") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета уже одобрена.");
- Возврат;
- КонецЕсли;
- Подсказка = "Введите код подтверждения";
- Оповещение = Новый ОписаниеОповещения("ПослеВводаКодаПодтверждения", ЭтаФорма);
- ПоказатьВводСтроки(Оповещение, "", Подсказка, 0, Ложь);
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьДанныеАнкеты(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- ДанныеАнкеты = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьДанныеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ ДанныеАнкеты = Неопределено Тогда
- ОткрытьФорму("Документ.ИпотечнаяЗаявка.Форма.ФормаОтображенияРезультатаЗапроса", Новый Структура("РезультатЗапроса", ДанныеАнкеты));
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при получении данных анкеты: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьСтруктуруАнкеты(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- СтруктураАнкеты = УправлениеИпотечнымиЗаявкамиДомКлик.СоздатьСтруктуруАнкеты(Объект.ПараметрыПодключения, ТекущиеДанные.Анкета, ТекущиеДанные.ТипАнкеты);
- Если НЕ СтруктураАнкеты = Неопределено Тогда
- СтруктураАнкетыСтркой = УправлениеИпотечнымиЗаявкамиДомКлик.ПреобразоватьСтруктуруВJSON(СтруктураАнкеты);
- ОткрытьФорму("Документ.ИпотечнаяЗаявка.Форма.ФормаОтображенияРезультатаЗапроса", Новый Структура("РезультатЗапроса", СтруктураАнкетыСтркой));
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нет данных.");
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтправитьДокументы(Команда)
- ОтправитьДокументыНаСервере();
- КонецПроцедуры
- &НаКлиенте
- Процедура УдалениеДокументов(Команда)
- ТекущиеДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- КодВозврата = УдалениеДокументовНаСервере(ТекущиеДанные.ApplicationID, ТекущиеДанные.id, Ошибки); //УправлениеИпотечнымиЗаявкамиДомКлик.УдалениеДокументов(Объект.ПараметрыПодключения, ТекущиеДанные.ApplicationID, ТекущиеДанные.id, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если КодВозврата = 200 Тогда
- Попытка
- УдалитьФайлНаСервере(ТекущиеДанные.Файл);
- Объект.ПрикрепленныеФайлы.Удалить(ТекущиеДанные);
- Модифицированность = Истина;
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Документ удален.");
- Исключение
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось удалить файл: " + ОписаниеОшибки());
- КонецПопытки;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка удалении документа: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбновитьДокумент(Команда)
- ТекущиеДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- КодВозврата = ОбновитьДокументНаСервере(ТекущиеДанные.ApplicationID, ТекущиеДанные.id, ТекущиеДанные.ТипДокумента, ТекущиеДанные.ПодтипДокумента, Ошибки); //УправлениеИпотечнымиЗаявкамиДомКлик.ОбновитьДокумент(Объект.ПараметрыПодключения, ТекущиеДанные.ApplicationID, ТекущиеДанные.id, ТекущиеДанные.ТипДокумента, ТекущиеДанные.ПодтипДокумента, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если КодВозврата = 200 Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Документ обновлены.");
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении документа: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура СоздатьЧерновикСделки(Команда)
- Если Модифицированность ИЛИ Параметры.Ключ.Пустая() Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("СоздатьЧерновик_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- СоздатьЧерновикСделкиНаСервере();
- КонецЕсли;
- КонецЕсли;
- КонецПроцедуры
- #КонецОбласти
- //<897513> }
- &НаКлиенте
- Процедура ПрикрепленныеФайлы_СнятьОтметки(Команда)
- Для каждого Строка Из Объект.ПрикрепленныеФайлы Цикл
- Строка.Отправлять = Ложь;
- КонецЦикла;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПрикрепленныеФайлы_ВыделитьВсе(Команда)
- Для каждого Строка Из Объект.ПрикрепленныеФайлы Цикл
- Строка.Отправлять = Истина;
- КонецЦикла;
- КонецПроцедуры
- &НаКлиенте
- Процедура Создать_ОбновитьЗаявку(Команда)
- Если Модифицированность ИЛИ Параметры.Ключ.Пустая() Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("Создать_ОбновитьЗаявку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- Создать_ОбновитьЗаявку_Асинхр(Неопределено, Неопределено);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура НаправитьЗаявкуНаРассмотрение(Команда)
- Если Модифицированность Тогда
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОЗаписи", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ВыполнитьОтправку_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Для продолжения необходимо записать заявку. Продолжить?", РежимДиалогаВопрос.ДаНет, 0);
- Иначе
- ОтправитьИпотечнуюЗаявку();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура АктуализироватьСтатус(Команда)
- Оповещение = Новый ОписаниеОповещения("ВопросВыводитьХодОбновления", ЭтаФорма, Новый Структура("CallBack", Новый ОписаниеОповещения("ПолучитьДанныеСделки_Асинхр", ЭтаФорма)));
- ПоказатьВопрос(Оповещение, "Выводить результаты обновления?", РежимДиалогаВопрос.ДаНет, 0);
- КонецПроцедуры
- &НаКлиенте
- Процедура АктуализироватьСтатусАнкеты(Команда)
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.АктуализироватьСтатусАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- СтрокаАнкеты = Объект.Анкеты.НайтиПоИдентификатору(ТекущиеДанные.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкеты = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(СтрокаАнкеты, СтруктураВозврата);
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета обновлена.");
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении анкеты: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура УстановитьТипДокумента(Команда)
- ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ОписаниеОповещенияОЗакрытии", ЭтотОбъект);
- ОткрытьФорму("Справочник.ТипыДокументовДомКлик.ФормаВыбора", Новый Структура("РежимВыбора", Истина), ЭтаФорма, , , , ОписаниеОповещенияОЗакрытии, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
- КонецПроцедуры
- #КонецОбласти
- #Область СлужебныеПроцедурыИФункции
- &НаСервере
- Процедура УдалитьФайлНаСервере(Файл)
- ФайлОбъект = Файл.ПолучитьОбъект();
- Если НЕ ФайлОбъект = Неопределено Тогда
- ФайлОбъект.УстановитьПометкуУдаления(НЕ ФайлОбъект.ПометкаУдаления);//.Удалить();
- КонецЕсли;
- //ОбновитьТаблицуФайлов();
- КонецПроцедуры
- &НаСервере
- Процедура ОтправитьИпотечнуюЗаявку()
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если Отказ Тогда
- Возврат;
- КонецЕсли;
- //<897513>, Басаргин (27.11.2018) {
- //ОтправитьЗаявкуДомКлик();
- //УправлениеВидимостьюДоступностью();
- Если ДомКлик Тогда
- ОтправитьСделкуНаСервере();
- Возврат;
- КонецЕсли;
- //<897513> }
- Если ТолькоОтправкаПисем Тогда
- //Тест
- //Ошибки = "";
- //Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- // ID_Заявки = ЗаявкиНаКредитRestAPI.ОтправитьЗаявкуПоПочте(Объект.ПараметрыПодключения, Объект.Ссылка, ПочтовыйАдресОтправителя, Объект.ТестоваяЗаявка, Ошибки);
- // Если Ошибки = "" Тогда
- // Объект.ID_Заявки = ID_Заявки;
- // Объект.ДатаПодачиЗаявки = ТекущаяДата();
- // Модифицированность = Истина;
- // Иначе
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке заявки " + ID_Заявки + ": " + Ошибки);
- // Возврат;
- // КонецЕсли;
- //Иначе
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка уже создана");
- // ПовторнаяОтправка = Истина;
- //КонецЕсли;
- Иначе
- ПовторнаяОтправка = Ложь;
- Ошибки = "";
- Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ID_Заявки = ЗаявкиНаКредитRestAPI.ОтправитьЗаявку(Объект.ПараметрыПодключения, Объект.Ссылка, ПочтовыйАдресОтправителя, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Объект.ID_Заявки = ID_Заявки;
- Объект.ДатаПодачиЗаявки = ТекущаяДата();
- Модифицированность = Истина;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке заявки " + ID_Заявки + ": " + Ошибки);
- Возврат;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка уже создана");
- ПовторнаяОтправка = Истина;
- КонецЕсли;
- Ошибки = "";
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ СтрокаФайл.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Данные = ЗаявкиНаКредитRestAPI.ДобавитьФайлКЗаявке(Объект.ПараметрыПодключения, Объект.ID_Заявки, СтрокаФайл.Файл, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если ТипЗнч(Данные) = Тип("Структура") Тогда
- ЗаполнитьЗначенияСвойств(СтрокаФайл, Данные);
- Если НЕ ЗначениеЗаполнено(СтрокаФайл.create_date) Тогда
- СтрокаФайл.create_date = ТекущаяДата();
- КонецЕсли;
- СтрокаФайл.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке прикрепленных файлов: " + Ошибки);
- Возврат;
- КонецЕсли;
- КонецЦикла;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена");
- Возврат;
- КонецЕсли;
- Ошибки = "";
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Для каждого СтрокаКомментарий Из Объект.КомментарииЗаявки Цикл
- Если НЕ СтрокаКомментарий.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- ID_Комментария = ЗаявкиНаКредитRestAPI.ДобавитьКомментарийКЗаявке(Объект.ПараметрыПодключения, Объект.ID_Заявки, СтрокаКомментарий.Комментарий, ПочтовыйАдресОтправителя, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- СтрокаКомментарий.ID = ID_Комментария;
- СтрокаКомментарий.ДатаОтправки = ТекущаяДата();
- СтрокаКомментарий.Отправлять = Ложь;
- Модифицированность = Истина;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка отправке комментариев заявки: " + Ошибки);
- Возврат;
- КонецЕсли;
- КонецЦикла;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена");
- Возврат;
- КонецЕсли;
- Если Объект.Черновик ИЛИ ПовторнаяОтправка Тогда
- Ошибки = "";
- ИдентификаторЗаявкиНаКредит = ЗаявкиНаКредитRestAPI.ИзменитьСтатусЗаявки(Объект.ПараметрыПодключения, ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ЗаявкаНаправленаВБанк"), Объект.ID_Заявки, Объект.КомментарийСтатуса, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если ЗначениеЗаполнено(ИдентификаторЗаявкиНаКредит) И Объект.ID_Заявки = ИдентификаторЗаявкиНаКредит Тогда
- Объект.Черновик = Ложь;
- Объект.ДатаУстановкиСтатуса = ТекущаяДата();
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ЗаявкаНаправленаВБанк");
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отправка");
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.ВРаботе");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- Объект.УспешнаяОтправка = Истина;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- Объект.СтатусЗаявки = 0;
- Объект.УспешнаяОтправка = Ложь;
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка обновления статуса заявки: " + Ошибки);
- Возврат;
- КонецЕсли;
- КонецЕсли;
- Если Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка успешно отправлена.");
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбработкаСохраненияФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт
- Если ПолученныеФайлы = Неопределено Тогда
- Возврат;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура УстановитьОбновляемыеЗначения(Данные)
- Если Данные.Свойство("status") И НЕ Объект.СтатусЗаявки.Код = Данные.status Тогда
- Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.НайтиПоКоду(Данные.status);
- Если //Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ВозвратНаДоработку") ИЛИ
- НЕ ЗначениеЗаполнено(Объект.СтатусЗаявки) Тогда
- Объект.УспешнаяОтправка = Ложь;
- Иначе
- Объект.УспешнаяОтправка = Истина;
- КонецЕсли;
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Статус заявки обновлен на " + Объект.СтатусЗаявки);
- Объект.ДатаУстановкиСтатуса = ТекущаяДата();
- Если Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.Отказ
- ИЛИ Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.ОтказКлиента
- ИЛИ Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.НеКредитуем Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- Объект.ДатаРешенияБанка = ТекущаяДата();
- ИначеЕсли Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.КредитОдобрен ИЛИ Объект.СтатусЗаявки = Справочники.СтатусыИпотечныхЗаявок.КредитВыдан Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение");
- Объект.ДатаРешенияБанка = ТекущаяДата();
- ИначеЕсли ТолькоОтправкаПисем Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ОтправленаПоПочте");
- Иначе
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отправка");
- КонецЕсли;
- Если Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.КредитОдобрен")
- ИЛИ Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.КредитВыдан") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Одобрение");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка");
- ИначеЕсли Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.Отказ")
- ИЛИ Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.НеКредитуем") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказБанка");
- ИначеЕсли Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ОтказКлиента") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказКлиентаОтРассмотрения");
- Иначе
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.ПустаяСсылка");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- Объект.ДатаРешенияБанка = Неопределено;
- КонецЕсли;
- Модифицированность = Истина;
- КонецЕсли;
- Если Данные.Свойство("sum_approved") И ЗначениеЗаполнено(Данные.sum_approved) И НЕ СтрЗаменить(Объект.sum_approved, Символы.НПП, "") = СтрЗаменить(Данные.sum_approved, Символы.НПП, "") Тогда
- Попытка
- Объект.sum_approved = Число(Данные.sum_approved);
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Одобренная сумма кредита в рублях обновлена на " + Объект.sum_approved);
- Модифицированность = Истина;
- Исключение
- КонецПопытки;
- КонецЕсли;
- Если Данные.Свойство("transactID") И ЗначениеЗаполнено(Данные.transactID) И НЕ СокрЛП(Объект.transactID) = СокрЛП(Данные.transactID) Тогда
- Попытка
- Объект.transactID = Данные.transactID;
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("transactID = " + Объект.transactID);
- Модифицированность = Истина;
- Исключение
- КонецПопытки;
- КонецЕсли;
- ОтправлятьОповещение = Ложь;
- Если Данные.Свойство("status_history") И НЕ Данные.status_history = Неопределено Тогда
- КомментарийСтатуса = "";
- ЗаявкиНаКредитRestAPI.ЗаполнитьИсториюСтатусов(Данные.status_history, Объект.Ссылка, КомментарийСтатуса, ОтправлятьОповещение);
- Если НЕ Объект.КомментарийСтатуса = КомментарийСтатуса Тогда
- Объект.КомментарийСтатуса = КомментарийСтатуса;
- Модифицированность = Истина;
- ОтправлятьОповещение = Истина;
- КонецЕсли;
- КонецЕсли;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- КонецЕсли;
- Если ОтправлятьОповещение Тогда
- Попытка
- ОтправитьОповещение();
- Исключение
- КонецПопытки;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОтделениеБанкаПриИзмененииНаСервере()
- Объект.ЦИК = Объект.ОтделениеБанка.ID; //326
- КонецПроцедуры
- &НаСервере
- Процедура ПроверитьПередОтправкой(Отказ)
- Отказ = НЕ ПроверитьЗаполнение();
- Если НЕ Отказ Тогда
- Если НЕ ЗначениеЗаполнено(Объект.ПараметрыПодключения) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнены параметры подключения к сервису подачи заявок.");
- Отказ = Истина;
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.ОтделениеБанка.ID) И НЕ ТолькоОтправкаПисем Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен ID отделения.", Объект.Ссылка, "ОтделениеБанка", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.ВидОбъектаНедвижимости) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен Вид Объекта Недвижимости", Объект.Ссылка, "ВидОбъектаНедвижимости", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.ФИОКлиента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнено ФИО Клиента", Объект.Ссылка, "ФИОКлиента", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- //Если НЕ ЗначениеЗаполнено(Объект.ДатаРожденияКлиента) Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена Дата Рождения Клиента", Объект.Ссылка, "ДатаРожденияКлиента", "Объект", Отказ);
- // Возврат;
- //КонецЕсли;
- //Если НЕ ЗначениеЗаполнено(Объект.СерияНомерПаспорта) Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена Серия/Номер Паспорта", Объект.Ссылка, "СерияНомерПаспорта", "Объект", Отказ);
- // Возврат;
- //ИначеЕсли НЕ СоответствуетШаблону(Объект.СерияНомерПаспорта, "[0-9]{4}\s{1}[0-9]{6}") Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не верный формат Серия/Номер Паспорта", Объект.Ссылка, "СерияНомерПаспорта", "Объект", Отказ);
- // Возврат;
- //КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.НомерТелефонаКлиента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен Номер Телефона Клиента", Объект.Ссылка, "НомерТелефонаКлиента", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.EmailКлиента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен Email Клиента", Объект.Ссылка, "EmailКлиента", "Объект", Отказ);
- Возврат;
- ИначеЕсли НЕ СоответствуетШаблону(Объект.EmailКлиента, ".+@.+\..+") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не верный формат Email Клиента", Объект.Ссылка, "EmailКлиента", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.ПредполагаемаяСтоимостьОН) И НЕ ТолькоОтправкаПисем Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена Предполагаемая Стоимость ОН", Объект.Ссылка, "ПредполагаемаяСтоимостьОН", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.СуммаКредитаВРублях) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнена Сумма Кредита", Объект.Ссылка, "СуммаКредитаВРублях", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ Объект.ПрикрепленныеФайлы.Количество() Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нет прикрепленных файлов к заявке", Объект.Ссылка, "ПрикрепленныеФайлы", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- //Если НЕ Объект.КомментарииЗаявки.Количество() И НЕ ТолькоОтправкаПисем Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нет комментариев к заявке", Объект.Ссылка, "КомментарииЗаявки", "Объект", Отказ);
- // Возврат;
- //КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.Проект) И ТолькоОтправкаПисем Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен проект", Объект.Ссылка, "Проект", "Объект", Отказ);
- Возврат;
- КонецЕсли;
- //<874899>, Басаргин (09.10.2018)
- Если ДомКлик Тогда
- //Если НЕ ЗначениеЗаполнено(Объект.agentPhone) Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен телефон агента", Объект.Ссылка, "agentPhone", "agentPhone", Отказ);
- // Возврат;
- //КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.ИпотечныйАгент) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен ипотечный агент", Объект.Ссылка, "ИпотечныйАгент", "ИпотечныйАгент", Отказ);
- Возврат;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Объект.СрокКредита) И ДомКлик Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не заполнен срок кредита", Объект.Ссылка, "СрокКредита", "СрокКредита", Отказ);
- Возврат;
- КонецЕсли;
- МассивАнкет = Новый Массив;
- Для каждого Строка Из Объект.Анкеты Цикл
- МассивАнкет.Добавить(Новый Структура("Анкета, Клиент", Строка.Анкета, Строка.Анкета.КонтактноеЛицо));
- КонецЦикла;
- ТекущийКлиент = Неопределено;
- Для каждого Элемент Из МассивАнкет Цикл
- Если ТекущийКлиент = Элемент.Клиент Тогда
- Продолжить;
- КонецЕсли;
- ТекущийКлиент = Элемент.Клиент;
- ТекущаяАнкета = Неопределено;
- Для каждого Строка Из МассивАнкет Цикл
- Если НЕ Строка.Клиент = ТекущийКлиент Тогда
- Продолжить;
- КонецЕсли;
- Если ТекущаяАнкета = Неопределено Тогда
- ТекущаяАнкета = Строка.Анкета;
- Продолжить;
- КонецЕсли;
- Если НЕ Строка.Анкета = ТекущаяАнкета Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нельзя добавлять разные анкенты по одному клиенту", , , , Отказ);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- КонецЦикла;
- //_КонтактноеЛицо = Неопределено;
- //Для каждого Строка Из Объект.Анкеты Цикл
- // Если _КонтактноеЛицо = Неопределено Тогда
- // _КонтактноеЛицо = Строка.Анкета.КонтактноеЛицо;
- // Продолжить;
- // КонецЕсли;
- // Если НЕ _КонтактноеЛицо = Строка.Анкета.КонтактноеЛицо Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нельзя добавлять анкенты по разным клиентам", , , , Отказ);
- // КонецЕсли;
- //КонецЦикла;
- КонецЕсли;
- //<897513> }
- КонецЕсли;
- КонецПроцедуры
- Функция СоответствуетШаблону(Знач Строка, Шаблон)
- RegExp = Новый COMОбъект("VBScript.RegExp");// создаем объект для работы с регулярными выражениями
- RegExp.MultiLine = Истина; // истина — текст многострочный, ложь — одна строка
- RegExp.Global = Истина; // истина — поиск по всей строке, ложь — до первого совпадения
- RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске
- RegExp.Pattern = Шаблон;//"<[^>]*>";
- Matches = RegExp.Execute(Строка);
- Возврат Matches.Count();
- КонецФункции
- &НаСервере
- Процедура УправлениеВидимостьюДоступностью()
- АдминистрированиеЗаявок = УправлениеДоступом.ЕстьРоль("РаботаСИпотечнымиЗаявками_Администратор", , Пользователи.ТекущийПользователь()) ИЛИ УправлениеДоступом.ЕстьРоль("ПолныеПрава", , Пользователи.ТекущийПользователь());
- Элементы.СтатусЗаявки.ТолькоПросмотр = НЕ АдминистрированиеЗаявок;
- Элементы.ДатаУстановкиСтатуса.ТолькоПросмотр = НЕ АдминистрированиеЗаявок;
- //++ Юкаев Роман 20180125 (
- Проверка = ВРег(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РекомендуемыйБанк, "Наименование")) = "СБЕРБАНК";
- Если Проверка Тогда
- Видимость = ЗначениеЗаполнено(Объект.ПараметрыПодключения);
- Иначе
- Видимость = Не Проверка;
- КонецЕсли;
- //-- Юкаев Роман 20180125 )
- Элементы.Дополнительная.Видимость = Видимость;
- Элементы.ЗаявкаНаКредит.Видимость = Видимость;
- //++ Юкаев Роман 20180125 (
- //Элементы.ГруппаСтатус.Видимость = Видимость;
- Элементы.ГруппаСтатус.Видимость = Проверка;
- //-- Юкаев Роман 20180125 )
- Элементы.ФормаГруппаТестироваине.Видимость = Видимость И АдминистрированиеЗаявок;
- //ТолькоОтправкаПисем = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ПараметрыПодключения, "ТолькоОтправкаПисем");
- //<897513>, Басаргин (27.11.2018) {
- СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ПараметрыПодключения, "ТолькоОтправкаПисем, Наименование");
- ТолькоОтправкаПисем = СтруктураРеквизитов.ТолькоОтправкаПисем;
- ДомКлик = СтрНайти(ВРег(СтруктураРеквизитов.Наименование), "ДОМКЛИК");
- Парлайн = СтрНайти(ВРег(СтруктураРеквизитов.Наименование), "ПАРЛАЙН");
- Элементы.ЗаявкаПарлайн.Видимость = Парлайн;
- //<897513> }
- Элементы.Проект.Видимость = ТолькоОтправкаПисем;
- Элементы.ГруппаРешение.Доступность = НЕ Проверка;
- Если ЗначениеЗаполнено(Объект.ПараметрыПодключения) Тогда
- ВидимостьКоманд = НЕ ТолькоОтправкаПисем;
- Иначе
- ВидимостьКоманд = Ложь;
- КонецЕсли;
- Элементы.ФормаОтказ.Видимость = ВидимостьКоманд;
- Элементы.ФормаОбновитьЗаявку.Видимость = ВидимостьКоманд;
- Элементы.ФормаДобавитьДокуметнты.Видимость = ВидимостьКоманд;
- Элементы.ФормаДобавитьКомментарии.Видимость = ВидимостьКоманд;
- Элементы.ФормаПолучиьДанныеОЗаявке.Видимость = ВидимостьКоманд;
- //-- Юкаев Роман 20180125 )
- Элементы.ФормаГруппаТестироваине.Видимость = НЕ ТолькоОтправкаПисем И Видимость И АдминистрированиеЗаявок;
- Элементы.Черновик.Видимость = НЕ ТолькоОтправкаПисем;
- Элементы.ТестоваяЗаявка.Видимость = НЕ ТолькоОтправкаПисем;
- //Элементы.transactID.Видимость = НЕ ТолькоОтправкаПисем;
- Элементы.ОбодреннаяСуммаКредитаВРублях.Видимость = НЕ ТолькоОтправкаПисем;
- //Элементы.ЗамещающийАгент.Видимость = НЕ ТолькоОтправкаПисем;
- Элементы.ID_Заявки.Видимость = НЕ ТолькоОтправкаПисем;
- //Элементы.ПрикрепленныеФайлыСкачатьФайл.Видимость = НЕ ТолькоОтправкаПисем;
- Элементы.ГруппаОсновное.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок;
- Элементы.ГруппаСтатус.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок;
- //Элементы.Дополнительная.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок;
- Элементы.ГруппаДанныеПоКлиентуДляОтправки.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок;
- Элементы.ГруппаСопутствующиеДанные.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок И НЕ ТолькоОтправкаПисем;
- Элементы.ПрикрепленныеФайлы.КоманднаяПанель.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок И НЕ ТолькоОтправкаПисем;
- Элементы.ПрикрепленныеФайлыкнДобавитьФайл.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- Элементы.ПрикрепленныеФайлыкнОткрытьКарточкуФайла.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- Элементы.ПрикрепленныеФайлыкнУдалитьФайл.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- //Элементы.ПрикрепленныеФайлыкнПросмотрФайла.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- Элементы.ПрикрепленныеФайлыОбновитьФайлы.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- Элементы.КомментарииЗаявки.КоманднаяПанель.ТолькоПросмотр = Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок И НЕ ТолькоОтправкаПисем;
- Элементы.КомментарииЗаявкикнДобавитьСтрокиКомментария.Доступность = НЕ Объект.УспешнаяОтправка ИЛИ АдминистрированиеЗаявок ИЛИ ТолькоОтправкаПисем;
- Если Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отправка")
- ИЛИ Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ОтправленаПоПочте") Тогда
- Элементы.КартинкаСостояние.Картинка = БиблиотекаКартинок.Телефония_Ожидание;
- ИначеЕсли Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ") Тогда
- Элементы.КартинкаСостояние.Картинка = БиблиотекаКартинок.Телефония_АктивнаяЛиния;
- ИначеЕсли Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение") Тогда
- Элементы.КартинкаСостояние.Картинка = БиблиотекаКартинок.Телефония_СвободнаяЛиния;
- КонецЕсли;
- ТолькоПросмотрДляСопустствующих = (Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ") ИЛИ
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение"));
- Элементы.ГруппаКомментарии.ТолькоПросмотр = ТолькоПросмотрДляСопустствующих;
- Элементы.ГруппаПрикрепленныеФайлы.ТолькоПросмотр = ТолькоПросмотрДляСопустствующих;
- Элементы.ПрикрепленныеФайлы.КоманднаяПанель.ТолькоПросмотр = ТолькоПросмотрДляСопустствующих;
- Элементы.ПрикрепленныеФайлыкнДобавитьФайл.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- Элементы.ПрикрепленныеФайлыкнОткрытьКарточкуФайла.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- Элементы.ПрикрепленныеФайлыкнУдалитьФайл.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- //Элементы.ПрикрепленныеФайлыкнПросмотрФайла.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- Элементы.ПрикрепленныеФайлыОбновитьФайлы.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- Элементы.ГруппаКомментарии.ТолькоПросмотр = ТолькоПросмотрДляСопустствующих;
- Элементы.КомментарииЗаявкикнДобавитьСтрокиКомментария.Доступность = НЕ ТолькоПросмотрДляСопустствующих;
- //Элементы.ФормаОтправитьЗаявкуOnLine.Доступность = НЕ ТолькоПросмотрДляСопустствующих И ТолькоОтправкаПисем;
- //++ Юкаев Роман 20180404 (//
- //EXTCODE Шумилин Сергей 26.03.2018 {{ ---> Для заявок, созданных при переносе исторической информации
- //Элементы.СубсидированнаяСтавкаВТБ.Видимость = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РекомендуемыйБанк, "СубсидированнаяСтавкаВТБ");
- //EXTCODE Шумилин Сергей 26.03.2018 <--- }}
- Элементы.СубсидированнаяСтавкаВТБ.Видимость = Объект.РекомендуемыйБанк.СубсидированнаяСтавкаВТБ;
- //-- Юкаев Роман 20180404 )
- //<897513>, Басаргин (04.12.2018) {
- Элементы.ГруппаАнкеты.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыТипДокумента.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыПодТипДокумента.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыАнкета.Видимость = ДомКлик;
- Элементы.ГруппаКомментарии.ТолькоПросмотр = ДомКлик;
- ////Элементы.КомментарийСтатуса.Видимость = ДомКлик;
- Элементы.КомментарииЗаявки.КоманднаяПанель.Видимость = НЕ ДомКлик;
- Элементы.КомментарииЗаявкиДобавить.Видимость = НЕ ДомКлик;
- Элементы.КомментарииЗаявкикнДобавитьСтрокиКомментария.Видимость = НЕ ДомКлик;
- ////Элементы.КомментарииЗаявкиНомерСтроки.Видимость = НЕ ДомКлик;
- Элементы.КомментарииЗаявкиОтправлять.Видимость = НЕ ДомКлик;
- Элементы.КомментарииЗаявкиID.Видимость = НЕ ДомКлик;
- Элементы.КомментарииЗаявкиДатаОтправки.Видимость = НЕ ДомКлик;
- Элементы.ПрикрепленныеФайлыОтправитьДокументы.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыУдалениеДокументов.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыОбновитьДокумент.Видимость = ДомКлик;
- Элементы.ПрикрепленныеФайлыУстановитьТипДокумента.Видимость = ДомКлик;
- Элементы.АнкетыПодменюАнкетДомКлик.Видимость = ДомКлик;
- Элементы.СделкаДомКлик.Видимость = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ЗаявкаДомКлик.Видимость = ДомКлик;
- //Элементы.ГруппаДанныеКлиента.Видимость = НЕ ДомКлик;
- Элементы.ИпотечныйАгент.Видимость = ДомКлик;
- //Элементы.agentPhone.Видимость = ДомКлик;
- Элементы.EmailКлиента.ТолькоПросмотр = ДомКлик;
- Элементы.СерияНомерПаспорта.Видимость = НЕ ДомКлик;
- Элементы.ДатаРожденияКлиента.Видимость = НЕ ДомКлик;
- //Элементы.ЗаявкаНаКредит.Видимость = НЕ Домклик;
- //Элементы.transactID.Видимость = НЕ Домклик;
- Элементы.ФормаОтправитьЗаявкуOnLine.Видимость = НЕ ДомКлик;
- Элементы.ФормаОтказ.Видимость = НЕ ДомКлик;
- Элементы.ФормаОбновитьЗаявку.Видимость = НЕ ДомКлик;
- Элементы.ФормаДобавитьДокуметнты.Видимость = НЕ ДомКлик;
- Элементы.ФормаДобавитьКомментарии.Видимость = НЕ ДомКлик;
- Элементы.ФормаПолучиьДанныеОЗаявке.Видимость = НЕ ДомКлик;
- Элементы.Переплата.Видимость = ДомКлик;
- Элементы.ЕжемесячныйПлатеж.Видимость = ДомКлик;
- Элементы.НеобходимыйДоход.Видимость = ДомКлик;
- Элементы.ПроцентнаяСтавка.Видимость = ДомКлик;
- Элементы.КомментарииЗаявкиСтатусКомментария.Видимость = ДомКлик;
- //
- Элементы.ФормаОбновлениеАнкеты.Видимость = ДомКлик И АдминистрированиеЗаявок;
- Элементы.АнкетыПолучитьДанныеАнкеты.Видимость = ДомКлик И АдминистрированиеЗаявок;
- //Элементы.ПрикрепленныеФайлыОбновитьДокумент.Видимость = ДомКлик И АдминистрированиеЗаявок;
- //Элементы.ПрикрепленныеФайлыкнУдалитьФайл.Видимость = НЕ ДомКлик ИЛИ АдминистрированиеЗаявок;
- Элементы.АнкетыСозданиеАнкеты.Видимость = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыОтправитьДокументы.Видимость = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыКонтекстноеМенюГруппаДомКлик.Видимость = ДомКлик;
- Элементы.АнкетыApplicationID.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.АнкетыСтатус.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.АнкетыДатаПоследнегоИзменения.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.АнкетыДатаПодтверждения.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыID.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыДатаОтправки.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыPath.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыname.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ПрикрепленныеФайлыСтатусДокумента.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.ID_Заявки.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Элементы.Ответственный.Доступность = ДомКлик И АдминистрированиеЗаявок;
- Если ДомКлик И ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Элементы.ОтделениеБанка.Доступность = АдминистрированиеЗаявок;
- Элементы.РекомендуемыйБанк.Доступность = АдминистрированиеЗаявок;
- Элементы.ВидКредита.Доступность = АдминистрированиеЗаявок;
- КонецЕсли;
- Элементы.ГруппаСопутствующиеДанные.ТолькоПросмотр = Ложь;
- Если ДомКлик Тогда
- ДоступностьПоСтатусу = Ложь;
- Если НЕ ЗначениеЗаполнено(Объект.СтатусЗаявки)
- ИЛИ Объект.СтатусЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьСтатусЗаявкиПоID(8060)
- ИЛИ Объект.СтатусЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьСтатусЗаявкиПоID(8090) Тогда
- ДоступностьПоСтатусу = Истина;
- КонецЕсли;
- //Элементы.Дополнительная.Доступность = ДоступностьПоСтатусу;
- Элементы.Анкеты.Доступность = ДоступностьПоСтатусу ИЛИ АдминистрированиеЗаявок;
- Элементы.ГруппаПрикрепленныеФайлы.Доступность = ДоступностьПоСтатусу ИЛИ АдминистрированиеЗаявок;
- Элементы.ГруппаДанныеПоКлиентуДляОтправки.ТолькоПросмотр = Ложь;//Объект.УспешнаяОтправка И НЕ АдминистрированиеЗаявок;
- Элементы.ОбодреннаяСуммаКредитаВРублях.Видимость = Истина;
- Элементы.ОбодреннаяСуммаКредитаВРублях.Доступность = АдминистрированиеЗаявок;
- //Элементы.ПроцентнаяСтавка.Доступность = АдминистрированиеЗаявок;
- КонецЕсли;
- //<897513> }
- //<940395>, Басаргин (27.02.2019) {
- Если НЕ ДомКлик Тогда
- Элементы.ГруппаДанныеПоКлиентуДляОтправки.ТолькоПросмотр = Ложь;
- Элементы.ПроцентнаяСтавка.Видимость = Истина;
- Элементы.ПроцентнаяСтавка.Доступность = Истина;
- Элементы.ПроцентнаяСтавка.ТолькоПросмотр = Ложь;
- Элементы.ОбодреннаяСуммаКредитаВРублях.Видимость = Истина;
- Элементы.ОбодреннаяСуммаКредитаВРублях.Доступность = Истина;
- Элементы.ОбодреннаяСуммаКредитаВРублях.ТолькоПросмотр = Ложь;
- Если ТолькоОтправкаПисем Тогда
- Элементы.ПрикрепленныеФайлыID.Видимость = Ложь;
- КонецЕсли;
- Элементы.ПрикрепленныеФайлыApplicationID.Видимость = ДомКлик;
- КонецЕсли;
- //<940395> }
- КонецПроцедуры
- &НаСервере
- Процедура ОбновитьТаблицуФайлов(Анкета = Неопределено, ApplicationID = 0, ID_ТипДокумента = 0)
- КолВоФайлов = Объект.ПрикрепленныеФайлы.Количество();
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | Файлы.Ссылка КАК Ссылка,
- | Файлы.ДатаСоздания КАК ДатаСоздания,
- | Файлы.ИндексКартинки КАК ИндексКартинки
- |ИЗ
- | Справочник.ИпотечнаяЗаявкаПрисоединенныеФайлы КАК Файлы
- |ГДЕ
- | Файлы.ВладелецФайла = &ВладелецФайла
- | И Файлы.ВладелецФайла ССЫЛКА Документ.ИпотечнаяЗаявка
- | И НЕ Файлы.ПометкаУдаления
- |
- |ОБЪЕДИНИТЬ
- |
- |ВЫБРАТЬ
- | Файлы.Файл,
- | Файлы.Файл.ДатаСоздания,
- | Файлы.Файл.ИндексКартинки
- |ИЗ
- | Документ.ИпотечнаяЗаявка.ПрикрепленныеФайлы КАК Файлы
- |ГДЕ
- | Файлы.Ссылка = &ВладелецФайла
- | И Файлы.Файл ССЫЛКА Справочник.РасчетИпотекиПрисоединенныеФайлы
- | И НЕ Файлы.Файл.ПометкаУдаления";
- Запрос.УстановитьПараметр("ВладелецФайла", Объект.Ссылка);
- РезультатЗапроса = Запрос.Выполнить();
- Если НЕ РезультатЗапроса.Пустой() Тогда
- ТекущиеФайлы = Новый Массив;
- Выборка = РезультатЗапроса.Выбрать();
- Если КолВоФайлов < Выборка.Количество() Тогда
- Пока Выборка.Следующий() Цикл
- НайденныеСтроки = Объект.ПрикрепленныеФайлы.НайтиСтроки(Новый Структура("Файл", Выборка.Ссылка));
- Если НЕ НайденныеСтроки.Количество() Тогда
- НоваяСтрока = Объект.ПрикрепленныеФайлы.Добавить();
- НоваяСтрока.Файл = Выборка.Ссылка;
- НоваяСтрока.Отправлять = Истина;
- НоваяСтрока.path = ЗаявкиНаКредитRestAPI.ПолучитьПутьКФайлу(НоваяСтрока.Файл);
- НоваяСтрока.ИндексКартинки = Выборка.ИндексКартинки;
- //<897513>, Басаргин (27.11.2018) {
- Если ЗначениеЗаполнено(Анкета) Тогда
- НоваяСтрока.Анкета = Анкета;
- НоваяСтрока.ApplicationID = ApplicationID;
- НоваяСтрока.ТипДокумента = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьТипДокументаПоID(ID_ТипДокумента);
- КонецЕсли;
- //<897513> }
- КонецЕсли;
- КонецЦикла;
- Иначе
- Пока Выборка.Следующий() Цикл
- НайденныеСтроки = Объект.ПрикрепленныеФайлы.НайтиСтроки(Новый Структура("Файл", Выборка.Ссылка));
- Для каждого СтрокаФайл Из НайденныеСтроки Цикл
- ТекущиеФайлы.Добавить(СтрокаФайл);
- КонецЦикла;
- КонецЦикла;
- КонецЕсли;
- Если ТекущиеФайлы.Количество() Тогда
- Объект.ПрикрепленныеФайлы.Очистить();
- Для каждого СтрокаФайл Из ТекущиеФайлы Цикл
- НоваяСтрока = Объект.ПрикрепленныеФайлы.Добавить();
- ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаФайл);
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
- Если НЕ КолВоФайлов = Объект.ПрикрепленныеФайлы.Количество() Тогда
- Модифицированность = Истина;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ЗаполнитьИпотечныеБанки()
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ИпотечныеБанки.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.Банки КАК ИпотечныеБанки
- |ГДЕ
- | НЕ ИпотечныеБанки.ПараметрыПодключения = ЗНАЧЕНИЕ(Справочник.ПараметрыПодключенияAPIИпотечныхБанков.ПустаяСсылка)";
- РезультатЗапроса = Запрос.Выполнить();
- Если НЕ РезультатЗапроса.Пустой() Тогда
- ДоступныеБанки.ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"));
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура РекомендуемыйБанкПриИзмененииНаСервере()
- Объект.ПараметрыПодключения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РекомендуемыйБанк, "ПараметрыПодключения");
- УправлениеВидимостьюДоступностью();
- Если Объект.Черновик И ТолькоОтправкаПисем Тогда
- Объект.Черновик = Ложь;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОтправитьОповещение()
- УправлениеИпотечнымиЗаявкамиДомКлик.ОтправитьОповещениеОбИзмененииСтатуса(УправлениеИпотечнымиЗаявкамиДомКлик.СобратьСтруктуруПисьмаДляМенеджера(РеквизитФормыВЗначение("Объект")));
- КонецПроцедуры
- &НаКлиенте
- Процедура ПослеЗакрытияВопросаОЗаписи(Результат, ДополнительныеПараметры) Экспорт
- Если Результат = КодВозвратаДиалога.Нет Тогда
- Возврат;
- КонецЕсли;
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- Если ДополнительныеПараметры.Свойство("CallBack") И ТипЗнч(ДополнительныеПараметры.CallBack) = Тип("ОписаниеОповещения") Тогда
- ВыполнитьОбработкуОповещения(ДополнительныеПараметры.CallBack);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПослеЗакрытияВопросаМенеджеру(Результат, ДополнительныеПараметры) Экспорт
- Если Результат = КодВозвратаДиалога.Нет Тогда
- Возврат;
- КонецЕсли;
- Если Модифицированность Тогда
- Записать();
- КонецЕсли;
- ОтправитьОповещение();
- КонецПроцедуры
- &НаКлиенте
- Процедура ВыполнитьОтправку_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Если ТолькоОтправкаПисем Тогда
- ОтправитьПоПочте();
- Иначе
- ОтправитьИпотечнуюЗаявку();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтправитьПоПочте()
- //Попытка
- // Outlook = Новый COMОбъект("Outlook.Application");
- //Исключение
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось создать объект Outlook.Application");
- // Возврат;
- //КонецПопытки;
- //
- //КонтекстПисьма = ПолучитьКонтекстПисьма();
- //
- //Если КонтекстПисьма = Неопределено Тогда
- // ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Контекст письма не определен");
- // Возврат;
- //КонецЕсли;
- //
- //Accounts = Outlook.Session.Accounts;
- //ИспользуемыеАккаунты = Новый СписокЗначений;
- //Для каждого Account Из Accounts Цикл
- // ИспользуемыеАккаунты.Добавить(Account.DisplayName);
- // //ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Account = " + Account.DisplayName + " / " + Account.AccountType);
- //КонецЦикла;
- //
- //Письмо = Outlook.CreateItem(0);
- //Письмо.Importance = 2;
- //Письмо.Subject = "~~" + Объект.РекомендуемыйБанк + ". Заявка клиента " + Объект.ФИОКлиента + ", проект " + Объект.Проект;
- ////Письмо.Body = ЗаявкиНаКредитRestAPI.ПодготовитьТелоПисьмаДляОтправкиПочтовойЗаявки(Объект);
- //Письмо.HTMLBody = КонтекстПисьма.HTMLBody;
- //Для каждого ПочтаПолучателяЗаявок Из КонтекстПисьма.МассивПолучателей Цикл
- // Письмо.Recipients.Add(ПочтаПолучателяЗаявок);
- //КонецЦикла;
- ////Письмо.To = КонтекстПисьма.ПочтаПолучателяЗаявок;
- ////Письмо.Cc = КонтекстПисьма.АдресДляРассылки_common;
- ////Письмо.SentOnBehalfOfName = КонтекстПисьма.АдресЭлектроннойПочты;//КонтекстПисьма.АдресДляРассылки;
- ////Письмо.SenderEmailAddress = ?
- ////Письмо.SendUsingAccount = ?
- //
- //Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- // Если НЕ СтрокаФайл.Отправлять Тогда
- // Продолжить;
- // КонецЕсли;
- // ИмяФайла = ?(ЗначениеЗаполнено(СтрокаФайл.path), СтрокаФайл.path, ЗаявкиНаКредитRestAPI.ПолучитьПутьКФайлу(СтрокаФайл.Файл));
- // РазмерФайлаМБ = ЗначениеРеквизитаОбъектаНаСервере(СтрокаФайл.Файл, "Размер") / 1000000;
- // Если РазмерФайлаМБ > 10 Тогда
- // МассивФайлов = РазделитьФайл(ИмяФайла, 10 * 1000000); //10 * 1024 * 1024
- // Для каждого Файл Из МассивФайлов Цикл
- // Письмо.Attachments.Add(Файл);
- // КонецЦикла;
- // Иначе
- // Письмо.Attachments.Add(ИмяФайла);
- // КонецЕсли;
- //КонецЦикла;
- //
- //Письмо.Display();
- //
- //ЗаписатьФактОтправкиЗаявкиПоПочте();
- //анализ прикрепленных файлов
- ПрикрепленныеФайлы = Новый Массив;
- СуммарныйыРазмерФайлов = 0;
- ПорядковыйНомер = 0;
- Письма = Новый Массив;
- СтруктураПисьма = Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы);
- Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ СтрокаФайл.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- ИмяФайла = ?(ЗначениеЗаполнено(СтрокаФайл.path), СтрокаФайл.path, ЗаявкиНаКредитRestAPI.ПолучитьПутьКФайлу(СтрокаФайл.Файл));
- //ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьПослеПомещенияФайла", ЭтотОбъект, );
- //НачатьПомещениеФайла(ОповещениеОЗавершении, , ИмяФайла, Ложь, ЭтаФорма.УникальныйИдентификатор);
- АдресФайлаНаСервере = ПолучитьАдресФайла(ИмяФайла);
- РазмерФайлаМБ = ЗначениеРеквизитаОбъектаНаСервере(СтрокаФайл.Файл, "Размер") / 1000000;
- СуммарныйыРазмерФайлов = СуммарныйыРазмерФайлов + РазмерФайлаМБ;
- //Если СуммарныйыРазмерФайлов > 10 Тогда
- // //Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- // //ПрикрепленныеФайлы = Новый Массив;
- //
- // СуммарныйыРазмерФайлов = РазмерФайлаМБ;
- // ПорядковыйНомер = ПорядковыйНомер + 1;
- //
- // Если РазмерФайлаМБ > 10 Тогда
- // МассивФайлов = РазделитьФайл(ИмяФайла, 10 * 1000000); //10 * 1024 * 1024
- // Для каждого Файл Из МассивФайлов Цикл
- // ПрикрепленныеФайлы = Новый Массив;
- // ПрикрепленныеФайлы.Добавить(Файл);
- //
- // //
- //
- //
- //
- // Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- // ПорядковыйНомер = ПорядковыйНомер + 1;
- // КонецЦикла;
- // ПрикрепленныеФайлы = Новый Массив;
- // СуммарныйыРазмерФайлов = 0;
- // Иначе
- // ПрикрепленныеФайлы.Добавить(ИмяФайла);
- // КонецЕсли;
- //Иначе
- // ПрикрепленныеФайлы.Добавить(ИмяФайла);
- //КонецЕсли;
- КонецЦикла;
- Если ПрикрепленныеФайлы.Количество() Тогда
- Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- КонецЕсли;
- Для каждого Письмо Из Письма Цикл
- ОтправитьПисьмо(Письмо.ПрикрепленныеФайлы, Письмо.ПорядковыйНомер);
- КонецЦикла;
- //Письма = СформироватьПисьмаНаСервере();
- //Для каждого Письмо Из Письма Цикл
- // ПрикрепленныеФайлы = Новый Массив;
- // Для каждого ПрикрепленныйФайл Из Письмо.ПрикрепленныеФайлы Цикл
- // Если ЭтоАдресВременногоХранилища(ПрикрепленныйФайл.АдресВХранилище) Тогда
- // ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПрикрепленныйФайл.АдресВХранилище);
- // //ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ПрикрепленныйФайл.РасширениеФайла);
- // Каталог = КаталогВременныхФайлов();
- //
- // ИмяВременногоФайла = Каталог + ПрикрепленныйФайл.НаименованиеФайла + ПрикрепленныйФайл.РасширениеФайла;
- //
- // ДвоичныеДанные.Записать(ИмяВременногоФайла);
- // ФайлНаДиске = Новый Файл(ИмяВременногоФайла);
- // Если ФайлНаДиске.Существует() Тогда
- // ПрикрепленныеФайлы.Добавить(ИмяВременногоФайла);
- // КонецЕсли;
- // КонецЕсли;
- // КонецЦикла;
- // ОтправитьПисьмо(ПрикрепленныеФайлы, Письмо.ПорядковыйНомер);
- //КонецЦикла;
- //ЗаписатьФактОтправкиЗаявкиПоПочте();
- КонецПроцедуры
- //<976350>, Басаргин (22.05.2019) {
- &НаКлиенте
- Процедура ПередатьФайлыССервераНаКлиент(ПрикрепленныеФайлы, СуммарныйыРазмерФайлов, Письма)
- Если СуммарныйыРазмерФайлов > 10 Тогда
- //Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- //ПрикрепленныеФайлы = Новый Массив;
- СуммарныйыРазмерФайлов = РазмерФайлаМБ;
- ПорядковыйНомер = ПорядковыйНомер + 1;
- Если РазмерФайлаМБ > 10 Тогда
- МассивФайлов = РазделитьФайл(ИмяФайла, 10 * 1000000); //10 * 1024 * 1024
- Для каждого Файл Из МассивФайлов Цикл
- ПрикрепленныеФайлы = Новый Массив;
- ПрикрепленныеФайлы.Добавить(Файл);
- //
- Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- ПорядковыйНомер = ПорядковыйНомер + 1;
- КонецЦикла;
- ПрикрепленныеФайлы = Новый Массив;
- СуммарныйыРазмерФайлов = 0;
- Иначе
- ПрикрепленныеФайлы.Добавить(ИмяФайла);
- КонецЕсли;
- Иначе
- ПрикрепленныеФайлы.Добавить(ИмяФайла);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПередатьФайлССервераНаКлиент(ПутьСохраненияФайла, АдресФайлаВХранилище)
- Если НЕ ЭтоАдресВременногоХранилища(АдресФайлаВХранилище) Тогда
- Возврат;
- КонецЕсли;
- ОповещениеОЗавершении = Новый ОписаниеОповещения("ВыполнитьПослеПолученияФайлов", ЭтотОбъект);
- ПолучаемыеФайлы = Новый Массив;
- ПолучаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(ПутьСохраненияФайла, АдресФайлаВХранилище));
- НачатьПолучениеФайлов(ОповещениеОЗавершении, ПолучаемыеФайлы, , Ложь);
- КонецПроцедуры
- &НаКлиенте
- Процедура ВыполнитьПослеПолученияФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт
- Для Каждого Файл Из ПолученныеФайлы Цикл
- //Сообщить("Получен " + Файл.Имя + " из " + Файл.Хранение);
- КонецЦикла;
- КонецПроцедуры
- &НаСервере
- Функция ПолучитьАдресФайла(ПутьНаСервере)
- Файл = Новый Файл(ПутьНаСервере);
- Если НЕ Файл.Существует() Тогда
- Возврат "";
- КонецЕсли;
- Двоичное = Новый ДвоичныеДанные(ПутьНаСервере);
- Адрес = ПоместитьВоВременноеХранилище(Двоичное, УникальныйИдентификатор);
- Возврат Адрес;
- КонецФункции
- &НаСервере
- Функция СформироватьПисьмаНаСервере()
- УстановитьПривилегированныйРежим(Истина);
- ПрикрепленныеФайлы = Новый Массив;
- СуммарныйыРазмерФайлов = 0;
- ПорядковыйНомер = 0;
- Письма = Новый Массив;
- Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ СтрокаФайл.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- ИмяФайла = ?(ЗначениеЗаполнено(СтрокаФайл.path), СтрокаФайл.path, ЗаявкиНаКредитRestAPI.ПолучитьПутьКФайлу(СтрокаФайл.Файл));
- ПередаваемыйФайл = Новый Файл(ИмяФайла);
- РасширениеФайла = ПередаваемыйФайл.Расширение;
- НаименованиеФайла = ПередаваемыйФайл.ИмяБезРасширения;
- РазмерФайлаМБ = ЗначениеРеквизитаОбъектаНаСервере(СтрокаФайл.Файл, "Размер") / 1000000;
- СуммарныйыРазмерФайлов = СуммарныйыРазмерФайлов + РазмерФайлаМБ;
- Если СуммарныйыРазмерФайлов > 10 Тогда
- ПрикрепленныеФайлы = Новый Массив;
- СуммарныйыРазмерФайлов = РазмерФайлаМБ;
- ПорядковыйНомер = ПорядковыйНомер + 1;
- Если РазмерФайлаМБ > 10 Тогда
- МассивФайлов = РазделитьФайл(ИмяФайла, 10 * 1000000); //10 * 1024 * 1024
- Для каждого Файл Из МассивФайлов Цикл
- ФайлНаДиске = Новый Файл(Файл);
- Если НЕ ФайлНаДиске.Существует() Тогда
- Продолжить;
- КонецЕсли;
- ПрикрепленныеФайлы = Новый Массив;
- ПрикрепленныеФайлы.Добавить(Новый Структура("АдресВХранилище, НаименованиеФайла, РасширениеФайла", ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Файл), УникальныйИдентификатор), НаименованиеФайла, РасширениеФайла + ФайлНаДиске.Расширение));
- Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- ПорядковыйНомер = ПорядковыйНомер + 1;
- КонецЦикла;
- Иначе
- ПрикрепленныеФайлы.Добавить(Новый Структура("АдресВХранилище, НаименованиеФайла, РасширениеФайла", ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла), УникальныйИдентификатор), НаименованиеФайла, РасширениеФайла));
- КонецЕсли;
- Иначе
- ПрикрепленныеФайлы.Добавить(Новый Структура("АдресВХранилище, НаименованиеФайла, РасширениеФайла", ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла), УникальныйИдентификатор), НаименованиеФайла, РасширениеФайла)); //ИмяФайла
- КонецЕсли;
- КонецЦикла;
- Если ПрикрепленныеФайлы.Количество() Тогда
- Письма.Добавить(Новый Структура("ПорядковыйНомер, ПрикрепленныеФайлы", ПорядковыйНомер, ПрикрепленныеФайлы));
- КонецЕсли;
- Возврат Письма;
- КонецФункции
- //&НаКлиенте
- //Процедура ПередачаФайлаСКлиентаНаСервер()
- //
- //КонецПроцедуры
- //&НаКлиенте
- //Процедура ВыполнитьПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
- //
- // Если Результат Тогда
- //
- // // сохраним полученный адрес в реквизит формы
- // АдресФайлаВХранилище = Адрес;
- //
- // Сообщить(
- // "Наконец-то! Файл " +
- // ВыбранноеИмяФайла + " передан на сервер и сохранён во " +
- // "временном хранилище по адресу " + Адрес);
- //
- // Иначе
- //
- // Сообщить("Не удалось передать файл на сервер.");
- //
- // КонецЕсли;
- //
- //КонецПроцедуры
- //<976350> }
- &НаКлиенте
- Процедура ОтправитьПисьмо(ПрикрепленныеФайлы, ПорядковыйНомер)
- Попытка
- Outlook = Новый COMОбъект("Outlook.Application");
- Исключение
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось создать объект Outlook.Application");
- Возврат;
- КонецПопытки;
- КонтекстПисьма = ПолучитьКонтекстПисьма();
- Если КонтекстПисьма = Неопределено Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Контекст письма не определен");
- Возврат;
- КонецЕсли;
- Accounts = Outlook.Session.Accounts;
- ИспользуемыеАккаунты = Новый СписокЗначений;
- Для каждого Account Из Accounts Цикл
- ИспользуемыеАккаунты.Добавить(Account.DisplayName);
- //ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Account = " + Account.DisplayName + " / " + Account.AccountType);
- КонецЦикла;
- Письмо = Outlook.CreateItem(0);
- Письмо.Importance = 2;
- Письмо.Subject = "~~" + Объект.РекомендуемыйБанк + ". Заявка клиента " + Объект.ФИОКлиента + ", проект " + Объект.Проект + ?(НЕ ЗначениеЗаполнено(ПорядковыйНомер), "", "[" + ПорядковыйНомер + "]");
- //Письмо.Body = ЗаявкиНаКредитRestAPI.ПодготовитьТелоПисьмаДляОтправкиПочтовойЗаявки(Объект);
- Письмо.HTMLBody = КонтекстПисьма.HTMLBody;
- Для каждого ПочтаПолучателяЗаявок Из КонтекстПисьма.МассивПолучателей Цикл
- Письмо.Recipients.Add(ПочтаПолучателяЗаявок);
- КонецЦикла;
- //Письмо.To = КонтекстПисьма.ПочтаПолучателяЗаявок;
- //Письмо.Cc = КонтекстПисьма.АдресДляРассылки_common;
- //Письмо.SentOnBehalfOfName = КонтекстПисьма.АдресЭлектроннойПочты;//КонтекстПисьма.АдресДляРассылки;
- //Письмо.SenderEmailAddress = ?
- //Письмо.SendUsingAccount = ?
- Для каждого Файл Из ПрикрепленныеФайлы Цикл
- Письмо.Attachments.Add(Файл);
- КонецЦикла;
- Письмо.Display();
- //ЗаписатьФактОтправкиЗаявкиПоПочте();
- КонецПроцедуры
- &НаКлиенте
- Процедура ЗаписатьФактОтправкиЗаявкиПоПочте()
- ТекущаяДата = ТекущаяДата();
- Объект.ДатаПодачиЗаявки = ТекущаяДата;
- Объект.ID_Заявки = 0;
- Объект.Черновик = Ложь;
- Объект.ДатаУстановкиСтатуса = ТекущаяДата;
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ЗаявкаНаправленаВБанк");
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ОтправленаПоПочте");
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.ВРаботе");
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- Объект.УспешнаяОтправка = Истина;
- Для каждого СтрокаФайл Из Объект.ПрикрепленныеФайлы Цикл
- Если СтрокаФайл.Отправлять Тогда
- СтрокаФайл.create_date = ТекущаяДата;
- СтрокаФайл.Отправлять = Ложь;
- КонецЕсли;
- КонецЦикла;
- Для каждого СтрокаКомментарий Из Объект.КомментарииЗаявки Цикл
- Если СтрокаКомментарий.Отправлять Тогда
- СтрокаКомментарий.ДатаОтправки = ТекущаяДата;
- СтрокаКомментарий.Отправлять = Ложь;
- КонецЕсли;
- КонецЦикла;
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаСервере
- Функция ПолучитьКонтекстПисьма()
- ПараметрыПодключения = ЗаявкиНаКредитRestAPI.ПолучитьПараметрыПодключения(Объект.ПараметрыПодключения, Объект.Ответственный);
- Если ПараметрыПодключения = Неопределено Тогда
- Возврат Неопределено;
- КонецЕсли;
- //<935836>, Басаргин (26.02.2019) {
- МассивПолучателей = Новый Массив;
- Для каждого Строка Из Объект.ПараметрыПодключения.ПочтовыеАдресаПолучателейЗаявок Цикл
- Если Строка.Проект.Пустая() Или Объект.Проект = Строка.Проект Тогда
- МассивПолучателей.Добавить(Строка.ПочтаПолучателяЗаявок);
- КонецЕсли;
- КонецЦикла;
- //Если ЗначениеЗаполнено(Объект.ОтделениеБанка) Тогда
- // Запрос = Новый Запрос;
- // Запрос.Текст =
- // "ВЫБРАТЬ РАЗРЕШЕННЫЕ
- // | ОтделенияИпотечныхБанковКонтактнаяИнформация.E_mail КАК E_mail
- // |ИЗ
- // | Справочник.ОтделенияИпотечныхБанков.КонтактнаяИнформация КАК ОтделенияИпотечныхБанковКонтактнаяИнформация
- // |ГДЕ
- // | ОтделенияИпотечныхБанковКонтактнаяИнформация.Ссылка = &Ссылка";
- // Запрос.УстановитьПараметр("Ссылка", Объект.ОтделениеБанка);
- //
- // РезультатЗапроса = Запрос.Выполнить();
- // Если НЕ РезультатЗапроса.Пустой() Тогда
- // ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
- // Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
- // Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.E_mail) Тогда
- // МассивПолучателей.Добавить(СокрЛП(ВыборкаДетальныеЗаписи.E_mail));
- // КонецЕсли;
- // КонецЦикла;
- // КонецЕсли;
- //КонецЕсли;
- //
- //Если НЕ МассивПолучателей.Количество() Тогда
- // Для каждого Строка Из Объект.ПараметрыПодключения.ПочтовыеАдресаПолучателейЗаявок Цикл
- // Если Строка.Проект.Пустая() Или Объект.Проект = Строка.Проект Тогда
- // МассивПолучателей.Добавить(Строка.ПочтаПолучателяЗаявок);
- // КонецЕсли;
- // КонецЦикла;
- //КонецЕсли;
- ////Для каждого ДанныеОЗаемщике Из Объект.РасчетИпотеки.ДанныеОЗаемщиках Цикл
- //// КлиентОбъект = ДанныеОЗаемщике.ФИО.ПолучитьОбъект();
- //// Если КлиентОбъект = Неопределено Тогда
- //// Продолжить;
- //// КонецЕслИ;
- //// СтруктураПоиска = Новый Структура("Вид, Тип", Справочники.ВидыКонтактнойИнформации.EmailКлиента, Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
- //// НайденныеСтроки = КлиентОбъект.КонтактнаяИнформация.НайтиСтроки(Новый Структура("Вид, Тип", Справочники.ВидыКонтактнойИнформации.EmailКлиента, Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты));
- //// Если НайденныеСтроки.Количество() Тогда
- //// Для каждого НайденнаяСтрока Из НайденныеСтроки Цикл
- //// ЭП_Клиента_Массив = СтрРазделить(НайденнаяСтрока.Представление, ";", Истина);
- //// Для каждого ЭП_Клиента Из ЭП_Клиента_Массив Цикл
- //// МассивПолучателей.Добавить(СокрЛП(ЭП_Клиента));
- //// КонецЦикла;
- //// КонецЦикла;
- //// КонецЕсли;
- ////КонецЦикла;
- //<935836> }
- //ЗначениеРеквизитаОбъектаНаСервере(Объект.ПараметрыПодключения, "ПочтаПолучателяЗаявок")
- Возврат Новый Структура("АдресДляРассылки, АдресДляРассылки_common, АдресЭлектроннойПочты, МассивПолучателей, HTMLBody",
- ПараметрыПодключения.АдресДляРассылки, ПараметрыПодключения.АдресДляРассылки_common, ЗаявкиНаКредитRestAPI.АдресЭлектроннойПочты(?(ЗначениеЗаполнено(Объект.Ответственный), Объект.Ответственный, Пользователи.ТекущийПользователь())),
- МассивПолучателей, ЗаявкиНаКредитRestAPI.ПодготовитьТелоПисьмаДляОтправкиПочтовойЗаявки(Объект));
- КонецФункции
- &НаСервереБезКонтекста
- Функция ЗначениеРеквизитаОбъектаНаСервере(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь);
- Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные);
- КонецФункции
- &НаКлиенте
- Процедура ИзменитьЗаявку_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Ошибки = "";
- ID_Заявки = ЗаявкиНаКредитRestAPI.ИзменитьЗаявку(Объект.ПараметрыПодключения, Объект.Ссылка, Объект.ID_Заявки, ПочтовыйАдресОтправителя, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если Объект.ID_Заявки = ID_Заявки Тогда
- //Объект.ДатаПодачиЗаявки = ТекущаяДата();
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Данные заявки изменены");
- Модифицированность = Истина;
- Записать();
- УправлениеВидимостьюДоступностью();
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ДобавитьФайлы_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- //<897513>, Басаргин (27.11.2018) {
- Если ДомКлик Тогда
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Если НЕ Объект.Анкеты.Количество() Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Необходимо указать хотя бы одну анкету.", Объект.Ссылка, "Анкеты", "Объект");
- Возврат;
- КонецЕсли;
- СписокАнкет = Новый СписокЗначений();
- Для каждого СтрокаАнкеты Из Объект.Анкеты Цикл
- СписокАнкет.Добавить(СтрокаАнкеты.Анкета);
- КонецЦикла;
- СписокАнкет.ПоказатьВыборЭлемента(Новый ОписаниеОповещения("ПослеВыбораАнкеты", ЭтаФорма), "Выберите анкету для привязки документов к нейу");
- Иначе
- РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Ссылка, ЭтаФорма.УникальныйИдентификатор);
- ОбновитьТаблицуФайлов(ТекущиеДанные.Анкета, ТекущиеДанные.ApplicationID, 20750);
- КонецЕсли;
- Иначе
- //<897513> }
- РаботаСФайламиКлиент.ДобавитьФайлы(Объект.Ссылка, ЭтаФорма.УникальныйИдентификатор);
- ОбновитьТаблицуФайлов();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ВопросВыводитьХодОбновления(Результат, ДополнительныеПараметры) Экспорт
- Если ДополнительныеПараметры.Свойство("CallBack") И ТипЗнч(ДополнительныеПараметры.CallBack) = Тип("ОписаниеОповещения") Тогда
- ВыполнитьОбработкуОповещения(ДополнительныеПараметры.CallBack, Результат = КодВозвратаДиалога.Да);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьДанныеЗаявки_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Ошибки = "";
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Данные = ЗаявкиНаКредитRestAPI.ПолучитьДанныеОЗаявке(Объект.ПараметрыПодключения, Объект.ID_Заявки, Token, X_Auth_User, Объект.ТестоваяЗаявка, Ошибки);
- Если Ошибки = "" Тогда
- Если ТипЗнч(Данные) = Тип("Структура") Тогда
- Если Результат Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Данные заявки " + СтрЗаменить(Объект.ID_Заявки, Символы.НПП, "") + ":");
- Для каждого Элемент Из Данные Цикл
- Если ТипЗнч(Элемент.Значение) = Тип("Строка")
- ИЛИ ТипЗнч(Элемент.Значение) = Тип("Число")
- ИЛИ ТипЗнч(Элемент.Значение) = Тип("Булево")
- ИЛИ Элемент.Значение = Неопределено Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Элемент.Ключ + " : " + ?(ТипЗнч(Элемент.Значение) = Тип("Число"), СтрЗаменить(Элемент.Значение, Символы.НПП, ""), Элемент.Значение));
- ИначеЕсли ТипЗнч(Элемент.Значение) = Тип("Массив") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Элемент.Ключ + ": ");
- Для каждого ЭлементМассива Из Элемент.Значение Цикл
- Если Элемент.Ключ = "comments" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Символы.Таб + "(" + СтрЗаменить(ЭлементМассива.id, Символы.НПП, "") + "):" + ЭлементМассива.text + " : " + ЭлементМассива.first_name + " " + ЭлементМассива.last_name);
- ИначеЕсли Элемент.Ключ = "documents" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Символы.Таб + "(" + СтрЗаменить(ЭлементМассива.id, Символы.НПП, "") + "):" + ЭлементМассива.name + " : " + ЭлементМассива.url);
- ИначеЕсли Элемент.Ключ = "status_history" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Символы.Таб + "(" + СтрЗаменить(ЭлементМассива.status, Символы.НПП, "") + "):" + ЭлементМассива.comment + "[" + ЭлементМассива.date + "]");
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- УстановитьОбновляемыеЗначения(Данные);
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при получении данных заявки: " + Ошибки);
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена");
- КонецЕсли;
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаСервере
- Процедура РешениеБанкаПриИзмененииНаСервере()
- Объект.ДатаРешенияБанка = ТекущаяДата();
- Если Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Одобрение");
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.КредитОдобрен");
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение");
- ИначеЕсли Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказБанка") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.Отказ");
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- ИначеЕсли Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказКлиентаОтРассмотрения") Тогда
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.Отказ");
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ОтказКлиента");
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- Иначе
- //Объект.ПредварительноеРешение = ПредопределенноеЗначение("Справочник.ПредварительныеРешенияБанков.ПустаяСсылка");
- Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ПустаяСсылка");
- Если Объект.УспешнаяОтправка Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ОтправленаПоПочте");
- Иначе
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ПустаяСсылка");
- КонецЕсли;
- КонецЕсли;
- //Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- //++ Юкаев Роман 20180122 (
- &НаКлиенте
- Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
- СтандартнаяОбработка = Ложь;
- ДанныеВыбора = ПолучитьСписокКлиентов(Объект.КонтактноеЛицо);
- КонецПроцедуры
- &НаСервере
- Функция ПолучитьСписокКлиентов(ТекущееКонтактноеЛицо)
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | ЗаемщикиИпотечнойЗаявкиСрезПоследних.Клиент КАК Ссылка
- |ИЗ
- | РегистрСведений.ЗаемщикиИпотечнойЗаявки.СрезПоследних(&Период, Регистратор = &Документ) КАК ЗаемщикиИпотечнойЗаявкиСрезПоследних
- |ГДЕ
- | ЗаемщикиИпотечнойЗаявкиСрезПоследних.Клиент <> &ТекущееКонтактноеЛицо
- |
- |СГРУППИРОВАТЬ ПО
- | ЗаемщикиИпотечнойЗаявкиСрезПоследних.Клиент
- |
- |УПОРЯДОЧИТЬ ПО
- | ЗаемщикиИпотечнойЗаявкиСрезПоследних.Клиент";
- Запрос.УстановитьПараметр("Документ", Объект.РасчетИпотеки);
- Запрос.УстановитьПараметр("Период", ТекущаяДата());
- Запрос.УстановитьПараметр("ТекущееКонтактноеЛицо", ТекущееКонтактноеЛицо);
- Результат = Запрос.Выполнить();
- Если Результат.Пустой() Тогда
- Возврат Новый СписокЗначений;
- Иначе
- Выборка = Результат.Выбрать();
- СписокЭлементов = Новый СписокЗначений;
- Пока Выборка.Следующий() Цикл
- СписокЭлементов.Добавить(Выборка.Ссылка);
- КонецЦикла;
- Возврат СписокЭлементов;
- КонецЕсли;
- КонецФункции
- &НаКлиенте
- Процедура ОчиститьКонтактныеДанные()
- Объект.ДатаРожденияКлиента = Дата(1,1,1);
- Объект.ФИОКлиента = "";
- Объект.СерияНомерПаспорта = "";
- Объект.АдресФактическогоПроживания = "";
- КонецПроцедуры
- &НаСервереБезКонтекста
- Функция ПолучитьКонтактныеДанныеКлиента(Клиент)
- СтруктураПараметров = Новый Структура("АдресФактическогоПроживания, ФИОКлиента, СерияНомерПаспорта, ДатаРожденияКлиента, НомерТелефона, EmailКлиента");
- СтруктураПараметров.ДатаРожденияКлиента = Клиент.ДатаРождения;
- СтруктураПараметров.ФИОКлиента = Клиент.ФИО;
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | КлиентыКонтактнаяИнформация.Представление КАК Представление,
- | """" КАК Серия,
- | """" КАК Номер,
- | 1 КАК Ключ
- |ИЗ
- | Справочник.Клиенты.КонтактнаяИнформация КАК КлиентыКонтактнаяИнформация
- |ГДЕ
- | КлиентыКонтактнаяИнформация.Ссылка = &ФизЛицо
- | И КлиентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
- | И КлиентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресМестаПроживанияКлиента)
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | """",
- | ДокументыФизическихЛицСрезПоследних.Серия,
- | ДокументыФизическихЛицСрезПоследних.Номер,
- | 2
- |ИЗ
- | РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(
- | &Период,
- | ФизЛицо = &ФизЛицо
- | И ВидДокумента = Значение(Справочник.ВидыДокументовФизическихЛиц.ПаспортРФ)) КАК ДокументыФизическихЛицСрезПоследних
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | КлиентыКонтактнаяИнформация.Представление,
- | """",
- | """",
- | 3
- |ИЗ
- | Справочник.Клиенты.КонтактнаяИнформация КАК КлиентыКонтактнаяИнформация
- |ГДЕ
- | КлиентыКонтактнаяИнформация.Ссылка = &ФизЛицо
- | И КлиентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
- | И КлиентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ОсновнойТелефонКлиента)
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |ВЫБРАТЬ
- | КлиентыКонтактнаяИнформация.Представление,
- | """",
- | """",
- | 4
- |ИЗ
- | Справочник.Клиенты.КонтактнаяИнформация КАК КлиентыКонтактнаяИнформация
- |ГДЕ
- | КлиентыКонтактнаяИнформация.Ссылка = &ФизЛицо
- | И КлиентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
- | И КлиентыКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailКлиента)";
- Запрос.УстановитьПараметр("Период", ТекущаяДата());
- Запрос.УстановитьПараметр("ФизЛицо", Клиент);
- Результат = Запрос.Выполнить();
- Если Результат.Пустой() Тогда
- СтруктураПараметров.АдресФактическогоПроживания = "";
- Иначе
- Выборка = Результат.Выбрать();
- Пока Выборка.Следующий() Цикл
- Если Выборка.Ключ = 1 Тогда
- СтруктураПараметров.АдресФактическогоПроживания = Выборка.Представление;
- ИначеЕсли Выборка.Ключ = 2 Тогда
- СтруктураПараметров.СерияНомерПаспорта = СтрЗаменить(Выборка.Серия, " ", "") + " " + СтрЗаменить(Выборка.Номер, " ", "");
- ИначеЕсли Выборка.Ключ = 3 Тогда
- СтруктураПараметров.НомерТелефона = Выборка.Представление;
- ИначеЕсли Выборка.Ключ = 4 Тогда
- СтруктураПараметров.EmailКлиента = Выборка.Представление;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- Возврат СтруктураПараметров;
- КонецФункции
- //-- Юкаев Роман 20180122 )
- //<874899>, Басаргин (09.10.2018) {
- // Создает новый файл по аналогии с указанным и возвращает ссылку на него.
- // Параметры:
- // ИсходныйФайл - СправочникСсылка.Файлы - существующий файл.
- // ВладелецНовогоФайла - ЛюбаяСсылка - владелец файла.
- //
- // Возвращаемое значение:
- // СправочникСсылка.Файлы - новый файл.
- //
- Функция СкопироватьФайл(ИсходныйФайл, ВладелецНовогоФайла)
- Если ИсходныйФайл = Неопределено Или ИсходныйФайл.Пустая() Тогда
- Возврат Неопределено;
- КонецЕсли;
- СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией");
- СведенияОФайле.Комментарий = ИсходныйФайл.Описание;
- СведенияОФайле.ИмяБезРасширения = ИсходныйФайл.Наименование;
- СведенияОФайле.ХранитьВерсии = ИсходныйФайл.ХранитьВерсии;
- СведенияОФайле.ИмяСправочникаХранилищаФайлов = "РасчетИпотекиПрисоединенныеФайлы";
- НовыйФайл = РаботаСФайламиСлужебныйВызовСервера.СоздатьФайл(ВладелецНовогоФайла, СведенияОФайле);
- Если СведенияОФайле.ХранитьВерсии И Не ИсходныйФайл.ТекущаяВерсия().Пустая() Тогда
- ТекущаяВерсия = ИсходныйФайл.ТекущаяВерсия();
- Иначе
- ТекущаяВерсия = ИсходныйФайл;
- КонецЕсли;
- ХранилищеФайла = Неопределено;
- Если ИсходныйФайл.ТекущаяВерсия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
- ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ТекущаяВерсия);
- КонецЕсли;
- СведенияОФайле.Размер = ТекущаяВерсия.Размер;
- СведенияОФайле.РасширениеБезТочки = ТекущаяВерсия.Расширение;
- СведенияОФайле.АдресВременногоХранилищаФайла = ХранилищеФайла;
- СведенияОФайле.АдресВременногоХранилищаТекста = ТекущаяВерсия.ТекстХранилище;
- СведенияОФайле.СсылкаНаВерсиюИсточник = ТекущаяВерсия;
- Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
- МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
- ДоступнаЭлектроннаяПодпись = МодульЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ИсходныйФайл));
- Если ДоступнаЭлектроннаяПодпись Тогда
- МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
- Если ИсходныйФайл.ПодписанЭП Тогда
- ФайлОбъект = НовыйФайл.ПолучитьОбъект();
- ФайлОбъект.ПодписанЭП = Истина;
- ФайлОбъект.Записать();
- ЭлектронныеПодписиИсходногоФайла = МодульЭлектроннаяПодпись.УстановленныеПодписи(ИсходныйФайл);
- Для Каждого ЭП Из ЭлектронныеПодписиИсходногоФайла Цикл
- МенеджерЗаписи = РегистрыСведений["ЭлектронныеПодписи"].СоздатьМенеджерЗаписи();
- МенеджерЗаписи.ПодписанныйОбъект = НовыйФайл;
- ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ЭП);
- МенеджерЗаписи.Записать(Истина);
- КонецЦикла;
- КонецЕсли;
- Если ИсходныйФайл.Зашифрован Тогда
- ФайлОбъект = НовыйФайл.ПолучитьОбъект();
- ФайлОбъект.Зашифрован = Истина;
- ЭлектронныеПодписиИсходногоФайла = МодульЭлектроннаяПодпись.СертификатыШифрования(ИсходныйФайл);
- Для Каждого Сертификат Из ЭлектронныеПодписиИсходногоФайла Цикл
- МенеджерЗаписи = РегистрыСведений["СертификатыШифрования"].СоздатьМенеджерЗаписи();
- МенеджерЗаписи.ЗашифрованныйОбъект = НовыйФайл;
- ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Сертификат);
- МенеджерЗаписи.Записать(Истина);
- КонецЦикла;
- // Чтобы прошла запись ранее подписанного объекта.
- ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
- ФайлОбъект.Записать();
- КонецЕсли;
- КонецЕсли;
- КонецЕсли;
- РаботаСФайламиПереопределяемый.ЗаполнитьРеквизитыФайлаИзИсходногоФайла(НовыйФайл, ИсходныйФайл);
- Возврат НовыйФайл;
- КонецФункции
- //<874899> }
- //<897513>, Басаргин (04.12.2018) {
- &НаКлиенте
- Процедура СоздатьЧерновик_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- СоздатьЧерновикСделкиНаСервере();
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура СоздатьЧерновикСделкиНаСервере(Ошибки = "")
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка уже создана.");
- Возврат;
- КонецЕсли;
- //Ошибки = "";
- ID_Заявки = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеСделки(Объект.ПараметрыПодключения, Объект.Ссылка, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И НЕ ID_Заявки = 0 Тогда
- Объект.ID_Заявки = ID_Заявки;
- Объект.ДатаПодачиЗаявки = ТекущаяДата();
- Объект.СтатусЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьСтатусЗаявкиПоID(8060);
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при создании черновика: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура СозданиеСделкиНаСервере()
- Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Ошибки = "";
- ID_Заявки = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеСделки(Объект.ПараметрыПодключения, Объект.Ссылка, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И НЕ ID_Заявки = 0 Тогда
- Объект.ID_Заявки = ID_Заявки;
- Объект.ДатаПодачиЗаявки = ТекущаяДата();
- Объект.СтатусЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьСтатусЗаявкиПоID(8060);
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при создании черновика: " + Ошибки);
- Возврат;
- КонецЕсли;
- КонецЕсли;
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- Для каждого Строка Из Объект.Анкеты Цикл
- Если НЕ Строка.Отправлять ИЛИ НЕ ЗначениеЗаполнено(Строка.Анкета) Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипАнкеты) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не указан тип анкеты.");
- Продолжить;
- КонецЕсли;
- Если ЗначениеЗаполнено(Строка.ApplicationID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета уже отправлена.");
- Продолжить;
- КонецЕсли;
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, Строка.Анкета, Строка.ТипАнкеты, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ СтруктураВозврата = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(Строка, СтруктураВозврата);
- НайденныеСтроки = Объект.ПрикрепленныеФайлы.НайтиСтроки(Новый Структура("Анкета", Строка.Анкета));
- Для каждого СтрокаФайла Из НайденныеСтроки Цикл
- СтрокаФайла.ApplicationID = Строка.ApplicationID;
- КонецЦикла;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при создании анкеты: " + Ошибки);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Если ПустаяСтрока(Ошибки) Тогда
- Для каждого Строка Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ Строка.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ApplicationID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета документа не указана.");
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипДокумента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Тип документа не выбран.");
- Продолжить;
- КонецЕсли;
- Если ЗначениеЗаполнено(Строка.ID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Документ уже отправлен.");
- Продолжить;
- КонецЕсли;
- Ошибки = "";
- Результат = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеДокументов(Объект.ПараметрыПодключения, Строка.ApplicationID, Строка.Файл, Строка.ТипДокумента, Строка.ПодтипДокумента, Ошибки = "", Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ Результат = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(Строка, Результат);
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при создании документов: " + Ошибки);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЕсли;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаКлиенте
- Процедура ОбновлениеСделки_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- ОбновлениеСделкиНаСервере();
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОбновлениеСделкиНаСервере(Ошибки = "")
- ID_Статуса = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьIDСтатусаЗаявки(Объект.СтатусЗаявки);
- Если НЕ ID_Статуса = 8060 И НЕ ID_Статуса = 8090 Тогда
- Ошибки = "Обновление в текущем статусе невозможно.";
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Обновление в текущем статусе невозможно.");
- Возврат;
- КонецЕсли;
- //Ошибки = "";
- ID_Заявки = УправлениеИпотечнымиЗаявкамиДомКлик.ОбновлениеСделки(Объект.ПараметрыПодключения, Объект.Ссылка, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И ID_Заявки = Объект.ID_Заявки Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка обновлена.");
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОтправитьСделку_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОСинхронизации", ЭтаФорма);
- ПоказатьВопрос(Оповещение, "Перед отправкой необходима синхронизация. Обновить данные заявки?", РежимДиалогаВопрос.ДаНетОтмена, 0);
- КонецПроцедуры
- &НаКлиенте
- Процедура ПослеЗакрытияВопросаОСинхронизации(Результат, ДополнительныеПараметры) Экспорт
- Если Результат = КодВозвратаДиалога.Отмена Тогда
- Возврат;
- КонецЕсли;
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если НЕ Отказ Тогда
- ОтправитьСделкуНаСервере(Результат = КодВозвратаДиалога.Да);
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОбновитьДанныеЗаявкиНаСервере()
- Ошибки = "";
- ДанныеЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьДанныеСделки(Объект.ПараметрыПодключения, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ ДанныеЗаявки = Неопределено Тогда
- УстановитьОбновляемыеЗначенияСделкиНаФорме(ДанныеЗаявки);
- УправлениеВидимостьюДоступностью();
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при синхронизации данных заявки: " + Ошибки);
- Возврат;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОтправитьСделкуНаСервере(ОбновлятьПередОтправкой = Истина)
- Если ОбновлятьПередОтправкой Тогда
- ОбновитьДанныеЗаявкиНаСервере();
- КонецЕсли;
- ID_Статуса = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.СтатусЗаявки, "ID");
- Если НЕ ID_Статуса = 8060 И НЕ ID_Статуса = 8090 Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Отправка в текущем статусе невозможна.");
- Возврат;
- КонецЕсли;
- АнкетыОдобрены = Истина;
- Для каждого СтрокаАнкета Из Объект.Анкеты Цикл
- Если НЕ СтрокаАнкета.Статус = Справочники.СтатусыИпотечныхАнкетДомКлик.Одобрено Тогда
- АнкетыОдобрены = Ложь;
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Если НЕ АнкетыОдобрены Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не все анкеты одобрены.");
- Возврат;
- КонецЕсли;
- Ошибки = "";
- ID_Заявки = УправлениеИпотечнымиЗаявкамиДомКлик.ОбновлениеСделки(Объект.ПараметрыПодключения, Объект.Ссылка, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И ID_Заявки = Объект.ID_Заявки Тогда
- Статус = Справочники.СтатусыИпотечныхЗаявок.НайтиПоРеквизиту("ID", 8070);
- Ошибки = "";
- КодВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ОтправитьСделку(Объект.ПараметрыПодключения, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И КодВозврата = 200 Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка успешно отправлена.");
- Объект.СтатусЗаявки = Статус;
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- ОбновитьДанныеЗаявкиНаСервере();
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось отправить заявку: " + Ошибки);
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении заявки перед перед отправкой: " + Ошибки);
- КонецЕсли;
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- &НаКлиенте
- Процедура ПолучитьДанныеСделки_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Ошибки = "";
- ДанныеЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьДанныеСделки(Объект.ПараметрыПодключения, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ ДанныеЗаявки = Неопределено Тогда
- Если Результат Тогда
- ОткрытьФорму("Документ.ИпотечнаяЗаявка.Форма.ФормаОтображенияРезультатаЗапроса", Новый Структура("РезультатЗапроса", ДанныеЗаявки));
- КонецЕсли;
- УстановитьОбновляемыеЗначенияСделкиНаФорме(ДанныеЗаявки);
- УправлениеВидимостьюДоступностью();
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибки);
- Возврат;
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура УстановитьОбновляемыеЗначенияСделкиНаФорме(ДанныеЗаявки)
- СтруктураОбновляемыхЗначений = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьОбновляемыеЗначенияСделки(ДанныеЗаявки, Объект.Ссылка, Объект.СтатусЗаявки, ?(НЕ Объект.КомментарииЗаявки.Количество(), "Новая", Объект.КомментарийСтатуса)); //, ТолькоОтправкаПисем
- Если СтруктураОбновляемыхЗначений = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Если СтруктураОбновляемыхЗначений.Свойство("Модифицированность") И СтруктураОбновляемыхЗначений.Модифицированность Тогда
- ЗаполнитьЗначенияСвойств(Объект, СтруктураОбновляемыхЗначений);
- КонецЕсли;
- Если СтруктураОбновляемыхЗначений.Свойство("КомментарииЗаявкиТЧ") Тогда
- Объект.КомментарииЗаявки.Очистить();
- Для каждого СтрокаКомментария Из СтруктураОбновляемыхЗначений.КомментарииЗаявкиТЧ Цикл
- НоваСтрока = Объект.КомментарииЗаявки.Добавить();
- ЗаполнитьЗначенияСвойств(НоваСтрока, СтрокаКомментария);
- КонецЦикла;
- Если НЕ СтруктураОбновляемыхЗначений.Свойство("Модифицированность")
- ИЛИ (СтруктураОбновляемыхЗначений.Свойство("Модифицированность") И НЕ СтруктураОбновляемыхЗначений.Модифицированность) Тогда
- СтруктураОбновляемыхЗначений.Вставить("Модифицированность", Истина);
- КонецЕсли;
- КонецЕсли;
- Если СтруктураОбновляемыхЗначений.Свойство("АнкетыТЧ") Тогда
- Для каждого СтрокаАнкеты Из СтруктураОбновляемыхЗначений.АнкетыТЧ Цикл
- НайденныеСтроки = Объект.Анкеты.НайтиСтроки(Новый Структура("ApplicationID", СтрокаАнкеты.ApplicationID));
- Для каждого НайденнаяСтрока Из НайденныеСтроки Цикл
- Если НЕ НайденнаяСтрока.Статус = СтрокаАнкеты.Статус
- ИЛИ НЕ НайденнаяСтрока.ДатаПоследнегоИзменения = СтрокаАнкеты.ДатаПоследнегоИзменения
- ИЛИ НЕ НайденнаяСтрока.ДатаПодтверждения = СтрокаАнкеты.ДатаПодтверждения Тогда
- ЗаполнитьЗначенияСвойств(НайденнаяСтрока, СтрокаАнкеты);
- Если НЕ СтруктураОбновляемыхЗначений.Свойство("Модифицированность")
- ИЛИ (СтруктураОбновляемыхЗначений.Свойство("Модифицированность") И НЕ СтруктураОбновляемыхЗначений.Модифицированность) Тогда
- СтруктураОбновляемыхЗначений.Вставить("Модифицированность", Истина);
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
- КонецЦикла;
- КонецЕсли;
- Если СтруктураОбновляемыхЗначений.Свойство("Модифицированность") И СтруктураОбновляемыхЗначений.Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- КонецЕсли;
- //временно выключено
- //Если СтруктураОбновляемыхЗначений.Свойство("ОтправлятьОповещение") И СтруктураОбновляемыхЗначений.ОтправлятьОповещение Тогда
- // ОтправитьОповещение();
- //КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура СозданиеАнкетНаСервере(Ошибки = "")
- Для каждого Строка Из Объект.Анкеты Цикл
- Если НЕ Строка.Отправлять ИЛИ НЕ ЗначениеЗаполнено(Строка.Анкета) Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипАнкеты) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не указан тип анкеты.");
- Продолжить;
- КонецЕсли;
- //Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, Строка.Анкета, Строка.ТипАнкеты, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ СтруктураВозврата = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(Строка, СтруктураВозврата);
- НайденныеСтроки = Объект.ПрикрепленныеФайлы.НайтиСтроки(Новый Структура("Анкета", Строка.Анкета));
- Для каждого СтрокаФайла Из НайденныеСтроки Цикл
- СтрокаФайла.ApplicationID = Строка.ApplicationID;
- КонецЦикла;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибки);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПослеВводаКодаПодтверждения(КодПодтверждения, ДополнительныеПараметры) Экспорт
- Если НЕ КодПодтверждения = Неопределено Тогда
- ТекущиеДанные = Элементы.Анкеты.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ПодписатьСогласиеКодомИзСМС(Объект.ПараметрыПодключения, Объект.ID_Заявки, ТекущиеДанные.ApplicationID, КодПодтверждения, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ СтруктураВозврата = Неопределено Тогда
- СтрокаАнкеты = Объект.Анкеты.НайтиПоИдентификатору(ТекущиеДанные.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкеты = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(СтрокаАнкеты, СтруктураВозврата);
- Если ЗначениеЗаполнено(СтрокаАнкеты.ДатаПодтверждения)
- И СтрокаАнкеты.Статус = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхАнкетДомКлик.Одобрено") Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета одобрена.");
- КонецЕсли;
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при подписании согласия кодом из СМС: " + Ошибки);
- КонецЕсли;
- КонецЕсли;
- АнкетыОдобрены = Истина;
- Для каждого СтрокаАнкеты ИЗ Объект.Анкеты Цикл
- Если ЗначениеЗаполнено(СтрокаАнкеты.ДатаПодтверждения)
- И СтрокаАнкеты.Статус = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхАнкетДомКлик.Одобрено") Тогда
- АнкетыОдобрены = Ложь;
- КонецЕсли;
- КонецЦикла;
- Если АнкетыОдобрены Тогда
- //Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаОбОбновленииЗаявки", ЭтаФорма);
- //ПоказатьВопрос(Оповещение, "Одобрены все анкеты. Выполнить обновление заявки в СРМ?", РежимДиалогаВопрос.ДаНет, 0);
- //Убран вопрос пользователю
- ОбновитьДанныеЗаявкиНаСервере();
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ПослеЗакрытияВопросаОбОбновленииЗаявки(Результат, ДополнительныеПараметры) Экспорт
- Если Результат = КодВозвратаДиалога.Нет Тогда
- Возврат;
- КонецЕсли;
- ОбновитьДанныеЗаявкиНаСервере();
- КонецПроцедуры
- &НаСервере
- Процедура ОтправитьДокументыНаСервере(Ошибки = "")
- Для каждого Строка Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ Строка.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ApplicationID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета документа не указана.");
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипДокумента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Тип документа не выбран.");
- Продолжить;
- КонецЕсли;
- //Ошибки = "";
- Результат = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеДокументов(Объект.ПараметрыПодключения, Строка.ApplicationID, Строка.Файл, Строка.ТипДокумента, Строка.ПодтипДокумента, Ошибки = "", Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ Результат = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(Строка, Результат);
- Строка.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке документа: " + Ошибки);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Функция УдалениеДокументовНаСервере(ApplicationID, id, Ошибки)
- КодВозврата = 0;
- Ошибки = "";
- ДанныеЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьДанныеСделки(Объект.ПараметрыПодключения, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если НЕ Ошибки = "" Тогда
- Возврат КодВозврата;
- КонецЕсли;
- ИдентификаторыДокументов = Новый Массив;
- Для каждого Анкета Из ДанныеЗаявки.applications Цикл
- Если Анкета.ID = ApplicationID Тогда
- Для каждого Документ Из Анкета.documents Цикл
- Если Документ.id = id Тогда
- Если ИдентификаторыДокументов.Найти(Документ.id) = Неопределено Тогда
- ИдентификаторыДокументов.Добавить(Документ.id);
- КонецЕсли;
- ИначеЕсли Документ.parentId = id Тогда
- Если ИдентификаторыДокументов.Найти(Документ.id) = Неопределено Тогда
- ИдентификаторыДокументов.Добавить(Документ.id);
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- Если НЕ ИдентификаторыДокументов.Количество() Тогда
- Ошибки = Ошибки + "Идентификаторы документов не найдены.";
- Возврат 0;
- КонецЕсли;
- Для каждого ID_Документа Из ИдентификаторыДокументов Цикл
- Ошибки = "";
- КодВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.УдалениеДокументов(Объект.ПараметрыПодключения, ApplicationID, ID_Документа, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ КодВозврата = 200 Тогда
- КодВозврата = 0;
- Ошибки = Ошибки + "Не удалось удалить документ " + ID_Документа;
- Прервать;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка удаления документа: " + Ошибки);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Возврат КодВозврата;
- КонецФункции
- &НаСервере
- Функция ОбновитьДокументНаСервере(ApplicationID, id, ТипДокумента, ПодтипДокумента, Ошибки)
- КодВозврата = 0;
- Ошибки = "";
- ДанныеЗаявки = УправлениеИпотечнымиЗаявкамиДомКлик.ПолучитьДанныеСделки(Объект.ПараметрыПодключения, Объект.ID_Заявки, Ошибки, Объект.ТестоваяЗаявка);
- Если НЕ Ошибки = "" Тогда
- Возврат КодВозврата;
- КонецЕсли;
- ИдентификаторыДокументов = Новый Массив;
- Для каждого Анкета Из ДанныеЗаявки.applications Цикл
- Если Анкета.ID = ApplicationID Тогда
- Для каждого Документ Из Анкета.documents Цикл
- Если Документ.id = id Тогда
- Если ИдентификаторыДокументов.Найти(Документ.id) = Неопределено Тогда
- ИдентификаторыДокументов.Добавить(Документ.id);
- КонецЕсли;
- ИначеЕсли Документ.parentId = id Тогда
- Если ИдентификаторыДокументов.Найти(Документ.id) = Неопределено Тогда
- ИдентификаторыДокументов.Добавить(Документ.id);
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
- Если НЕ ИдентификаторыДокументов.Количество() Тогда
- Ошибки = Ошибки + "Идентификаторы документов не найдены.";
- Возврат 0;
- КонецЕсли;
- Для каждого ID_Документа Из ИдентификаторыДокументов Цикл
- Ошибки = "";
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ОбновитьДокумент(Объект.ПараметрыПодключения, ApplicationID, ID_Документа, ТипДокумента, ПодтипДокумента, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если СтруктураВозврата = Неопределено Тогда
- КодВозврата = 0;
- Ошибки = Ошибки + "Не удалось обновить документ " + ID_Документа;
- Прервать;
- Иначе
- КодВозврата = 200;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении документа: " + Ошибки);
- КонецЕсли;
- КонецЦикла;
- Возврат КодВозврата;
- КонецФункции
- &НаСервере
- Процедура ИзменитьСтатусСделкиНаСервере()
- Ошибки = "";
- КодВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.События(Объект.ПараметрыПодключения, Объект.ID_Заявки, Объект.СтатусЗаявки, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" И КодВозврата = 200 Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при изменении статуса заявки: " + Ошибки);
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ПроверитьКлиентовНаСервере(Отказ)
- _КонтактноеЛицо = Неопределено;
- Для каждого Строка Из Объект.Анкеты Цикл
- Если _КонтактноеЛицо = Неопределено Тогда
- _КонтактноеЛицо = Строка.Анкета.КонтактноеЛицо;
- Продолжить;
- КонецЕсли;
- Если НЕ _КонтактноеЛицо = Строка.Анкета.КонтактноеЛицо Тогда
- Отказ = Истина;
- КонецЕсли;
- КонецЦикла;
- КонецПроцедуры
- //<897513> }
- &НаСервере
- Процедура ОбновитьЗаявкуНаСервере()
- Если НЕ ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка не отправлена.");
- Возврат;
- КонецЕсли;
- Ошибки = "";
- ОбновлениеСделкиНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- ОбновлениеАнкетНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- ОбновитьДокументыНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- Если Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Данные заявки обновлены.");
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОбновитьДокументыНаСервере(Ошибки)
- Для каждого Строка Из Объект.ПрикрепленныеФайлы Цикл
- Если НЕ Строка.Отправлять Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ApplicationID) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Анкета документа не указана.");
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипДокумента) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Тип документа не выбран.");
- Продолжить;
- КонецЕсли;
- Если ЗначениеЗаполнено(Строка.id) Тогда
- КодВозврата = ОбновитьДокументНаСервере(Строка.ApplicationID, Строка.id, Строка.ТипДокумента, Строка.ПодтипДокумента, Ошибки); //УправлениеИпотечнымиЗаявкамиДомКлик.ОбновитьДокумент(Объект.ПараметрыПодключения, ТекущиеДанные.ApplicationID, ТекущиеДанные.id, ТекущиеДанные.ТипДокумента, ТекущиеДанные.ПодтипДокумента, Ошибки, Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если КодВозврата = 200 Тогда
- Строка.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при обновлении документа: " + Ошибки);
- Прервать;
- КонецЕсли;
- Иначе
- Результат = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеДокументов(Объект.ПараметрыПодключения, Строка.ApplicationID, Строка.Файл, Строка.ТипДокумента, Строка.ПодтипДокумента, Ошибки = "", Объект.ТестоваяЗаявка);
- Если Ошибки = "" Тогда
- Если НЕ Результат = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(Строка, Результат);
- Строка.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка при отправке документа: " + Ошибки);
- Прервать;
- КонецЕсли;
- КонецЕсли;
- КонецЦикла;
- Если НЕ ЗначениеЗаполнено(Ошибки) Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура ОбновлениеАнкетНаСервере(Ошибки = "")
- Для каждого Строка Из Объект.Анкеты Цикл
- Если НЕ Строка.Отправлять ИЛИ НЕ ЗначениеЗаполнено(Строка.Анкета) Тогда
- Продолжить;
- КонецЕсли;
- Если НЕ ЗначениеЗаполнено(Строка.ТипАнкеты) Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не указан тип анкеты.");
- Продолжить;
- КонецЕсли;
- Если ЗначениеЗаполнено(Строка.ApplicationID) Тогда
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.ОбновлениеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, Строка.ApplicationID, Строка.Анкета, Строка.ТипАнкеты, Ошибки, Объект.ТестоваяЗаявка);
- Иначе
- СтруктураВозврата = УправлениеИпотечнымиЗаявкамиДомКлик.СозданиеАнкеты(Объект.ПараметрыПодключения, Объект.ID_Заявки, Строка.Анкета, Строка.ТипАнкеты, Ошибки, Объект.ТестоваяЗаявка);
- КонецЕсли;
- //Ошибки = "";
- Если Ошибки = "" Тогда
- СтрокаАнкеты = Объект.Анкеты.НайтиПоИдентификатору(Строка.ПолучитьИдентификатор());
- Если НЕ СтрокаАнкеты = Неопределено Тогда
- ЗаполнитьЗначенияСвойств(СтрокаАнкеты, СтруктураВозврата);
- НайденныеСтроки = Объект.ПрикрепленныеФайлы.НайтиСтроки(Новый Структура("Анкета", Строка.Анкета));
- Для каждого СтрокаФайла Из НайденныеСтроки Цикл
- Если НЕ СтрокаФайла.ApplicationID = Строка.ApplicationID Тогда
- СтрокаФайла.ApplicationID = Строка.ApplicationID;
- КонецЕсли;
- КонецЦикла;
- СтрокаАнкеты.Отправлять = Ложь;
- Модифицированность = Истина;
- КонецЕсли;
- Иначе
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибки);
- Прервать;
- КонецЕсли;
- КонецЦикла;
- Если Модифицированность Тогда
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись));
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура Создать_ОбновитьЗаявку_Асинхр(Результат, ДополнительныеПараметры) Экспорт
- Отказ = Ложь;
- ПроверитьПередОтправкой(Отказ);
- Если Отказ Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось Создать/обновить заявку.");
- Возврат;
- КонецЕсли;
- Если ЗначениеЗаполнено(Объект.ID_Заявки) Тогда
- ОбновитьЗаявкуНаСервере();
- Иначе
- СоздатьЗаявкуНаСервере();
- КонецЕсли;
- КонецПроцедуры
- &НаСервере
- Процедура СоздатьЗаявкуНаСервере()
- Ошибки = "";
- СоздатьЧерновикСделкиНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- СозданиеАнкетНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- ОтправитьДокументыНаСервере(Ошибки);
- Если НЕ Ошибки = "" Тогда
- Возврат;
- КонецЕсли;
- Если Ошибки = "" Тогда
- ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Заявка создана.");
- Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
- КонецЕсли;
- КонецПроцедуры
- &НаКлиенте
- Процедура ОписаниеОповещенияОЗакрытии(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
- Если РезультатЗакрытия = Неопределено Тогда
- Возврат;
- КонецЕсли;
- ТекущиеДанные = Элементы.ПрикрепленныеФайлы.ТекущиеДанные;
- Если ТекущиеДанные = Неопределено Тогда
- Возврат;
- КонецЕсли;
- Для каждого ВыделеннаяСтрока Из Элементы.ПрикрепленныеФайлы.ВыделенныеСтроки Цикл
- СтрокаФайлы = Объект.ПрикрепленныеФайлы.НайтиПоИдентификатору(ВыделеннаяСтрока);
- Если НЕ СтрокаФайлы = Неопределено Тогда
- СтрокаФайлы.ТипДокумента = РезультатЗакрытия;
- КонецЕсли;
- КонецЦикла;
- КонецПроцедуры
- &НаСервере
- Процедура СтатусЗаявкиПриИзмененииНаСервере()
- Если Объект.СтатусЗаявки = ПредопределенноеЗначение("Справочник.СтатусыИпотечныхЗаявок.ПустаяСсылка") Тогда
- Объект.УспешнаяОтправка = Ложь;
- Иначе
- Объект.УспешнаяОтправка = Истина;
- КонецЕсли;
- Статус_ID = ЗначениеРеквизитаОбъектаНаСервере(Объект.СтатусЗаявки, "ID");
- //Если Статус_ID = 8030
- // ИЛИ Статус_ID = 8010
- // ИЛИ Статус_ID = 8020 Тогда
- // Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- // Объект.ДатаРешенияБанка = ТекущаяДата();
- // Объект.РешениеБанка = ?(Статус_ID = 8030, ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказКлиентаОтРассмотрения"), ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказБанка"));
- //ИначеЕсли Статус_ID = 8100
- // ИЛИ Статус_ID = 8070
- // ИЛИ Статус_ID = 8220
- // ИЛИ (Статус_ID = 8060 И ЗначениеЗаполнено(Объект.ID_Заявки)) Тогда
- // Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отправка");
- // Объект.ДатаРешенияБанка = Неопределено;
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- //ИначеЕсли Статус_ID = 8090 Тогда
- // //Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.ПустаяСсылка");
- // Объект.ДатаРешенияБанка = Неопределено;
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- //Иначе
- // Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение");
- // Объект.ДатаРешенияБанка = ТекущаяДата();
- // Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка");
- //КонецЕсли;
- //<951733>, Басаргин (20.03.2019) {
- СтруктураВозврат = Новый Структура();
- Если Статус_ID = 8040
- ИЛИ Статус_ID = 8010
- ИЛИ Статус_ID = 8020
- ИЛИ Статус_ID = 8030 Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отказ");
- Объект.ДатаРешенияБанка = ТекущаяДата();
- Объект.РешениеБанка = ?(Статус_ID = 8030, ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказКлиентаОтРассмотрения"), ПредопределенноеЗначение("Справочник.РешенияБанков.ОтказБанка"));
- ИначеЕсли Статус_ID = 8220
- ИЛИ Статус_ID = 8090
- ИЛИ Статус_ID = 8100
- ИЛИ Статус_ID = 8070
- ИЛИ Статус_ID = 8080
- ИЛИ (Статус_ID = 8060 И ЗначениеЗаполнено(Объект.ID_Заявки)) Тогда
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Отправка");
- Объект.ДатаРешенияБанка = Неопределено;
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ПустаяСсылка");
- Иначе
- Объект.СостояниеЗаявки = ПредопределенноеЗначение("Перечисление.СостоянияИпотечныхЗаявок.Одобрение");
- Объект.ДатаРешенияБанка = ТекущаяДата();
- Объект.РешениеБанка = ПредопределенноеЗначение("Справочник.РешенияБанков.ОдобрениеБанка");
- КонецЕсли;
- //<951733> }
- УправлениеВидимостьюДоступностью();
- КонецПроцедуры
- #КонецОбласти
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement