Как получить фактический адрес организации программно в 1С:Управление торговлей 10.3

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

При разработке отчетов, обработок и печатных форм в конфигурации «Управление торговлей», редакция 10.3 (а также в других типовых конфигурациях на обычных формах), часто возникает задача программно получить фактический адрес собственной организации. Рассмотрим различные способы решения этой задачи — от типовых функций общих модулей до прямого обращения к данным через запросы.

В типовых конфигурациях на платформе 1С вся контактная информация (адреса, телефоны, email) юридических и физических лиц хранится не в реквизитах справочников, а в специализированном регистре сведений КонтактнаяИнформация. Для классификации типов данных используется справочник ВидыКонтактнойИнформации.

Способ 1. Использование типовой функции общего модуля

Самый простой и быстрый способ получить строковое представление адреса — воспользоваться встроенными функциями общего модуля УправлениеКонтактнойИнформацией. Разберем вызов функции ПолучитьАдресИзКонтактнойИнформации:


// В качестве параметров передаем ссылку на организацию и вид адреса строкой
ФактическийАдрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(ОрганизацияСсылка, "Фактический");

Функция возвращает готовую строку с представлением адреса. В качестве второго параметра также могут передаваться значения "Юридический" или "Почтовый".

Способ 2. Комплексное получение реквизитов через СведенияОЮрФизЛице

Если для формирования печатной формы или документа кроме фактического адреса требуются другие реквизиты (ИНН, КПП, юридический адрес, телефоны, банковский счет), целесообразно использовать универсальную функцию СведенияОЮрФизЛице:


СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(ОрганизацияСсылка, ТекущаяДата());

// Получаем фактический адрес из структуры реквизитов
ФактическийАдрес = СведенияОбОрганизации.ФактическийАдрес;

Этот метод удобен тем, что за одно обращение возвращает структуру со всеми ключевыми контактными и регистрационными данными организации на указанную дату с учетом истории изменений.

Способ 3. Прямой запрос к регистру сведений «КонтактнаяИнформация»

Когда требуется обработать массив данных или включить адрес в сложную выборку отчета, эффективнее всего обратиться напрямую к регистру сведений КонтактнаяИнформация через запрос. Проанализируем пример такого запроса:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	КИ.Представление КАК ФактическийАдрес,
    |	КИ.Поле1 КАК Индекс,
    |	КИ.Поле2 КАК Регион,
    |	КИ.Поле3 КАК Район,
    |	КИ.Поле4 КАК Город,
    |	КИ.Поле5 КАК НаселенныйПункт,
    |	КИ.Поле6 КАК Улица,
    |	КИ.Поле7 КАК Дом,
    |	КИ.Поле8 КАК Корпус,
    |	КИ.Поле9 КАК Квартира
    |ИЗ
    |	РегистрСведений.КонтактнаяИнформация КАК КИ
    |ГДЕ
    |	КИ.Объект = &Организация
    |	И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресОрганизации)";

Запрос.УстановитьПараметр("Организация", ОрганизацияСсылка);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    ФактическийАдрес = Выборка.ФактическийАдрес;
КонецЕсли;

Обратим внимание на ключевые особенности хранения данных в регистре сведений:

  1. Предопределенный элемент справочника видов контактной информации для организации называется ФактАдресОрганизации (не путайте с ФактАдресКонтрагента, который используется для справочника контрагентов).
  2. Итоговая строка адреса хранится в ресурсе Представление.
  3. Составные части адреса по классификатору (индекс, регион, город, улица, дом и т.д.) распределены по реквизитам Поле1 – Поле10.
← На главную