Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно.
С опечатками, без индексов, без разделителей, в совершенно любом формате.
Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС?
Восстановит индекс, исправит опечатки и вернёт на 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С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.
Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.
Программный продукт "Управление доставками в 1С" позволяет обмениваться с личным кабинетом Boxberry, СДЭК, Энергия, Почта России, DPD, ПЭК, Grastin, Деловые Линии, КСЕ, Dalli, ЯндексДоставка. Упрощает создание заявок и резервирование заказов прямо в интерфейсе 1С
Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.
Модуль интеграции 1С с OpenCart 2.x, 3x позволяет обмениваться данными между OpenCart (самая популярная бесплатная cms для интернет-магазинов) и 1С:Предприятие 8.
Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.
Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию.
Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента.
Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.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}