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

03.12.19

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

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

Скачать файл

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

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

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

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

36000 руб.

03.08.2020    17969    18    22    

17

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

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

7200 руб.

04.05.2021    20104    13    19    

18

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

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

22656 руб.

25.05.2021    14541    42    8    

18

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

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

24000 руб.

27.09.2024    1668    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Senator_I 201 03.12.19 10:28 Сейчас в теме
Для тех, кто код выкладывает фоткой, есть отдельный котел в аду ;-)
khomkolov; amon_ra; G.Shatrov; ybatiaev; BigB; serg-lom89; YPermitin; OneEset; +8 Ответить
5. John_d 5893 03.12.19 17:27 Сейчас в теме
6. Senator_I 201 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 5893 05.12.19 14:34 Сейчас в теме
(7)В статье про парсинг подсказок не говорится. На портале после ввода адреса отрабатывает пост запрос к API, который возвращает код КЛАДР.
9. user1250039 17.12.19 12:47 Сейчас в теме
Не очень понятно, как вы получаете строку : 7700000000022800015#дом#12#корпус#2#офис#1#117393. Откуда берете данные?
10. John_d 5893 17.12.19 12:53 Сейчас в теме
(9) На портале после ввода адреса отрабатывает пост запрос к API (https://dadata.ru/suggestions/#address), который возвращает код КЛАДР
Остальные данные вводят на портале пользователи, дом, квартиру
Строка склеивается и отправляется в 1с.
Оставьте свое сообщение