Справочники и Данные · 10 мин
Как получить адрес контрагента в 1С
Как получить адрес контрагента в 1С: через карточку, контактную информацию, запрос и код. Способы для БП, УТ и программистов с примерами.
Адрес контрагента в типовых конфигурациях 1С (Бухгалтерия предприятия, Управление торговлей, Комплексная автоматизация) хранится не в виде простого реквизита, а в табличной части «Контактная информация» справочника «Контрагенты». Поэтому простого поля «Адрес» в карточке нет — есть универсальный механизм, где один контрагент может иметь юридический, фактический, почтовый адрес и другие виды контактов.
Способ получения адреса зависит от вашей роли. Обычному пользователю достаточно открыть карточку контрагента или вывести адрес в список. Менеджеру, которому нужен адрес для печати документов, стоит проверить настройки шаблонов. Разработчику понадобится запрос к табличной части или методы БСП (библиотеки стандартных подсистем) — функции УправлениеКонтактнойИнформацией.
Ниже разобраны все рабочие варианты: просмотр в интерфейсе, вывод в список и отчёт, получение адреса запросом на встроенном языке, программное заполнение и типичные ошибки, из-за которых адрес «не находится».
Где в 1С хранится адрес контрагента
В типовых конфигурациях на БСП контактная информация унифицирована: телефоны, адреса, e-mail, Skype хранятся одинаково для контрагентов, партнёров, физических лиц и организаций. У справочника «Контрагенты» есть табличная часть КонтактнаяИнформация с полями «Тип», «Вид», «Представление» (адрес строкой) и «ЗначенияПолей» (структурированное значение в формате XML или JSON).
Виды адресов задаются в справочнике «Виды контактной информации». Стандартные предопределённые виды для контрагентов: «Юридический адрес», «Фактический адрес», «Почтовый адрес». Именно по полю «Вид» отличают юридический адрес от фактического — по представлению строки это сделать ненадёжно.
Как посмотреть адрес в карточке контрагента
Откройте раздел «Покупки» или «Продажи» → «Контрагенты» (в Бухгалтерии — «Справочники» → «Контрагенты»). Двойным щелчком откройте нужную карточку. Адреса отображаются в блоке «Контактная информация» или на отдельной вкладке «Адреса» — расположение зависит от конфигурации и её версии.
Если адресов несколько, рядом с каждым указан его вид: «Юридический адрес», «Фактический адрес». Чтобы скопировать адрес, выделите строку и нажмите Ctrl+C или используйте команду «Ещё» → «Копировать». Кнопка с изображением карты (если включена интеграция с картографическим сервисом) покажет адрес на карте.
Если блок контактной информации свёрнут или пуст, проверьте: возможно, адрес просто не заполняли, либо у вас ограничены права на просмотр контактной информации (встречается в базах с настроенными профилями групп доступа).
Как вывести адрес в список контрагентов или отчёт
В форме списка справочника адрес по умолчанию не выводится, но его можно добавить через настройку списка: «Ещё» → «Изменить форму» (или «Настроить список» в такси-интерфейсе) и добавить поле из контактной информации, если конфигурация это позволяет. В ряде типовых решений доступна команда «Ещё» → «Изменить вариант списка» с добавлением колонки «Адрес».
Более надёжный путь — отчёт. В Бухгалтерии и УТ есть универсальный отчёт по справочнику, а также печатные формы и обработки, выводящие контактную информацию. Откройте «Отчёты» → «Универсальный отчёт», выберите справочник «Контрагенты», период не указывайте, в настройках добавьте поле из группы «Контактная информация» — «Юридический адрес» или «Фактический адрес». Сформированный отчёт можно выгрузить в Excel.
- 1Откройте «Отчёты» → «Универсальный отчёт»
- 2Выберите объект «Справочник» → «Контрагенты»
- 3В настройках добавьте поле «Контактная информация — Юридический адрес»
- 4Сформируйте отчёт и проверьте заполненность колонки
- 5Сохраните результат в Excel при необходимости
Как получить адрес запросом на встроенном языке
Для разработчика основной способ — запрос к табличной части. Запрос выбирает представление адреса по контрагенту и виду контактной информации:
ВЫБРАТЬ
КонтрагентыКИ.Ссылка КАК Контрагент,
КонтрагентыКИ.Представление КАК Адрес
ИЗ
Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКИ
ГДЕ
КонтрагентыКИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
И КонтрагентыКИ.Ссылка = &Контрагент
Обратите внимание: имя предопределённого элемента справочника «Виды контактной информации» может отличаться в зависимости от конфигурации и версии БСП (например, ЮрАдресКонтрагента или СправочникКонтрагенты_ЮрАдрес в некоторых локализациях). Точное имя смотрите в конфигураторе в ветке «Справочники» → «Виды контактной информации» → «Предопределённые».
Вместо жёсткой ссылки на предопределённый элемент надёжнее искать вид по наименованию или передавать его параметром — это упростит перенос кода между базами.
Запрос = Новый Запрос("ВЫБРАТЬ Представление ИЗ Справочник.Контрагенты.КонтактнаяИнформация ГДЕ Ссылка = &Ссылка И Вид = &Вид"); Запрос.УстановитьПараметр("Ссылка", Контрагент); Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Адрес = Результат.Представление; КонецЕсли;Как получить адрес через функции БСП
Библиотека стандартных подсистем предоставляет готовые методы модуля УправлениеКонтактнойИнформацией. Они предпочтительнее прямых запросов, так как корректно работают с разными форматами хранения и не ломаются при обновлении конфигурации.
Для получения контактной информации объекта используется функция УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Ссылка, ВидКИ, Дата). Она вернёт таблицу значений с представлением и значениями полей. Для получения структуры адреса по полям (индекс, регион, город, улица, дом) применяются методы преобразования значения полей в структуру — например, РаботаСАдресами.СведенияОбАдресе() в свежих версиях БСП.
КИ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(
КонтрагентСсылка,
Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента,
ТекущаяДатаСеанса());
Если КИ.Количество() > 0 Тогда
АдресСтрокой = КИ[0].Представление;
КонецЕсли;
Как программно записать или изменить адрес
Запись адреса выполняется через объект справочника: получаете объект методом ПолучитьОбъект(), находите или добавляете строку в табличной части «КонтактнаяИнформация», заполняете «Тип» (Перечисление.ТипыКонтактнойИнформации.Адрес), «Вид», «Представление» и «ЗначенияПолей», затем вызываете Записать().
Корректное заполнение «ЗначенияПолей» вручную трудоёмко — проще использовать методы БСП для формирования значения из структуры адреса. Если заполнить только «Представление», адрес будет отображаться, но проверка по классификатору и разбор по полям работать не будут, а печатные формы, требующие структурированного адреса (например, для ЭДО или почтовых наклеек), могут заполниться некорректно.
Частые ошибки и проверка результата
Самая частая ситуация — запрос возвращает пустой результат, хотя адрес в карточке виден. Причины: выбран не тот вид контактной информации (адрес записан как фактический, а ищете юридический), устаревшее имя предопределённого элемента, либо в базе дубли видов КИ после обмена. Проверьте, какой именно вид стоит у строки адреса в карточке.
Вторая типичная ошибка — обращение к табличной части, которой нет в данной конфигурации. В некоторых решениях (например, где контрагенты разделены на «Партнёры» и «Контрагенты», как в УТ 11) адрес хранится у партнёра, а не у контрагента. Тогда запрос нужно строить к справочнику «Партнеры» или получать адрес через связанного партнёра.
Как проверить результат
Вид в запросе совпадает с видом строки адреса в карточке
В карточке «Фактический адрес», а в запросе — юридический
Возвращается читаемая строка адреса
Пустая строка или NULL
ЗначенияПолей заполнены, адрес проходит проверку ФИАС
Есть только представление, поля пустые
FAQ
Почему в списке контрагентов нет колонки «Адрес»?
Адрес хранится в табличной части, а не в реквизите, поэтому стандартная форма списка его не показывает. Используйте настройку списка, универсальный отчёт или доработку формы программистом.
Как получить адрес доставки, а не юридический?
В торговых конфигурациях адрес доставки может храниться как отдельный вид контактной информации у партнёра или в документе (заказе, реализации). Уточните в карточке, как называется нужный вид, и отбирайте по нему.
Можно ли получить адреса всех контрагентов сразу?
Да. Выполните запрос к табличной части без отбора по контрагенту, сгруппировав по ссылке, либо сформируйте универсальный отчёт по справочнику с полем контактной информации и выгрузите в Excel.
Чем отличается «Представление» от «ЗначенияПолей»?
Представление — адрес одной строкой для показа пользователю. ЗначенияПолей — структурированные данные (регион, город, улица) в служебном формате, которые используются для проверки, разбора и печатных форм.
Запрос пустой, хотя адрес в карточке есть. Что делать?
Проверьте вид контактной информации у строки адреса, имя предопределённого элемента в вашей конфигурации и то, не хранится ли адрес у связанного объекта (партнёра в УТ). Также убедитесь, что нет ограничений прав на чтение данных.
Что важно запомнить
Адрес контрагента хранится в табличной части «КонтактнаяИнформация» с разделением по видам. В интерфейсе смотрите карточку или универсальный отчёт, в коде — используйте запрос с отбором по виду КИ или функции УправлениеКонтактнойИнформацией. В УТ помните про разделение на партнёров и контрагентов, а массовые изменения делайте только после резервной копии.