Как получить коды ФИАС из адреса клиента в «1С:Комплексная автоматизация 2»?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Торговля и дистрибуция
← На главную

В процессе интеграции с внешними системами или подготовки данных для специфических отчетов поставщиков часто возникает задача выгрузки адресов не строкой, а в виде структурированных кодов КЛАДР или ФИАС. Рассмотрим, как решить эту задачу в рамках конфигурации КА 2.4, используя штатные механизмы БСП (Библиотеки стандартных подсистем).

Понимание структуры адреса в 1С

Важно помнить, что классификатор КЛАДР официально считается устаревшим и не поддерживается на уровне актуальных обновлений ФИАС. В современных конфигурациях 1С, включая КА 2.4, адрес хранится в контактной информации в формате JSON. Внутри этого JSON-объекта уже содержатся все необходимые идентификаторы (GUID) для каждого уровня адресного объекта.

Метод извлечения данных из контактной информации

Рассмотрим, как добраться до нужных данных. Контактная информация хранится в справочниках (например, Контрагенты) в виде значения строкового типа, которое содержит сериализованный JSON. Для работы с адресами в БСП существует ряд методов.

Чтобы получить GUID улицы или других частей адреса, выполним следующие шаги:

  1. Получим значение контактной информации из объекта (например, через РегистрыСведений.КонтактнаяИнформация).
  2. Прочитаем значение с помощью ЧтениеJSON или ПрочитатьJSON.
  3. Проанализируем структуру полученного объекта. Идентификаторы уровня улицы, дома и населенного пункта обычно хранятся в ключах вида streetid, houseid, cityid и т.д.

Разберем пример кода для анализа структуры:


// Предположим, мы получили данные из регистра
ДанныеАдреса = ПрочитатьJSON(ЧтениеJSON);
// В поле streetid будет содержаться GUID улицы согласно классификатору ФИАС
ИдентификаторУлицы = ДанныеАдреса.streetid;
// Для получения остальных кодов обращаемся к соответствующим ключам
ИдентификаторРегиона = ДанныеАдреса.regionid;

Использование механизмов БСП

Внутри БСП существует модуль АдресныйКлассификатор. В частности, стоит обратить внимание на функцию КодыАдреса. Она позволяет получить объект соответствия, если адрес был ранее корректно распознан и записан в базу с использованием адресного классификатора.

Важные замечания по актуальности данных:

Альтернативные сценарии

Если штатных данных в JSON-структуре недостаточно (например, адрес был введен не через классификатор, а «вручную»), то получить корректные коды ФИАС «внутри базы» без обращения к классификаторам невозможно. В таком случае рекомендуем следующие подходы:

  1. Загрузка классификатора: Загрузите актуальную версию ФИАС (формат XML или DBF) в базу. После этого программно сопоставьте строку адреса с записями в классификаторе. Это позволит «дообогатить» существующие карточки контрагентов недостающими кодами.
  2. Сервисы валидации: Если прямое использование классификаторов требует слишком много ресурсов, воспользуйтесь API-сервисами, которые возвращают стандартизированный адрес с GUID по строковому представлению. Это самый простой способ, если вы готовы использовать внешние запросы.

Итог

Проанализировав ситуацию, мы пришли к выводу, что в КА 2.4 нет необходимости заниматься «проктологией» и парсингом строк, если адрес был заполнен корректно через форму ввода 1С. Вся необходимая информация уже присутствует в объекте контактной информации. Вам достаточно лишь извлечь JSON-значение и считать нужные свойства, такие как streetid или houseid, что полностью соответствует требованиям контрагентов по выгрузке GUID классификатора.

← На главную