Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

03.12.19

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

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

Файлы

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

Наименование Скачано Купить файл
Автоматизация заполнения адреса по КЛАДР в УПП при выгрузки контрагента с портала(API dadata).:
.epf 7,80Kb
3 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

На портале после ввода адреса отрабатывает пост запрос к API (https://dadata.ru/suggestions/#address), который возвращает код КЛАДР.

 

 

По этому API есть возможность получать также код ФИАС.

 

 

По web-сервису с портала в 1с я получаю строку 7700000000022800015#дом#12#корпус#2#офис#1#117393

Которая содержит КодКЛАДР, дом/владение, корпус/строение, квартира/офис, индекс.

- далее я парсю входящую строку с кодом КЛАДР

- делаю запрос к регистру "РегистрыСведений.АдресныйКлассификатор"

- заполняю Поля в "РегистрыСведений.КонтактнаяИнформация" и записываю набор записей.

 

 

Запрос.Текст = 
	"ВЫБРАТЬ
	|	1 КАК ТипАдреса,
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Сокращение
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 1
	|	И АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	2,
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Сокращение
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 2
	|	И АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде
	|	И АдресныйКлассификатор.КодРайонаВКоде = &КодРайонаВКоде
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	3,
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Сокращение
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 3
	|	И АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде
	|	И АдресныйКлассификатор.КодРайонаВКоде = &КодРайонаВКоде
	|	И АдресныйКлассификатор.КодГородаВКоде = &КодГородаВКоде
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	4,
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Сокращение
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 4
	|	И АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде
	|	И АдресныйКлассификатор.КодРайонаВКоде = &КодРайонаВКоде
	|	И АдресныйКлассификатор.КодГородаВКоде = &КодГородаВКоде
	|	И АдресныйКлассификатор.КодНаселенногоПунктаВКоде = &КодНаселенногоПунктаВКоде
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	5,
	|	АдресныйКлассификатор.Наименование,
	|	АдресныйКлассификатор.Сокращение
	|ИЗ
	|	РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор
	|ГДЕ
	|	АдресныйКлассификатор.ТипАдресногоЭлемента = 5
	|	И АдресныйКлассификатор.КодРегионаВКоде = &КодРегионаВКоде
	|	И АдресныйКлассификатор.КодРайонаВКоде = &КодРайонаВКоде
	|	И АдресныйКлассификатор.КодГородаВКоде = &КодГородаВКоде
	|	И АдресныйКлассификатор.КодНаселенногоПунктаВКоде = &КодНаселенногоПунктаВКоде
	|	И АдресныйКлассификатор.КодУлицыВКоде = &КодУлицыВКоде
	|
	|УПОРЯДОЧИТЬ ПО
	|	ТипАдреса";
	
	МассивАдреса = СтрРазделить(СтрокаКладр1,"#");
	
	Если МассивАдреса.Количество() >= 8 Тогда
		
		Попытка
			Запрос.УстановитьПараметр("КодРегионаВКоде", Число(Лев(МассивАдреса[0],2)));
			Запрос.УстановитьПараметр("КодРайонаВКоде", Число(Сред(МассивАдреса[0],3,3)));
			Запрос.УстановитьПараметр("КодГородаВКоде", Число(Сред(МассивАдреса[0],6,3)));
			Запрос.УстановитьПараметр("КодНаселенногоПунктаВКоде", Число(Сред(МассивАдреса[0],9,3)));
			Запрос.УстановитьПараметр("КодУлицыВКоде", Число(Сред(МассивАдреса[0],12,4)));
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;		

 

Для демонстрации функционала сделал внешнюю обработку

 

 

Тестировал УПП релиз 1.3.123.1

Платформа 1С:Предприятие 8.3 (8.3.15.1747)

Вступайте в нашу телеграмм-группу Инфостарт

КЛАДР dadata УПП автозаполнение адреса

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    6511    4    3    

7

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

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

36000 руб.

03.08.2020    21593    30    24    

24

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3816    18    2    

20

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8334    7    5    

9

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

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    2055    1    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Senator_I 251 03.12.19 10:28 Сейчас в теме
Для тех, кто код выкладывает фоткой, есть отдельный котел в аду ;-)
khomkolov; amon_ra; G.Shatrov; ybatiaev; BigB; serg-lom89; YPermitin; OneEset; +8 Ответить
5. John_d 6044 03.12.19 17:27 Сейчас в теме
6. Senator_I 251 03.12.19 17:42 Сейчас в теме
(5) другое дело, спасибо мил человек. Весь код разработки, конечно. выкладывать не нужно. но если выкладываете часть, то лучше кодом. Может кому-нибудь этот кусок кода и пригодиться.
2. OneEset 03.12.19 10:34 Сейчас в теме
В общем я КЛАДР на всё это заполнение))
Free1CforAll; vtsuganov; +2 Ответить
3. пользователь 03.12.19 12:30
4. spectre1978 61 03.12.19 15:58 Сейчас в теме
Тем кто занимается разбором, преобразованием и вводом адресов - наш плюс, ибо дело нужное.
fight1c; Free1CforAll; +2 Ответить
7. axae 110 04.12.19 08:38 Сейчас в теме
На всякий случай напоминаю про dadata.ru: "Подсказки не предназначены для парсинга адресов, их запрещено использовать для отправки целого адреса на разбор. Для этого нужен сервис Стандартизации" - это их позиция.
8. John_d 6044 05.12.19 14:34 Сейчас в теме
(7)В статье про парсинг подсказок не говорится. На портале после ввода адреса отрабатывает пост запрос к API, который возвращает код КЛАДР.
9. user1250039 17.12.19 12:47 Сейчас в теме
Не очень понятно, как вы получаете строку : 7700000000022800015#дом#12#корпус#2#офис#1#117393. Откуда берете данные?
10. John_d 6044 17.12.19 12:53 Сейчас в теме
(9) На портале после ввода адреса отрабатывает пост запрос к API (https://dadata.ru/suggestions/#address), который возвращает код КЛАДР
Остальные данные вводят на портале пользователи, дом, квартиру
Строка склеивается и отправляется в 1с.
Для отправки сообщения требуется регистрация/авторизация