Created
April 4, 2017 07:50
-
-
Save JohnyDeath/fdf047ddde871ebba370a2670512264a to your computer and use it in GitHub Desktop.
ПРимер XDTO
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Функция ВыполнитьВебЗапрос() Экспорт | |
ПараметрыВебСервиса = ПолучитьПараметрыВебСервисаИзКонстант(); | |
//Инициализация WS-объектов | |
ВСОпределение = Новый WSОпределения(ПараметрыВебСервиса.ПутьПубликацииСервера, ПараметрыВебСервиса.Пользователь, ПараметрыВебСервиса.Пароль,,ПараметрыВебСервиса.Таймаут); | |
ВСПрокси = Новый WSПрокси(ВСОпределение, ПараметрыВебСервиса.URIПространстваИменСервиса, ПараметрыВебСервиса.ИмяСервиса, ПараметрыВебСервиса.ИмяТочкиПодключения,,ПараметрыВебСервиса.Таймаут); | |
Если ЗначениеЗаполнено(ПараметрыВебСервиса.Пользователь) Тогда | |
ВСПрокси.Пользователь = ПараметрыВебСервиса.Пользователь; | |
КонецЕсли; | |
Если ЗначениеЗаполнено(ПараметрыВебСервиса.Пароль) Тогда | |
ВСПрокси.Пароль = ПараметрыВебСервиса.Пароль; | |
КонецЕсли; | |
//Создание объекта ХДТО-списка и наполнение в цикле | |
ФабрикаУСО = ВСПрокси.ФабрикаXDTO; | |
//ТипХДТО_ДокЭА = ФабрикаУСО.Тип(ПараметрыВебСервиса.URIПространстваИменСервиса, "DocumentEA"); | |
ТипХДТО_СписокДокЭА = ФабрикаУСО.Тип(ПараметрыВебСервиса.URIПространстваИменСервиса, "DocumentsEAList"); | |
СписокДокЭА = ФабрикаУСО.Создать(ТипХДТО_СписокДокЭА); | |
Для Каждого СтрокаТаблицы Из ДокументыЭА Цикл | |
текДокЭА = СтрокаТаблицы.ДокументЭА; | |
Если не ЗначениеЗаполнено(текДокЭА) Тогда Продолжить; КонецЕсли; | |
хДокЭА = х_ДокументЭА(текДокЭА, ФабрикаУСО, "DocumentEA"); | |
СписокДокЭА.Document.Добавить(хДокЭА); | |
КонецЦикла; | |
Ответ = ВСПрокси.setDocsEA(СписокДокЭА); | |
Возврат ОтветВСтроку(Ответ); | |
КонецФункции | |
Функция х_ДокументЭА(Знач вхДокументЭА, Знач ФабрикаУСО, Знач ИмяТипаОбъектаХДТО) | |
хДокументЭА = НовыйОбъектХДТОпоИмениТипа(ФабрикаУСО, ИмяТипаОбъектаХДТО); | |
хДокументЭА.CodeEA = вхДокументЭА.АрхивныйНомер; | |
хДокументЭА.PackNum = вхДокументЭА.Пакет; | |
хДокументЭА.DocNumIncoming = вхДокументЭА.ВходящийНомерДокумента; | |
хДокументЭА.DocDateIncoming = вхДокументЭА.ДатаДокумента; | |
хДокументЭА.DocKindEA = х_СправочникЭА(вхДокументЭА.ВидДокумента, ФабрикаУСО, "DocKindEA"); | |
хДокументЭА.Organization = х_Организация(ФабрикаУСО); | |
хДокументЭА.Customer = х_СправочникЭА(вхДокументЭА.Контрагент, ФабрикаУСО, "Customer"); | |
хДокументЭА.Contract = х_ДоговорПоРодителю(вхДокументЭА.Родитель, ФабрикаУСО); | |
хДокументЭА.Project = х_СправочникЭА(вхДокументЭА.Проект, ФабрикаУСО, "Project"); | |
хДокументЭА.DocSum = вхДокументЭА.Сумма; | |
хДокументЭА.EditDate = вхДокументЭА.ДатаИзменения; | |
хДокументЭА.TransferDate = вхДокументЭА.ДатаИзменения; | |
хДокументЭА.Note = вхДокументЭА.Примечание; | |
хДокументЭА.OperName = Неопределено; | |
хДокументЭА.Status = Неопределено; | |
Возврат хДокументЭА; | |
КонецФункции | |
Функция х_СправочникЭА(Знач ОбъектБазы, Знач ФабрикаУСО, Знач ИмяТипаОбъектаХДТО) | |
хОбъект = НовыйОбъектХДТОпоИмениТипа(ФабрикаУСО, ИмяТипаОбъектаХДТО); | |
хОбъект.Name = ОбъектБазы.Наименование; | |
хОбъект.CodeEA = Строка(ОбъектБазы.id); | |
Если хОбъект.Свойства().Получить("Code1S") <> Неопределено Тогда | |
Код1С = ""; ИД = ""; Ссыль = ""; | |
Если ВРег(ИмяТипаОбъектаХДТО) = ВРег("Project") Тогда | |
Код1С = ?(ПустаяСтрока(ОбъектБазы.id_1c), ОбъектБазы.КодПроекта, ОбъектБазы.id_1c); | |
Иначе | |
Попытка | |
Код1С = Строка(ОбъектБазы.id_1c); | |
//ИД = Строка(ОбъектБазы.id_1c); | |
Исключение | |
Код1С = Строка(ОбъектБазы.id); | |
//Ссыль = Строка(ОбъектБазы.id); | |
//ИД ="-исключение-"+ОписаниеОшибки(); | |
КонецПопытки; | |
КонецЕсли; | |
хОбъект.Code1S = Код1С; | |
//Сообщить("Имя="+хОбъект.Name+". ИД="+ИД+". Ссыль="+Ссыль); | |
КонецЕсли; | |
Возврат хОбъект; | |
КонецФункции | |
Функция х_ДоговорПоРодителю(Знач ОбъектБазы, Знач ФабрикаУСО) | |
Если ОбъектБазы = Неопределено Тогда | |
Возврат Неопределено; | |
КонецЕсли; | |
хОбъект = НовыйОбъектХДТОпоИмениТипа(ФабрикаУСО, "Contract"); | |
хОбъект.Name = ОбъектБазы.ВходящийНомерДокумента; | |
хОбъект.Code1S = ОбъектБазы.ВходящийНомерДокумента; | |
хОбъект.CodeEA = Строка(ОбъектБазы.Ссылка); | |
Возврат хОбъект; | |
КонецФункции | |
Функция _ГруппаДоговоры() | |
Возврат ВнешниеИсточникиДанных.ЭА.Таблицы.ФормыДокументов.НайтиПоПолю("id", 15); | |
КонецФункции | |
Функция х_Организация(Знач ФабрикаУСО) | |
хВид = НовыйОбъектХДТОпоИмениТипа(ФабрикаУСО, "Organization"); | |
хВид.Name = "ЗАО"; | |
хВид.CodeEA = "000000001"; | |
хВид.Code1S = "000000001"; | |
Возврат хВид; | |
КонецФункции | |
Функция НовыйОбъектХДТОпоИмениТипа(Знач ФабрикаУСО, Знач ИмяТипаОбъектаХДТО) | |
ТипХДТО = ФабрикаУСО.Тип("urn:ex.ru:EA", ИмяТипаОбъектаХДТО); | |
Возврат ФабрикаУСО.Создать(ТипХДТО); | |
КонецФункции | |
Функция ОтветВСтроку(Знач ОтветОбъект) | |
Текст = Новый ТекстовыйДокумент; | |
Текст.ДобавитьСтроку("Выполнено: "+ОтветОбъект.Result); | |
Текст.ДобавитьСтроку("Время: "+ОтветОбъект.DateTime); | |
Текст.ДобавитьСтроку("Error: "+ОтветОбъект.Error); | |
Возврат Текст.ПолучитьТекст(); | |
КонецФункции | |
Функция ПолучитьПараметрыВебСервисаИзКонстант() | |
ПараметрыВебСервиса = Новый Структура; | |
ВсеКонстанты = Метаданные.Константы; | |
Для Каждого МетаКонст Из ВсеКонстанты Цикл | |
ИмяКонстанты = МетаКонст.Имя; | |
ЗначениеКонстанты = Константы[ИмяКонстанты].Получить(); | |
ПараметрыВебСервиса.Вставить(ИмяКонстанты, ЗначениеКонстанты); | |
КонецЦикла; | |
Возврат ПараметрыВебСервиса; | |
КонецФункции |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment