|
1C Api Intime | ☑ | ||
---|---|---|---|---|
0
Casper21
12.12.15
✎
23:07
|
http://www.intime.ua/API2.0/API_2_0.pdf
Кто-то из вас не пробовал вытянуть информацию о: Справочник населенных пунктов Справочник подразделений Например так: Процедура СписокНаселеныхПунктов() Экспорт //Создаем прокси для обращения к внешнему веб-сервису, // передаем в функцию URI пространства имен, имя сервиса, имя порта. Прокси = WSСсылки.InTime20.СоздатьWSПрокси("http://www.reality.sh/in-time/Api20", "API20", "API20Soap"); //Получаем тип параметра, который передается в метод. //Ур1 ТипCatalogList = Прокси.ФабрикаXDTO.Пакеты.Получить("http://www.reality.sh/in-time/Api20").Получить("CatalogList"); //Ур2 ТипCatalogListRequest = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("CatalogListRequest"); //Ур3 ТипAuthData = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AuthData"); прAuthData = Прокси.ФабрикаXDTO.Создать(ТипAuthData); прAuthData.ID = Константы.ИнТаймID.Получить(); прAuthData.KEY = Константы.ИнТаймKEY.Получить(); прCatalogListRequest = Прокси.ФабрикаXDTO.Создать(ТипCatalogListRequest); прCatalogListRequest.AuthData = прAuthData; прCatalogListRequest.CatalogNameEng.ADD("List of settlements"); прCatalogList = Прокси.ФабрикаXDTO.Создать(ТипCatalogList); прCatalogList.CatalogListRequest = прCatalogListRequest; ТаблицаОтвета = Новый ТаблицаЗначений; Попытка Результат = Прокси.CatalogList(прCatalogListRequest); //Результат = ""; Если Результат.InterfaceState <> "OK" Тогда Сообщить("Запрос не выполнился: "+Результат.InterfaceState); Иначе Сообщить("Запрос выполнился: "+Результат.InterfaceState); КонецЕсли; ТаблицаОтвета = Результат.ListCatalog.Catalog; Исключение Сообщить("Запрос не выполнился!"); Возврат; КонецПопытки; СозданоЗаписи=0; ОбновленоЗаписи=0; Для Каждого текСтр из ТаблицаОтвета Цикл Попытка ОбновленоЗаписи=ОбновленоЗаписи+1; Элемент = Справочники.СправочникНаселенныхПунктов.НайтиПоКоду(текСтр.Code).ПолучитьОбъект(); Элемент.Код = текСтр.Code; Элемент.Наименование = текСтр.Name; Для каждого ПодчЭлемент ИЗ текСтр.AppendField Цикл Если ПодчЭлемент.AppendFieldName = "State" Тогда State = ПодчЭлемент.AppendFieldValue; Элемент.Область=State; ИначеЕсли ПодчЭлемент.AppendFieldName = "Area" Тогда Area = ПодчЭлемент.AppendFieldValue; Элемент.Район=Area; ИначеЕсли ПодчЭлемент.AppendFieldName = "CodeWarehouseDelivery" Тогда CodeWarehouseDelivery = ПодчЭлемент.AppendFieldValue; Элемент.КодСкладаОбсулживания=Справочники.СправочникПодразделений.НайтиПоКоду(CodeWarehouseDelivery).Ссылка; ИначеЕсли ПодчЭлемент.AppendFieldName = "PresenceOfWarehouse" Тогда PresenceOfWarehouse = ПодчЭлемент.AppendFieldValue; Если PresenceOfWarehouse = "Да" тогда Элемент.НаличиеПодразделения=Истина; Иначе Элемент.НаличиеПодразделения=Ложь; КонецЕсли; КонецЕсли; КонецЦикла; Элемент.Записать(); Если PresenceOfWarehouse = "Да" тогда ЭлементСправочника = Справочники.СправочникПодразделений.НайтиПоКоду(CodeWarehouseDelivery).ПолучитьОбъект(); ЭлементСправочника.ЗаборИДоставка = Истина; ЭлементСправочника.Записать() КонецЕсли; Исключение ОбновленоЗаписи=ОбновленоЗаписи-1; КонецПопытки; Попытка НовыйCклад=Справочники.СправочникНаселенныхПунктов.СоздатьЭлемент(); НовыйCклад.Код=текСтр.Code; НовыйCклад.Наименование=текСтр.Name; Если НовыйCклад.Наименование = "" Тогда Иначе СозданоЗаписи=СозданоЗаписи+1; Для каждого ПодчЭлемент ИЗ текСтр.AppendField Цикл Если ПодчЭлемент.AppendFieldName = "State" Тогда State = ПодчЭлемент.AppendFieldValue; НовыйCклад.Область=State; ИначеЕсли ПодчЭлемент.AppendFieldName = "Area" Тогда Area = ПодчЭлемент.AppendFieldValue; НовыйCклад.Район=Area; ИначеЕсли ПодчЭлемент.AppendFieldName = "CodeWarehouseDelivery" Тогда CodeWarehouseDelivery = ПодчЭлемент.AppendFieldValue; НовыйCклад.КодСкладаОбсулживания=Справочники.СправочникПодразделений.НайтиПоКоду(CodeWarehouseDelivery).Ссылка; ИначеЕсли ПодчЭлемент.AppendFieldName = "PresenceOfWarehouse" Тогда PresenceOfWarehouse = ПодчЭлемент.AppendFieldValue; Если PresenceOfWarehouse = "Да" тогда НовыйCклад.НаличиеПодразделения=Истина; Иначе НовыйCклад.НаличиеПодразделения=Ложь; КонецЕсли; КонецЕсли; КонецЦикла; НовыйCклад.Записать(); Если PresenceOfWarehouse = "Да" тогда ЭлементСправочника = Справочники.СправочникПодразделений.НайтиПоКоду(CodeWarehouseDelivery).ПолучитьОбъект(); ЭлементСправочника.ЗаборИДоставка = Истина; ЭлементСправочника.Записать() КонецЕсли; КонецЕсли; Исключение СозданоЗаписи=СозданоЗаписи-1; КонецПопытки; КонецЦикла; Сообщить("Добавлено: "+СозданоЗаписи+" записей"); Сообщить("Обновлено: "+ОбновленоЗаписи+" записей"); КонецПроцедуры Процедура СписокПодразделений() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СправочникПодразделений.Ссылка, | СправочникПодразделений.Код |ИЗ | Справочник.СправочникПодразделений КАК СправочникПодразделений"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Элемент=Выборка.Ссылка.ПолучитьОбъект(); Элемент.УстановитьПометкуУдаления(Истина); Элемент.Записать(); КонецЦикла; //Создаем прокси для обращения к внешнему веб-сервису, // передаем в функцию URI пространства имен, имя сервиса, имя порта. Прокси = WSСсылки.InTime20.СоздатьWSПрокси("http://www.reality.sh/in-time/Api20", "API20", "API20Soap"); //Получаем тип параметра, который передается в метод. //Ур1 ТипCatalogList = Прокси.ФабрикаXDTO.Пакеты.Получить("http://www.reality.sh/in-time/Api20").Получить("CatalogList"); //Ур2 ТипCatalogListRequest = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("CatalogListRequest"); //Ур3 ТипAuthData = Прокси.ФабрикаXDTO.Пакеты.Получить("http://inr.intime.ua/in-time/integration20").Получить("AuthData"); прAuthData = Прокси.ФабрикаXDTO.Создать(ТипAuthData); прAuthData.ID = Константы.ИнТаймID.Получить(); прAuthData.KEY = Константы.ИнТаймKEY.Получить(); прCatalogListRequest = Прокси.ФабрикаXDTO.Создать(ТипCatalogListRequest); прCatalogListRequest.AuthData = прAuthData; прCatalogListRequest.CatalogNameEng.ADD("Departments"); прCatalogList = Прокси.ФабрикаXDTO.Создать(ТипCatalogList); прCatalogList.CatalogListRequest = прCatalogListRequest; ТаблицаОтвета = Новый ТаблицаЗначений; Попытка Результат = Прокси.CatalogList(прCatalogListRequest); //Результат = ""; Если Результат.InterfaceState <> "OK" Тогда Сообщить("Запрос не выполнился: "+Результат.InterfaceState); Иначе Сообщить("Запрос выполнился: "+Результат.InterfaceState); КонецЕсли; ТаблицаОтвета = Результат.ListCatalog.Catalog; Исключение Сообщить("Запрос не выполнился!"); Возврат; КонецПопытки; СозданоЗаписи=0; ОбновленоЗаписи=0; Для Каждого текСтр из ТаблицаОтвета Цикл Попытка ОбновленоЗаписи=ОбновленоЗаписи+1; Элемент = Справочники.СправочникПодразделений.НайтиПоКоду(текСтр.Code).ПолучитьОбъект(); Элемент.Код = текСтр.Code; НазваниеСкладаИНомер = текСтр.Name; Для каждого ПодчЭлемент ИЗ текСтр.AppendField Цикл Если ПодчЭлемент.AppendFieldName = "Adress" Тогда Adress = ПодчЭлемент.AppendFieldValue; Элемент.АдресВГороде=Adress; ИначеЕсли ПодчЭлемент.AppendFieldName = "City" Тогда City = ПодчЭлемент.AppendFieldValue; Элемент.ГородВУкраине=City; ИначеЕсли ПодчЭлемент.AppendFieldName = "LiterCode" Тогда LiterCode = ПодчЭлемент.AppendFieldValue; Элемент.БуквеныйКод=LiterCode; ИначеЕсли ПодчЭлемент.AppendFieldName = "WarehouseNumberInCity" Тогда WarehouseNumberInCity = ПодчЭлемент.AppendFieldValue; Элемент.НомерСкладаВГороде=WarehouseNumberInCity; ИначеЕсли ПодчЭлемент.AppendFieldName = "State" Тогда State = ПодчЭлемент.AppendFieldValue; Элемент.Область=State; ИначеЕсли ПодчЭлемент.AppendFieldName = "Parcel" Тогда Parcel = ПодчЭлемент.AppendFieldValue; Если Parcel = "Да" Тогда Элемент.Посылочка=Истина; ПосылочкаТекст=" до 30кг"; Иначе Элемент.Посылочка=Ложь; ПосылочкаТекст=""; КонецЕсли; ИначеЕсли ПодчЭлемент.AppendFieldName = "Tel" Тогда Tel = ПодчЭлемент.AppendFieldValue; Элемент.ТелефонСклада=Tel; КонецЕсли; Элемент.ПометкаУдаления=Ложь; КонецЦикла; НазваниеСкладаИНомер = НазваниеСкладаИНомер+" "+"(cклад №"+WarehouseNumberInCity+ПосылочкаТекст+")"; Элемент.Наименование=НазваниеСкладаИНомер; Элемент.Записать(); Исключение ОбновленоЗаписи=ОбновленоЗаписи-1; КонецПопытки; Попытка НовыйCклад=Справочники.СправочникПодразделений.СоздатьЭлемент(); НовыйCклад.Код=текСтр.Code; НазваниеСкладаИНомер=текСтр.Name; СозданоЗаписи=СозданоЗаписи+1; Для каждого ПодчЭлемент ИЗ текСтр.AppendField Цикл Если ПодчЭлемент.AppendFieldName = "Adress" Тогда Adress = ПодчЭлемент.AppendFieldValue; НовыйCклад.АдресВГороде=Adress; ИначеЕсли ПодчЭлемент.AppendFieldName = "LiterCode" Тогда LiterCode = ПодчЭлемент.AppendFieldValue; НовыйCклад.БуквеныйКод=LiterCode; ИначеЕсли ПодчЭлемент.AppendFieldName = "City" Тогда City = ПодчЭлемент.AppendFieldValue; НовыйCклад.ГородВУкраине=City; ИначеЕсли ПодчЭлемент.AppendFieldName = "WarehouseNumberInCity" Тогда WarehouseNumberInCity = ПодчЭлемент.AppendFieldValue; НовыйCклад.НомерСкладаВГороде=WarehouseNumberInCity; ИначеЕсли ПодчЭлемент.AppendFieldName = "State" Тогда State = ПодчЭлемент.AppendFieldValue; НовыйCклад.Область=State; ИначеЕсли ПодчЭлемент.AppendFieldName = "Parcel" Тогда Parcel = ПодчЭлемент.AppendFieldValue; Если Parcel = "Да" Тогда НовыйCклад.Посылочка=Истина; ПосылочкаТекст=" до 30кг"; Иначе НовыйCклад.Посылочка=Ложь; ПосылочкаТекст=""; КонецЕсли; ИначеЕсли ПодчЭлемент.AppendFieldName = "Tel" Тогда Tel = ПодчЭлемент.AppendFieldValue; НовыйCклад.ТелефонСклада=Tel; КонецЕсли; КонецЦикла; НазваниеСкладаИНомер = НазваниеСкладаИНомер+" "+"(cклад №"+WarehouseNumberInCity+ПосылочкаТекст+")"; НовыйCклад.Наименование=НазваниеСкладаИНомер; НовыйCклад.Записать(); Исключение СозданоЗаписи=СозданоЗаписи-1; КонецПопытки; КонецЦикла; Сообщить("Добавлено: "+СозданоЗаписи+" записей"); Сообщить("Обновлено: "+ОбновленоЗаписи+" записей"); КонецПроцедуры Я б хотел узнать структуру этих справочниках, чтобы посмотреть какие там поля и можно ли эти справочники связать по уникальному идентификатору. |
|||
1
orefkov
12.12.15
✎
23:14
|
интим не предлагать.
|
|||
2
XLife
12.12.15
✎
23:21
|
(1) лучше код для снегопата предложи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |