Как получить GUID дома по ФИАС или ГАР в 1С:Бухгалтерия 3.0

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

При интеграции 1С с внешними системами, государственными порталами или сервисами доставки часто возникает необходимость передать глобальный уникальный идентификатор (GUID) адреса, включая конкретное здание или дом. Разберем, хранятся ли GUID домов в локальной информационной базе 1С, какими встроенными функциями их можно получить и с какими ограничениями можно столкнуться при реализации этой задачи.

Особенности хранения адресных сведений в 1С

Спроектированная архитектура Библиотеки Стандартных Подсистем (БСП) в конфигурации 1С:Бухгалтерия 3.0 разделяет адресные объекты на несколько категорий:

  1. Регионы, города, улицы: хранятся в открытом виде в регистре сведений АдресныеОбъекты, где для каждого элемента доступен его открытый GUID.
  2. Дома, здания и строения: содержатся в регистре сведений ДомаЗданияСтроения. Чтобы исключить взрывной рост размера информационной базы (который мог бы составлять десятки гигабайт) и сохранить высокое производительность системы, данные по домам упаковываются в бинарное ХранилищеЗначения, сгруппированное по улицам.

Из-за такой структуры в локальных таблицах базы 1С нет прямых текстовых полей с GUID для каждого дома. Однако получить эти данные все же возможно несколькими способами.

Способ 1. Использование веб-сервиса 1С через общий модуль

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

Рассмотрим пример обращения к функции:


ЗначенияИдентификаторов = АдресныйКлассификатор.ИдентификаторыАдреса(СтруктураАдреса);

При передаче корректно сформированного адреса метод возвращает уникальный номер дома. Проанализируем особенности этого решения:

  1. Запрос к внешнему сервису: получение данных происходит через обращение к веб-сервисам компании 1С в режиме реального времени.
  2. Активная подписка ИТС: для работы веб-сервиса требуется действующий договор 1С:ИТС / 1С:КП и доступ к интернету с сервера 1С.
  3. Зависимость от сетевого доступа: если сервер приложений находится в закрытом контуре без прямого выхода в интернет, данный метод вызовет ошибку подключения.

Способ 2. Получение GUID из сохраненного адреса в базе

Если адрес уже был введен пользователем и сохранен в базе 1С (например, в контактной информации контрагента или физического лица), обращаться к внешним сервисам не требуется.

При вводе адреса из классификатора платформа сохраняет сериализованные данные в регистре сведений КонтактнаяИнформация в поле ЗначенияПолей (в формате XML или JSON). В этой структуре уже содержатся зафиксированные идентификаторы дома.

Разберем вариант извлечения кодов с помощью программного метода:


// Извлечение кодов адреса из сохраненной структуры
СтруктураКодов = АдресныйКлассификатор.КодыАдреса(ЗначенияПолей, "ЗагруженныеДанные");
ИдентификаторДома = СтруктураКодов.ИдентификаторДома;

Параметр "ЗагруженныеДанные" указывает платформе, что поиск необходимо выполнить по зафиксированным локальным данным без отправки внешних HTTP-запросов.

Важные нюансы: различие между ФИАС и ГАР

При работе с современными версиями 1С следует учитывать переход с классификатора ФИАС на Государственный адресный реестр (ГАР). В формате ГАР используются два типа кодов:

  1. OBJECTGUID: глобальный 36-символьный UUID объекта, сохраняющийся при изменении административно-территориальной подчиненности.
  2. OBJECTID: числовой внутренний идентификатор конкретной записи в реестре.

Перед передачей GUID во внешнюю систему необходимо уточнить, какой именно формат кода ожидает приемная сторона.

Альтернативные архитектурные решения

Если задача требует массовой обработки тысяч адресов в режиме нон-стоп, обращение к веб-сервисам 1С может упереться в лимиты скорости или ограничения безопасности. В таких случаях применяются следующие подходы:

  1. Развертывание локального микросервиса: на отдельном сервере поднимается базы данных с полным дампом ГАР/ФИАС, к которой 1С обращается по REST API по внутренней сети.
  2. Использование внешних источников данных: база ГАР разворачивается на СУБД PostgreSQL или MS SQL и подключается к 1С через объект ВнешниеИсточникиДанных, что позволяет выполнять прямые быстрые SQL-запросы без раздувания основной базы 1С.
← На главную