К статье
Практический материал

Справочники и Данные · 10 мин

Как получить адрес контрагента в 1С

Как получить адрес контрагента в 1С: через карточку, контактную информацию, запрос и код. Способы для БП, УТ и программистов с примерами.

Адрес контрагента в типовых конфигурациях 1С (Бухгалтерия предприятия, Управление торговлей, Комплексная автоматизация) хранится не в виде простого реквизита, а в табличной части «Контактная информация» справочника «Контрагенты». Поэтому простого поля «Адрес» в карточке нет — есть универсальный механизм, где один контрагент может иметь юридический, фактический, почтовый адрес и другие виды контактов.

Способ получения адреса зависит от вашей роли. Обычному пользователю достаточно открыть карточку контрагента или вывести адрес в список. Менеджеру, которому нужен адрес для печати документов, стоит проверить настройки шаблонов. Разработчику понадобится запрос к табличной части или методы БСП (библиотеки стандартных подсистем) — функции УправлениеКонтактнойИнформацией.

Ниже разобраны все рабочие варианты: просмотр в интерфейсе, вывод в список и отчёт, получение адреса запросом на встроенном языке, программное заполнение и типичные ошибки, из-за которых адрес «не находится».

Где в 1С хранится адрес контрагента

В типовых конфигурациях на БСП контактная информация унифицирована: телефоны, адреса, e-mail, Skype хранятся одинаково для контрагентов, партнёров, физических лиц и организаций. У справочника «Контрагенты» есть табличная часть КонтактнаяИнформация с полями «Тип», «Вид», «Представление» (адрес строкой) и «ЗначенияПолей» (структурированное значение в формате XML или JSON).

Виды адресов задаются в справочнике «Виды контактной информации». Стандартные предопределённые виды для контрагентов: «Юридический адрес», «Фактический адрес», «Почтовый адрес». Именно по полю «Вид» отличают юридический адрес от фактического — по представлению строки это сделать ненадёжно.

Как посмотреть адрес в карточке контрагента

Откройте раздел «Покупки» или «Продажи» → «Контрагенты» (в Бухгалтерии — «Справочники» → «Контрагенты»). Двойным щелчком откройте нужную карточку. Адреса отображаются в блоке «Контактная информация» или на отдельной вкладке «Адреса» — расположение зависит от конфигурации и её версии.

Если адресов несколько, рядом с каждым указан его вид: «Юридический адрес», «Фактический адрес». Чтобы скопировать адрес, выделите строку и нажмите Ctrl+C или используйте команду «Ещё» → «Копировать». Кнопка с изображением карты (если включена интеграция с картографическим сервисом) покажет адрес на карте.

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

Как вывести адрес в список контрагентов или отчёт

В форме списка справочника адрес по умолчанию не выводится, но его можно добавить через настройку списка: «Ещё» → «Изменить форму» (или «Настроить список» в такси-интерфейсе) и добавить поле из контактной информации, если конфигурация это позволяет. В ряде типовых решений доступна команда «Ещё» → «Изменить вариант списка» с добавлением колонки «Адрес».

Более надёжный путь — отчёт. В Бухгалтерии и УТ есть универсальный отчёт по справочнику, а также печатные формы и обработки, выводящие контактную информацию. Откройте «Отчёты» → «Универсальный отчёт», выберите справочник «Контрагенты», период не указывайте, в настройках добавьте поле из группы «Контактная информация» — «Юридический адрес» или «Фактический адрес». Сформированный отчёт можно выгрузить в Excel.

Вывод адресов списком через универсальный отчёт
  1. 1
    Откройте «Отчёты» → «Универсальный отчёт»
  2. 2
    Выберите объект «Справочник» → «Контрагенты»
  3. 3
    В настройках добавьте поле «Контактная информация — Юридический адрес»
  4. 4
    Сформируйте отчёт и проверьте заполненность колонки
  5. 5
    Сохраните результат в Excel при необходимости

Как получить адрес запросом на встроенном языке

Для разработчика основной способ — запрос к табличной части. Запрос выбирает представление адреса по контрагенту и виду контактной информации:

ВЫБРАТЬ

КонтрагентыКИ.Ссылка КАК Контрагент,

КонтрагентыКИ.Представление КАК Адрес

ИЗ

Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКИ

ГДЕ

КонтрагентыКИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)

И КонтрагентыКИ.Ссылка = &Контрагент

Обратите внимание: имя предопределённого элемента справочника «Виды контактной информации» может отличаться в зависимости от конфигурации и версии БСП (например, ЮрАдресКонтрагента или СправочникКонтрагенты_ЮрАдрес в некоторых локализациях). Точное имя смотрите в конфигураторе в ветке «Справочники» → «Виды контактной информации» → «Предопределённые».

Вместо жёсткой ссылки на предопределённый элемент надёжнее искать вид по наименованию или передавать его параметром — это упростит перенос кода между базами.

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Представление ИЗ Справочник.Контрагенты.КонтактнаяИнформация ГДЕ Ссылка = &Ссылка И Вид = &Вид"); Запрос.УстановитьПараметр("Ссылка", Контрагент); Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Адрес = Результат.Представление; КонецЕсли;

Как получить адрес через функции БСП

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

Для получения контактной информации объекта используется функция УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Ссылка, ВидКИ, Дата). Она вернёт таблицу значений с представлением и значениями полей. Для получения структуры адреса по полям (индекс, регион, город, улица, дом) применяются методы преобразования значения полей в структуру — например, РаботаСАдресами.СведенияОбАдресе() в свежих версиях БСП.

КИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(

КонтрагентСсылка,

Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента,

ТекущаяДатаСеанса());

Если КИ.Количество() > 0 Тогда

АдресСтрокой = КИ[0].Представление;

КонецЕсли;

Как программно записать или изменить адрес

Запись адреса выполняется через объект справочника: получаете объект методом ПолучитьОбъект(), находите или добавляете строку в табличной части «КонтактнаяИнформация», заполняете «Тип» (Перечисление.ТипыКонтактнойИнформации.Адрес), «Вид», «Представление» и «ЗначенияПолей», затем вызываете Записать().

Корректное заполнение «ЗначенияПолей» вручную трудоёмко — проще использовать методы БСП для формирования значения из структуры адреса. Если заполнить только «Представление», адрес будет отображаться, но проверка по классификатору и разбор по полям работать не будут, а печатные формы, требующие структурированного адреса (например, для ЭДО или почтовых наклеек), могут заполниться некорректно.

Частые ошибки и проверка результата

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

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

Типичные ошибки
01
Поиск адреса по представлению строки вместо отбора по виду КИ — результат непредсказуем
02
Использование имени предопределённого вида из другой конфигурации — запрос падает или пуст
03
В УТ 11 адрес ищут у контрагента, тогда как он хранится у партнёра
04
Запись только поля «Представление» без значений полей — ломается разбор адреса и проверка ФИАС
Контрольные точки

Как проверить результат

Отбор по виду КИ
Норма

Вид в запросе совпадает с видом строки адреса в карточке

Тревожный признак

В карточке «Фактический адрес», а в запросе — юридический

Непустое представление
Норма

Возвращается читаемая строка адреса

Тревожный признак

Пустая строка или NULL

Структура адреса
Норма

ЗначенияПолей заполнены, адрес проходит проверку ФИАС

Тревожный признак

Есть только представление, поля пустые

FAQ

Почему в списке контрагентов нет колонки «Адрес»?

Адрес хранится в табличной части, а не в реквизите, поэтому стандартная форма списка его не показывает. Используйте настройку списка, универсальный отчёт или доработку формы программистом.

Как получить адрес доставки, а не юридический?

В торговых конфигурациях адрес доставки может храниться как отдельный вид контактной информации у партнёра или в документе (заказе, реализации). Уточните в карточке, как называется нужный вид, и отбирайте по нему.

Можно ли получить адреса всех контрагентов сразу?

Да. Выполните запрос к табличной части без отбора по контрагенту, сгруппировав по ссылке, либо сформируйте универсальный отчёт по справочнику с полем контактной информации и выгрузите в Excel.

Чем отличается «Представление» от «ЗначенияПолей»?

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

Запрос пустой, хотя адрес в карточке есть. Что делать?

Проверьте вид контактной информации у строки адреса, имя предопределённого элемента в вашей конфигурации и то, не хранится ли адрес у связанного объекта (партнёра в УТ). Также убедитесь, что нет ограничений прав на чтение данных.

Итог

Что важно запомнить

Адрес контрагента хранится в табличной части «КонтактнаяИнформация» с разделением по видам. В интерфейсе смотрите карточку или универсальный отчёт, в коде — используйте запрос с отбором по виду КИ или функции УправлениеКонтактнойИнформацией. В УТ помните про разделение на партнёров и контрагентов, а массовые изменения делайте только после резервной копии.