Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно.
С опечатками, без индексов, без разделителей, в совершенно любом формате.
Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС?
Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес.
Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование
Скачано
Купить файл
По подписке PRO
Конвертация любых адресов, написанных в свободной форме, к ФИАС, версия 1.1
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
Поиск от одного разработчика до ИТ-команд под проект.
Обмен любыми контактами разрешён.
0% комиссии, допускаются расчёты напрямую.
Всего одно нажатие, и уже через секунду практически любой адрес, написанный в свободной форме, превратится в стройный и красивый ФИАС, например, такие:
Барнаул,Северо-заподная,29"А",кв24
Барнаул Северо-заподная,29"А",кв24
Барнаул Северозаподная,29А,кв24
Барнаул Северозаподная,29А 24 кварт
Барнаул Северозаподная,29-А 24
Северозаподная,29-А 24 Барнаул
Северозаподная,29-А 24 (Барнаул)
Северозаподная,29-А 24 Борнаул
Россиюшка, славный город Барнаул, Северозаподная,29-А 24
Борнаул Северозаподная,29 корпус А 24 квортира
На выходе без исключения для всех вариантов получаем:
656037, Алтайский край, Барнаул г, Северо-Западная ул, дом № 29А, кв 24
Обработка является симбиозом внутренних очисток и преобразований входящего адреса на встроенном языке 1С и API вызовов к сервису Ahunter (бесплатной версии).
С помощью данной функции удаётся корректно восстановить более 95% входящих адресов.
Для работы функции необходим доступ в интернет.
Протестировано на платформах 8.3.13.1513 и 8.3.16.1063.
Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.
Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.
Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.
Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.
Модуль интеграции 1С с OpenCart 2.x, 3x позволяет обмениваться данными между OpenCart (самая популярная бесплатная cms для интернет-магазинов) и 1С:Предприятие 8.
Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.
Программный продукт "Управление доставками в 1С" позволяет обмениваться с личным кабинетом Boxberry, СДЭК, Энергия, Почта России, DPD, ПЭК, Grastin, Деловые Линии, КСЕ, Dalli, ЯндексДоставка. Упрощает создание заявок и резервирование заказов прямо в интерфейсе 1С
(2) По сути, да. Только используется не сервис dadata, а сервис Ahunter, в сочетании с внутренними функциями очистки и подготовки адреса на стороне 1С для отправки в этот сервис (данная предварительная обработка увеличивает качество итогового результата примерно на 10-15%).
(2) Сравнил ради интереса результаты Dadata.ru по тем же адресам, которые привёл в описании к обработке, счёт 10:2 в пользу моего решения. Написание улицы "Северо-западная" без дефиса в адресе сразу убила всю нейросеть Dadata, которая не могла верно идентифицировать адрес:
На сайте Ahunter есть демонстрационный API, который бесплатен и работает без ключей, для функционала обработки этого вполне достаточно. Можете посмотреть здесь:
(8) Я бы на всякий случай делал интервал между запросами в пару секунд, в случае пакетной обработки данных, чтобы IP не забанили за DDoS сервера. А так, ни на какие ограничения я не натыкался.
Подскажите, правильно лит я вас понимаю, что эта обработка прогоняет уже существующие контакты в базе, например "исправить" адреса всех Партнеров в базе? Или она просто "контролирует правильность" на этапе ввода адреса в поле 1С
(10) Это функция, на входе даём строку с адресом в свободной форме, на выходе получаем строку с адресом в строгом соответствии с ФИАС, который прекрасно проглатывается конструктором адреса в 1С и разбивается на поля. Как вы эту функцию будете использовать - ваше дело. Ничего не мешает написать программу, которая исправит адреса всех партнёров с помощью данной функции.
(11) благодарю за ответ, простите за наглость, но вы бы не могли подсказать\намекнуть на такую обработку, которая подскажет "как исправить адреса всех партнёров с помощью данной функции" или где можно почитать о подобном.
Вопрос не праздный, поскольку понимаю что ваша разработка поможет, если смогу решить вопрос как прогнать ей все адреса в базе. Спасибо!
Общий принцип простой. Получаем список партнёров с помощью запроса, затем в цикле проходим результат запроса, у каждого партнёра берём его адрес, отправляем в функцию. Получаем исправленный адрес, по ссылке получаем объект партнёра, заменяем там адрес и сохраняем. Подробнее могу сказать, когда расскажете, что у вас за конфигурация, какая там структура объектов метаданных, в каком виде хранятся адреса партнёров.
Кривовато работает, в моем случае не 95% а процентов 30 верно распознает
например
626150, Тюменская обл, Тобольск г, 6 мкр, дом 2, квартира 5
628306, Ханты-Мансийский Автономный округ - Югра АО, Нефтеюганск г, 14-й мкр, дом № 22, квартира1
628464, Ханты-Мансийский Автономный округ - Югра АО, Радужный г, 2-й мкр, дом № 23, квартира 1
(14) Действительно, обнаружил ошибку, программа не учитывала возможность существования микрорайонов в адресе. Исправил. Версию 1.1 выложил. Если бесплатно не получается скачать, пишите в ЛС, скину
(16) Подобное расширение можно сделать, но под конкретную конфигурацию, везде разная структура хранения контактной информации. То же касается и пакетной обработки.
{"errors":[{"code":10006,"description":"<h1>Получен некорректный токен API<\/h1> \r\n<p>\r\n Нам не удалось обработать Ваш запрос, поскольку мы получили от Вас невалидный токен API.\r\n Узнать свой токен API Вы можете в своем личном кабинете. Там же Вы можете его изменить.\r\n<\/p>\r\n<p>\r\n Если Вы считаете, что данное сообщение Вам выдано по ошибке, то напишите, нам, пожалуйста, об этом письмо \r\n по адресу <a href=\"mailto:info@ixlab.ru\">info@ixlab.ru<\/a>.\r\n<\/p>\r\n","file_name":"..\/..\/source\/webserver\/users\/user_manager.cpp","func_name":"","line_number":419,"name":"INVALID_TOKEN_API","text":""}],"request_process_time":0}