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

Публикация № 1162027

Разработка - Системная интеграция - Интеграция с WEB

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

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

На портале после ввода адреса отрабатывает пост запрос к 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)

Скачать файлы

Наименование Файл Версия Размер
Автоматизация заполнения адреса по КЛАДР в УПП при выгрузки контрагента с портала(API dadata).:

.epf 7,80Kb
02.12.19
1
.epf 7,80Kb 1 Скачать

Специальные предложения

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

См. также

Публикаций не найдено

Попробуйте расширить область поиска, проверьте поисковый запрос и повторите попытку.

Или закажите индивидуальную разработку вашего решения.

Создать заказ на разработку