Пример использования сервиса dadata.ru для платформы 8.1 (маленькая дверь к большим возможностям внешних сервисов)

07.07.21

Интеграция - WEB-интеграция

Для 8.1 не нашел подходящего решения для работы с сервисами dadata.ru Это пример работы только с API стандартизации адресов. Работает так: посылаем адрес, введенный пользователем в виде строки, на API сервис dadata.ru В ответ получаем массив структур с вариантами валидных адресов (формат JSON) . Показываем таблицу (массив) для выбора нужного адреса пользователю. Данные из выбранной строки переносим куда нужно. Весь перечень данных (а он не маленький) в каждом варианте ответа https://dadata.ru/api/clean/address/

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример использования сервиса dadata.ru из 1С Предприятие 8.1:
.epf 7,41Kb ver:1.0
1
1 Скачать (1 SM) Купить за 1 850 руб.

Задача: стандартизировать записываемый адрес из строки введенной с клавиатуры.

Т.е. поменять строку введенную пользовтелем на список валидных адресов и предложить пользователю выбрать нужный вариант.

(для моей задачи нужно заполнить реквизиты: Регион, Населенныйпункт и УлицаНомерДома.)

Сложность заключается в отсутствии удобных механизмов работы с сервисами http в формате обмена JSON у платформы.

На помощь приходят пара COM-объектов:

ТекстЗапроса = "мск варшавское 4";

               WinHttpUTF8 = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");

               WinHttpUTF8.Option(2, "UTF-8");

              WinHttpUTF8.SetTimeouts(10000, 10000, 30000, 30000);

              Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");

               Скрипт.Language = "javascript";

               Скрипт.AddObject("WinHttp", WinHttpUTF8);

               Скрипт.Eval("WinHttp.Option(2) = ""utf-8""");

               Скрипт.Eval("WinHttp.Option(4) = 13056");

               Скрипт.Eval("WinHttp.Option(6) = true");

               Скрипт.Eval("WinHttp.Option(12) = true");

              WinHttpUTF8.Open("POST", "http://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address", 0);

               WinHttpUTF8.SetRequestHeader("Content-Type", "application/json;charset=UTF-8");

               WinHttpUTF8.SetRequestHeader("Accept", "application/json");

               ///+++ нужно зарегистрироваться в сервисе и ввести свои данные

               WinHttpUTF8.SetRequestHeader("Authorization", "Token b1b2e*********117d874b");

               WinHttpUTF8.SetRequestHeader("X-Secret", "9e13**********6be0f6042");

               ///---

              WinHttpUTF8.Send("{""query"": """+ТекстЗапроса+"""}");

               ТекстJSON = WinHttpUTF8.ResponseText();

               /// ответ разбиваем на строки

           

ОтветСтроки = СтрЗаменить(ТекстJSON,"""value"":", Символы.ПС);

Дальше уже совсем легко – находим нужное имя до «:» и далее будет соответствующее значение;      

А имён там довольно много (включая геодаты, что позволит обращаться к картам, но это другая история... )        

тз = Новый ТаблицаЗначений;

               тз.Колонки.Добавить("Адрес");

               тз.Колонки.Добавить("Регион");

               тз.Колонки.Добавить("НаселенныйПункт");

               тз.Колонки.Добавить("УлицаДом");

               кол = СтрЧислоСтрок(ОтветСтроки);

               Для д=2 По кол Цикл

                              нов = тз.Добавить();

                              текСтрока = СтрПолучитьСтроку(ОтветСтроки,д);

                              текДлина = СтрДлина(текСтрока);

                              Для Сч = 1 По текДлина Цикл

                                            Символ = Сред(текСтрока, Сч, 1);

                                            Если Символ = "u" Тогда

                                                           Поз2 = Сч-3;

                                                           Прервать;

                                            КонецЕсли;

                              КонецЦикла;

           //…………………………………………………………………

               КонецЦикла;

//здесь пользователь должен выбрать валидный адрес

стр = тз.ВыбратьСтроку();

 

 

Переносим данные из выбранной строки в нужное место.

Тестировалась на релизе 1С:Предприятие 8.1 (8.1.15.14). Код будет работать везде, где удастся создать оба COM-объекта.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17802    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19886    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14437    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1208    1    0    

3