Функция ПроверитьСтрокуТаблицы(Знач
ДатаДокумента, Знач НомерДокумента, Знач СуммаДокумента)
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| CRM_БизнесПроцессВзысканоПоИП.Ссылка
КАК Ссылка
|ИЗ
| БизнесПроцесс.CRM_БизнесПроцесс.ВзысканоПоИП
КАК CRM_БизнесПроцессВзысканоПоИП
|ГДЕ
| CRM_БизнесПроцессВзысканоПоИП.Период
= &Период
| И CRM_БизнесПроцессВзысканоПоИП.НомерДокумента
= &НомерДокумента
| И CRM_БизнесПроцессВзысканоПоИП.Сумма
= &Сумма";
Запрос.УстановитьПараметр("НомерДокумента", НомерДокумента);
Запрос.УстановитьПараметр("Период",
НачалоДня(ДатаДокумента));
Запрос.УстановитьПараметр("Сумма",
СуммаДокумента);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаСервере
Функция ЕстьЛиЗаявкаВБазе(Знач ДатаЗаявки, Знач ВнешнийКод)
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| УКЕДС_Заявки.Ссылка
КАК Ссылка
|ИЗ
| Документ.УКЕДС_Заявки
КАК УКЕДС_Заявки
|ГДЕ
| УКЕДС_Заявки.ВнешнийКод
= &ВнешнийКод
| И УКЕДС_Заявки.Дата
= &Дата";
Запрос.УстановитьПараметр("Дата",
ДатаЗаявки);
Запрос.УстановитьПараметр("ВнешнийКод", ВнешнийКод);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Функция ПоискПомещения(Знач стрПомещение)
Запрос = Новый Запрос;
Запрос.Текст
=
"ВЫБРАТЬ
| УКЖКХ_АдресныйРеестр.Ссылка
КАК Ссылка,
| УКЖКХ_АдресныйРеестр.Владелец
КАК Владелец,
| УКЖКХ_АдресныйРеестр.НомерПомещения
КАК НомерПомещения
|ИЗ
| Справочник.УКЖКХ_АдресныйРеестр
КАК УКЖКХ_АдресныйРеестр
|ГДЕ
| УКЖКХ_АдресныйРеестр.Наименование
= &Наименование";
Запрос.УстановитьПараметр("Наименование",
стрПомещение);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий()
Тогда
Возврат Выборка.Ссылка;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Процедура
ДобавитьЗаявку(Знач
Эл)
РезПроверки
= ЕстьЛиЗаявкаВБазе(Эл.Дата,
Эл.ВнешнийКод);
//Проверяем есть ли заявка в базе
Если ЗначениеЗаполнено(РезПроверки) Тогда
Док = РезПроверки.ПолучитьОбъект();
Иначе
Док = Документы.УКЕДС_Заявки.СоздатьДокумент();
КонецЕсли;
Док.Дата
= Эл.Дата;
Док.ДатаВремяПриема
= Эл.Дата;
Док.ПлановаяДатаНачалаВыполнения
= Эл.Дата;
Док.ПлановаяДатаОкончанияВыполнения
= Эл.ПлановаяДатаОкончанияВыполнения;
Док.УКЖКХ_АдресАЗ
= ПоискПомещения(Эл.УКЖКХ_АдресАЗ);
Док.ПодъездАЗ
= Эл.ПодъездАЗ;
Док.ЭтажАЗ
= Эл.ЭтажАЗ;
Док.ДомофонАЗ
= Эл.ДомофонАЗ;
Док.Телефон
= Эл.Телефон;
Док.ТелефонДоп
= Эл.ТелефонДоп;
Док.Содержание
= Эл.Содержание;
Док.СтатусЗаявителя
= Эл.СтатусЗаявителя;
Док.Фамилия
= Эл.Фамилия;
Док.ВидЗаявки
= Эл.ВидЗаявки;
Док.ВнешнийКод
= Эл.ВнешнийКод;
Док.Записать();
КонецПроцедуры//ДобавитьЗаявку
&НаСервере
Процедура
ПрочитатьСообщениеЧерезСервис()
Выборка = Справочники.БАШНЯ_ПараметрыПодключенияКСервисуЕДСП.Выбрать();
ЭтотУзел
= ПланыОбмена.БАШНЯ_ЗаявкиИзПодольска.ЭтотУзел();
Если НЕ ЗначениеЗаполнено(ЭтотУзел.Код) Тогда
Возврат;
КонецЕсли;
Пока Выборка.Следующий()
Цикл
Если Выборка.ПометкаУдаления = Ложь Тогда
Соединение
= Новый HTTPСоединение(Выборка.АдресПубликации,
Выборка.Порт, Выборка.Логин,
Выборка.Пароль,,30,,);
Заголовки =
Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/xml");
Запрос =
Новый HTTPЗапрос("/" + Выборка.Наименование + "/hs/EDSP/planobmena/" + ЭтотУзел.Код,
Заголовки);
Результат =
Соединение.ВызватьHTTPМетод("GET",
Запрос);
Если Результат.КодСостояния = 200 Тогда
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
//Снимаем
с регистрации
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,
ЧтениеСообщения.НомерПринятого);
Пока
СериализаторXDTO.ВозможностьЧтенияXML(ЧтениеXML) Цикл
СтруктураДанных = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
ДобавитьЗаявку(СтруктураДанных);
КонецЦикла;
ЧтениеСообщения.ЗакончитьЧтение();
Иначе
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура
ЗаписатьСообщениеЧерезСервис()
Выборка = Справочники.БАШНЯ_ПараметрыПодключенияКСервисуЕДСП.Выбрать();
ЭтотУзел
= ПланыОбмена.БАШНЯ_ЗаявкиИзПодольска.ЭтотУзел();
Если НЕ ЗначениеЗаполнено(ЭтотУзел.Код) Тогда
Возврат;
КонецЕсли;
Пока Выборка.Следующий()
Цикл
Если Выборка.ПометкаУдаления = Ложь Тогда
Соединение
= Новый HTTPСоединение(Выборка.АдресПубликации,
Выборка.Порт, Выборка.Логин,
Выборка.Пароль,,30,,);
Заголовки =
Новый Соответствие;
Заголовки.Вставить("Content-type",
"application/xml; charset=utf-8");
Запрос =
Новый HTTPЗапрос("/" + Выборка.Наименование + "/hs/EDSP/planobmena/" + ЭтотУзел.Код,
Заголовки);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьОбъявлениеXML();
//Создаем
запись сообшения
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ТекУзел =
ПланыОбмена.БАШНЯ_ЗаявкиИзПодольска.НайтиПоКоду(Выборка.ПрефиксБазы);
Если НЕ ЗначениеЗаполнено(ТекУзел.Код)
Тогда
Возврат;
КонецЕсли;
ЗаписьСообщения.НачатьЗапись(ЗаписьXML,
ТекУзел);
ЗаписьСообщения.ЗакончитьЗапись();
НаВыходе = ЗаписьXML.Закрыть();
Запрос.УстановитьТелоИзСтроки(НаВыходе);
Результат =
Соединение.ВызватьHTTPМетод("POST", Запрос);
Если Результат.КодСостояния = 200 Тогда
Иначе
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура
ДляРегламентногоЗадания()
Экспорт
ПрочитатьСообщениеЧерезСервис();
ЗаписатьСообщениеЧерезСервис();
КонецПроцедуры
|