|
Можно ли получить код ФИАС в 1С | ☑ | ||
---|---|---|---|---|
0
Документовед
06.08.21
✎
10:05
|
Допустим в 1С, например бухгалтерии забит адрес по всем правилам, можно ли оттуда получить код ФИАС?
Или как еще можно его получить именно виде кода? |
|||
1
Garykom
гуру
06.08.21
✎
10:07
|
код дома нет, только улицы
|
|||
2
Elf_80_lvl
06.08.21
✎
10:08
|
Вообще я пользую внешний сервис, там есть платные функции, но то что тебе нужно бесплатно можно делать.
https://dadata.ru/ |
|||
3
Elf_80_lvl
06.08.21
✎
10:11
|
Функция ПолучитьДанныеФИАС(Адрес) Экспорт
Результат = Новый Структура; Результат.Вставить("ФИАС", ""); Результат.Вставить("ПолныйАдрес", ""); Результат.Вставить("Уровень", ""); //Если ПустаяСтрока(Токен) Тогда // Сообщить("Заполните токен!"); // Возврат Результат; //КонецЕсли; HTTPЗапрос = Новый HTTPЗапрос(); HTTPЗапрос.АдресРесурса = "/api/v2/suggest/address"; HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/xml"); HTTPЗапрос.Заголовки.Вставить("Accept", "application/xml"); HTTPЗапрос.Заголовки.Вставить("Authorization", "Token "+"ТВОЙ ТОКЕН КОТОРЫЙ ДАЮТ ПОСЛЕ РЕГИСТРАЦИИ НА САЙТЕ"); HTTPЗапрос.УстановитьТелоИзСтроки("<req><query>" + Текст + "</query></req>"); Соединение = Новый HTTPСоединение("dadata.ru",,,,,, Новый ЗащищенноеСоединениеOpenSSL); Попытка ОтветHTTP = Соединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение Предупреждение("Соединение с Web-сервисом не установлено, свяжитесь с администратором"+ Символы.ПС + ОписаниеОшибки()); Возврат Ложь; КонецПопытки; Тело = ОтветHTTP.ПолучитьТелоКакСтроку(); Если ОтветHTTP.КодСостояния = 200 Тогда ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(Тело); ПолныйАдрес = Ложь; ФИАС = Ложь; Уровень = Ложь; Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.Имя = "unrestricted_value" Тогда ПолныйАдрес = Истина; Иначе ПолныйАдрес = Ложь; КонецЕсли; Если ЧтениеXML.Имя = "fias_id" Тогда ФИАС = Истина; Иначе ФИАС = Ложь; КонецЕсли; Если ЧтениеXML.Имя = "fias_level" Тогда Уровень = Истина; Иначе Уровень = Ложь; КонецЕсли; КонецЕсли; Если ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда Если ПолныйАдрес Тогда Результат.ПолныйАдрес = ЧтениеXML.Значение; КонецЕсли; Если ФИАС Тогда Результат.ФИАС = ЧтениеXML.Значение; КонецЕсли; Если Уровень Тогда Результат.Уровень = ЧтениеXML.Значение; КонецЕсли; КонецЕсли; КонецЦикла; ЧтениеXML.Закрыть(); стрЗначение = ""; КонецЕсли; Возврат Результат; КонецФункции |
|||
4
Документовед
06.08.21
✎
10:12
|
(3) Спасибо, попробую.
|
|||
5
Elf_80_lvl
06.08.21
✎
10:15
|
(3) В коде переменную не поменял будет ругаться, вот так правильно
HTTPЗапрос.УстановитьТелоИзСтроки("<req><query>" + Адрес + "</query></req>"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |