В процессе интеграции с внешними системами или подготовки данных для специфических отчетов поставщиков часто возникает задача выгрузки адресов не строкой, а в виде структурированных кодов КЛАДР или ФИАС. Рассмотрим, как решить эту задачу в рамках конфигурации КА 2.4, используя штатные механизмы БСП (Библиотеки стандартных подсистем).
Важно помнить, что классификатор КЛАДР официально считается устаревшим и не поддерживается на уровне актуальных обновлений ФИАС. В современных конфигурациях 1С, включая КА 2.4, адрес хранится в контактной информации в формате JSON. Внутри этого JSON-объекта уже содержатся все необходимые идентификаторы (GUID) для каждого уровня адресного объекта.
Рассмотрим, как добраться до нужных данных. Контактная информация хранится в справочниках (например, Контрагенты) в виде значения строкового типа, которое содержит сериализованный JSON. Для работы с адресами в БСП существует ряд методов.
Чтобы получить GUID улицы или других частей адреса, выполним следующие шаги:
РегистрыСведений.КонтактнаяИнформация).ЧтениеJSON или ПрочитатьJSON.streetid, houseid, cityid и т.д.Разберем пример кода для анализа структуры:
// Предположим, мы получили данные из регистра
ДанныеАдреса = ПрочитатьJSON(ЧтениеJSON);
// В поле streetid будет содержаться GUID улицы согласно классификатору ФИАС
ИдентификаторУлицы = ДанныеАдреса.streetid;
// Для получения остальных кодов обращаемся к соответствующим ключам
ИдентификаторРегиона = ДанныеАдреса.regionid;
Внутри БСП существует модуль АдресныйКлассификатор. В частности, стоит обратить внимание на функцию КодыАдреса. Она позволяет получить объект соответствия, если адрес был ранее корректно распознан и записан в базу с использованием адресного классификатора.
Важные замечания по актуальности данных:
ФИАС постоянно меняется, GUID объектов также могут обновляться или объединяться. Если адрес в базе был введен давно, существует вероятность, что текущие идентификаторы не будут совпадать с актуальными данными ФИАС.GUID обнаруживается неактуальность, необходимо использовать официальные таблицы обновлений, которые предоставляет Федеральная налоговая служба.Если штатных данных в JSON-структуре недостаточно (например, адрес был введен не через классификатор, а «вручную»), то получить корректные коды ФИАС «внутри базы» без обращения к классификаторам невозможно. В таком случае рекомендуем следующие подходы:
ФИАС (формат XML или DBF) в базу. После этого программно сопоставьте строку адреса с записями в классификаторе. Это позволит «дообогатить» существующие карточки контрагентов недостающими кодами.GUID по строковому представлению. Это самый простой способ, если вы готовы использовать внешние запросы.Проанализировав ситуацию, мы пришли к выводу, что в КА 2.4 нет необходимости заниматься «проктологией» и парсингом строк, если адрес был заполнен корректно через форму ввода 1С. Вся необходимая информация уже присутствует в объекте контактной информации. Вам достаточно лишь извлечь JSON-значение и считать нужные свойства, такие как streetid или houseid, что полностью соответствует требованиям контрагентов по выгрузке GUID классификатора.