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

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

Как из 1С выгрузить контрагентов с адресами и телефонами

Пошаговая инструкция: как выгрузить контрагентов из 1С с адресами и телефонами через отчёт, обработку и консоль запросов в Excel и CSV.

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

Есть несколько рабочих способов получить такую выгрузку: универсальный отчёт, стандартная обработка «Выгрузка и загрузка данных», произвольный отчёт через схему компоновки данных, консоль запросов и программная выгрузка обработкой. Выбор зависит от конфигурации (Управление торговлей, Бухгалтерия, ERP, самописная), версии платформы и того, есть ли у вас права на запуск внешних обработок.

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

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

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

Из-за такой структуры у одного контрагента может быть несколько телефонов и адресов, и при выгрузке они либо разворачиваются в несколько строк, либо собираются в одну ячейку через разделитель. Это важно учитывать при выборе способа: универсальный отчёт выведет строки «как есть», а для формата «один контрагент — одна строка с колонками Телефон, Адрес, Email» понадобится запрос с группировкой или обработка.

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

Способ 1. Универсальный отчёт без программирования

Универсальный отчёт доступен в типовых конфигурациях (Бухгалтерия 3.0, УТ 11, ERP, Комплексная автоматизация) и не требует прав разработчика. Обычно он находится в разделе «Отчёты» → «Универсальный отчёт», либо открывается через «Ещё» → «Универсальный отчёт» в списке справочника.

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

После формирования отчёт можно сохранить через «Файл» → «Сохранить как» в формате MXL или сразу в Excel (xlsx), если платформа предлагает такой вариант. Табличный документ из MXL затем открывается и пересохраняется в Excel без потери данных.

Порядок действий в универсальном отчёте
  1. 1
    Откройте Отчёты → Универсальный отчёт, выберите Справочник → Контрагенты
  2. 2
    В настройках добавьте поля: Наименование, ИНН, КонтактнаяИнформация.Тип, КонтактнаяИнформация.Вид, КонтактнаяИнформация.Представление
  3. 3
    Установите отбор: Тип контактной информации в списке «Адрес; Телефон»
  4. 4
    Сформируйте отчёт и сохраните результат в Excel через Файл → Сохранить как
  5. 5
    Проверьте: у контрагентов с несколькими телефонами должно быть несколько строк

Способ 2. Выгрузка через запрос (консоль запросов или СКД)

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

Типовой запрос для получения телефонов и адресов выглядит так:

ВЫБРАТЬ

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

Контрагенты.Наименование КАК Наименование,

КонтрагентыКИ.Тип КАК Тип,

КонтрагентыКИ.Вид КАК Вид,

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

ИЗ

Справочник.Контрагенты КАК Контрагенты

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКИ

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

ГДЕ

КонтрагентыКИ.Тип В (&Типы)

И НЕ Контрагенты.ПометкаУдаления

В параметр &Типы передаётся список значений: Перечисление.ТипыКонтактнойИнформации.Адрес и .Телефон. Левое соединение гарантирует, что контрагенты без телефонов тоже попадут в выгрузку — с пустым значением. Если нужен только список контрагентов, у которых контакты заполнены, замените левое соединение на внутреннее.

Для сведения нескольких строк в одну (телефоны через точку с запятой в одной ячейке) в СКД используют вычисляемое поле с функцией из общего модуля, либо группировку с объединением значений в ресурсе. Это уже требует базовых навыков СКД, но даёт готовый к рассылке файл.

bsl
ВЫБРАТЬ К.Ссылка, К.Наименование, КИ.Тип, КИ.Вид, КИ.Представление ИЗ Справочник.Контрагенты КАК К ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ ПО К.Ссылка = КИ.Ссылка ГДЕ НЕ К.ПометкаУдаления

Способ 3. Программная выгрузка обработкой

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

Пример выгрузки в CSV:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ К.Наименование, КИ.Вид, КИ.Представление

|ИЗ Справочник.Контрагенты КАК К

|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ

|ПО К.Ссылка = КИ.Ссылка

|ГДЕ НЕ К.ПометкаУдаления";

Выборка = Запрос.Выполнить().Выбрать();

Текст = Новый ТекстовыйДокумент;

Пока Выборка.Следующий() Цикл

Строка = Выборка.Наименование + ";" + Строка(Выборка.Вид) + ";" + Выборка.Представление;

Текст.ДобавитьСтроку(СтрЗаменить(Строка, Символы.ПС, " "));

КонецЦикла;

Текст.Записать("C:\Выгрузка\Контрагенты.csv", КодировкаТекста.UTF8);

Два практических момента. Во-первых, в представлении адреса часто встречаются переносы строк и запятые — их нужно очищать или экранировать, иначе CSV «поедет» при открытии в Excel. Во-вторых, сохраняйте файл в UTF-8 с BOM, иначе кириллица в Excel может отобразиться кракозябрами.

Что делать в старых конфигурациях на обычных формах

В УТ 10.3, Бухгалтерии 2.0 и подобных контактная информация лежит в регистре сведений «КонтактнаяИнформация», где измерение — объект (контрагент), а ресурсы — тип, вид и представление. Универсального отчёта в современном виде там нет, но есть «Отчёт по произвольным данным» / консоль отчётов, где строится запрос по регистру:

ВЫБРАТЬ

КИ.Объект КАК Контрагент,

КИ.Тип,

КИ.Вид,

КИ.Представление

ИЗ

РегистрСведений.КонтактнаяИнформация КАК КИ

ГДЕ

КИ.Объект ССЫЛКА Справочник.Контрагенты

Результат сохраняется в табличный документ и далее в Excel. Логика отборов по типам и видам та же, что и в управляемых конфигурациях.

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

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

Также проверьте несколько случайных контрагентов вручную: откройте карточку в 1С и сравните телефон и адрес с тем, что попал в файл. Особое внимание — контрагентам с несколькими адресами: убедитесь, что юридический и фактический не перепутаны и не склеились в одну строку.

Контрольные точки

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

Число строк по контрагентам
Норма

Совпадает с количеством непомеченных элементов справочника

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

В файле меньше строк — часть контрагентов потерялась из-за внутреннего соединения

Кодировка при открытии в Excel
Норма

Кириллица читается нормально

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

Кракозябры — файл сохранён не в UTF-8

Контрагенты с несколькими телефонами
Норма

Каждый телефон в отдельной строке или объединён через разделитель

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

Телефоны склеены без разделителя или часть пропала

Виды адресов
Норма

Юридический и фактический адреса различимы по колонке «Вид»

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

Адреса перемешаны без указания вида

Типичные ошибки и ограничения

Самая частая ошибка — выгрузка только реквизитов справочника через «Вывести список»: в таком списке нет телефонов и адресов, потому что это отдельная таблица. Вторая ошибка — использование внутреннего соединения в запросе, из-за которого из выгрузки выпадают все контрагенты без заполненных контактов.

Третья группа проблем — техническая: потеря данных из-за переносов строк в представлении адреса, неправильная кодировка CSV, выгрузка помеченных на удаление элементов и дублей. Также помните об ограничении Excel примерно в миллион строк: при очень больших базах выгружайте порциями через отбор по группам контрагентов.

Типичные ошибки
01
Копирование списка справочника вместо выгрузки контактной информации — в файле нет ни одного телефона
02
Внутреннее соединение в запросе — контрагенты без контактов выпали из выгрузки
03
Сохранение CSV в ANSI — при открытии в Excel кириллица нечитаема
04
Отсутствие отбора по пометке удаления — в выгрузку попали удалённые и дубли
05
Неочищенные переносы строк в адресах — структура CSV разрушена

Выбор способа под вашу задачу

Маршрут решения

Как выбрать действие

Нужен быстрый список без программирования и у вас типовая конфигурацияИспользуйте универсальный отчёт с отбором по типам контактов
Нужен формат «один контрагент — одна строка» с колонками Телефон и АдресДелайте отчёт на СКД с группировкой или консоль запросов
Конфигурация старая, на обычных формахСтройте запрос по регистру сведений КонтактнаяИнформация
Нужна регулярная выгрузка или объём десятки тысяч записейПишите внешнюю обработку с выгрузкой в CSV порциями
Нет прав на внешние обработки и отчётыЗапросите у администратора 1С выгрузку или временные права на универсальный отчёт

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

Итог

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

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

Частые вопросы

Можно ли выгрузить контрагентов с телефонами без доступа к конфигуратору?

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

Почему в выгрузке у одного контрагента несколько строк?

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

Как выгрузить только юридические адреса, без фактических?

Добавьте в отбор отчёта или запроса условие по полю «Вид» контактной информации: выберите конкретный вид «Юридический адрес» из справочника видов контактной информации. Аналогично отбираются «Телефон рабочий», «Email» и другие виды.

Что делать, если в Excel вместо русских букв кракозябры?

Файл CSV сохранён не в той кодировке. Пересохраните его в UTF-8 с BOM, либо откройте через «Данные → Получение данных из текстового файла» в Excel с явным указанием кодировки 65001 (UTF-8). Альтернатива — выгружать сразу в табличный документ и сохранять в xlsx.

Как исключить из выгрузки помеченных на удаление и дубли?

В отборе отчёта или в условии ГДЕ запроса добавьте «ПометкаУдаления = Ложь». Для поиска дублей перед выгрузкой используйте типовую обработку «Поиск и удаление дублей» — она объединит повторяющиеся карточки, и выгрузка будет чище.

Можно ли выгрузить контактные лица вместе с контрагентами?

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