Выгрузка телефонов контрагентов из 1С: отчёт, запрос и Excel

· 9 мин

Содержание

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

Частое заблуждение — искать колонку «Телефон» в самом списке контрагентов и выгружать его через Ещё → Вывести список. В типовом списке телефона обычно нет: номера лежат не в реквизите карточки, а в отдельной таблице контактной информации. Поэтому «Вывести список» отдаст наименования и ИНН, но не номера.

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

Прежде чем строить отчёт, полезно понять, откуда брать данные. В современных конфигурациях на БСП телефоны, адреса и e-mail хранятся в табличной части КонтактнаяИнформация у каждого объекта. У одной строки там есть:

  • 📞 Тип — Телефон, Адрес, Адрес электронной почты, Веб-страница, Факс, Другое;
  • 🏷️ Вид — конкретное назначение: «Телефон контрагента», «Мобильный телефон» и т.п.;
  • 📝 Представление — номер в том виде, как его видит пользователь.

У одного клиента может быть несколько строк с типом «Телефон». Значит, в выгрузке он займёт несколько строк — об этом ниже.

Где искать клиентов в разных программах:

КонфигурацияГде клиентыГде ещё бывают телефоны
Бухгалтерия предприятия 3.0Справочники → Покупки и продажи → КонтрагентыКонтактные лица контрагента (отдельный справочник)
Управление торговлей 11CRM и маркетинг → ПартнерыКонтактные лица партнёров; у контрагентов партнёра — своя контактная информация
УНФ, КА, ERPСправочник клиентов/контрагентовКонтактные лица

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

Список клиентов с телефонами через универсальный отчёт

Универсальный отчёт есть во всех конфигурациях на БСП. Программировать ничего не нужно, нужен лишь доступ к справочнику.

Как открыть отчёт

  • В БП 3.0: Отчеты → Стандартные отчеты → Универсальный отчет.
  • В УТ 11 и других: через Главное меню → Все функции → Отчеты → Универсальный отчет. Если пункта «Все функции» нет, включите его: Главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».

Пошаговая настройка

  1. В шапке отчёта выберите вид данных «Справочник».
  2. В следующем поле укажите «Контрагенты» (в УТ 11 — «Партнеры»).
  3. В поле выбора таблицы вместо основных данных выберите табличную часть «Контактная информация». Именно здесь лежат номера.
  4. Нажмите «Настройки» и переключитесь на расширенный вид.
  5. На вкладке отборов добавьте условие: Тип = Телефон.
  6. На вкладке полей оставьте: Ссылка (это сам клиент), Вид, Представление. При необходимости добавьте Ссылка.ИНН и Ссылка.Наименование полное.
  7. Отключите отбор по пометке удаления: добавьте условие Ссылка.Пометка удаления = Нет, чтобы удалённые клиенты не попали в список.
  8. Нажмите «Сформировать».

Получится таблица «клиент — вид телефона — номер». Сохраните настройку под понятным именем через меню настроек отчёта, чтобы в следующий раз открыть её в один клик.

Как сохранить результат в Excel

Над сформированным отчётом нажмите кнопку с дискетой («Сохранить») или Ctrl+S и выберите тип файла «Лист Microsoft Excel 2007 (*.xlsx)». Номера сохранятся как текст, ведущий «+» не потеряется.

Если в настройках оставить группировку по клиенту, в Excel получится «лесенка» с объединёнными ячейками. Для дальнейшей обработки (рассылки, загрузки в CRM) лучше выводить плоскую таблицу без группировок.

Как привести номера к одному формату

Номера в 1С вводят как придётся: 8 (495) 123-45-67, +7 916 1234567, 4951234567. Для обзвона или загрузки в сервис SMS их удобно нормализовать прямо в Excel:

  1. В соседнем столбце уберите всё, кроме цифр, формулой с заменой: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(C2;" ";"");"(";"");")";"");"-";"");"+";"").
  2. Если получилось 11 цифр и первая — 8, замените её на 7. Если 10 цифр — допишите 7 в начало.
  3. Отфильтруйте строки, где длина результата не равна 11: это опечатки или внутренние короткие номера, их проверяют вручную.
  4. Удалите дубли через Данные → Удалить дубликаты по столбцу с нормализованным номером.

«Битые» номера, найденные на шаге 3, исправьте и в карточках клиентов, а не только в файле — иначе при следующей выгрузке они вернутся.

Как вывести только клиентов, а не всех контрагентов

В БП 3.0 в одном справочнике живут и покупатели, и поставщики, и банки, и налоговая. Признака «покупатель» у контрагента в актуальных релизах нет. Поэтому «список клиентов» обычно означает «тех, кому мы что-то продавали».

Варианты отбора:

  • 📁 По папке. Если контрагенты разложены по группам «Покупатели» / «Поставщики», в универсальном отчёте поставьте отбор Ссылка В группе "Покупатели".
  • 🧾 По факту продаж. Надёжнее всего: клиентом считается тот, на кого есть проведённые реализации за период. Это делается запросом (следующий раздел).
  • 📊 По оборотам 62 счёта. В БП можно сформировать оборотно-сальдовую ведомость по счёту 62 с детализацией по контрагентам, скопировать список и сопоставить с выгрузкой телефонов в Excel через ВПР. Работает, но это ручная склейка двух таблиц.

Запрос для выгрузки телефонов клиентов

Когда отчёта мало — нужны только покупатели за год, клиенты без телефона, сразу ИНН и e-mail рядом, — пишут запрос. Выполнить его можно в консоли запросов: это внешняя обработка, которую фирма 1С распространяет для пользователей ИТС. Открывается через Файл → Открыть в режиме «1С:Предприятие».

Все контрагенты с телефонами

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

Только покупатели за период, включая тех, у кого нет номера

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

ВЫБРАТЬ РАЗЛИЧНЫЕ
    Реал.Контрагент КАК Контрагент
ПОМЕСТИТЬ Клиенты
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реал
ГДЕ
    Реал.Проведен
    И Реал.Дата МЕЖДУ &НачалоПериода И &КонецПериода
;

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

Параметры НачалоПериода и КонецПериода задайте в консоли на вкладке параметров. Для года: 01.01 00:00:00 и 31.12 23:59:59.

Условие на тип телефона стоит в ПО, а не в ГДЕ. Если перенести его в ГДЕ, левое соединение фактически станет внутренним, и клиенты без номера пропадут из результата.

В УТ 11 замените источники: клиентов берите из реквизита Партнер документа реализации, а телефоны — из Справочник.Партнеры.КонтактнаяИнформация.

Телефоны контактных лиц и дополнительные реквизиты

У организаций основной номер часто «секретарский». Реальные телефоны бухгалтера или закупщика записаны у контактных лиц. Их выгружают тем же способом, только источником служит справочник контактных лиц:

  • в БП 3.0 — Справочник.КонтактныеЛица, владелец — контрагент;
  • в УТ 11 — Справочник.КонтактныеЛицаПартнеров, владелец — партнёр.

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

Если номер записан в дополнительном реквизите

Бывает, что в базе завели свой реквизит, например «Телефон для SMS» или «WhatsApp». Его включают в Администрирование → Общие настройки → Дополнительные реквизиты и сведения. Такие значения хранятся в табличной части ДополнительныеРеквизиты объекта:

ВЫБРАТЬ
    ДР.Ссылка КАК Контрагент,
    ДР.Свойство КАК Реквизит,
    ДР.Значение КАК Значение
ИЗ
    Справочник.Контрагенты.ДополнительныеРеквизиты КАК ДР
ГДЕ
    ДР.Свойство.Наименование ПОДОБНО "%телефон%"

Если это дополнительное сведение, а не реквизит, оно живёт в регистре сведений ДополнительныеСведения с измерениями «Объект» и «Свойство» — запрос аналогичный.

Лишние виды телефонов лучше не плодить. Если менеджеры записывают мобильный то в доп. реквизит, то в контактную информацию, выгрузка всегда будет неполной. Договоритесь об одном месте и добавьте нужный вид контактной информации вместо отдельного реквизита.

Внешний отчёт и печатная форма для выгрузки контактов

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

Как подключить:

  1. Включите флажок в Администрирование → Печатные формы, отчеты и обработки → «Дополнительные отчеты и обработки».
  2. Откройте список дополнительных отчётов, нажмите «Добавить из файла» и выберите .erf.
  3. Укажите размещение (раздел, где появится команда) и пользователей, которым отчёт доступен.
  4. Запишите. Отчёт появится в выбранном разделе.

Если контакты нужны в виде печатной формы — например, «Карточка клиента» с телефонами для курьера — делают внешнюю печатную форму, привязанную к справочнику контрагентов. Тогда кнопка печати появится прямо в списке и в карточке. Это та же процедура подключения, только тип обработки — «Печатная форма», а в размещении указывается справочник.

Не правьте типовую конфигурацию ради одного отчёта. Внешний отчёт или расширение не мешают обновлениям, а изменения в снятой с поддержки конфигурации придётся переносить при каждом релизе.

Автоматическая отправка списка по расписанию

Если отдел продаж каждую неделю просит «свежую базу телефонов», не формируйте её руками. В конфигурациях на БСП есть рассылки отчётов: Администрирование → Печатные формы, отчеты и обработки → Рассылки отчетов.

Что настроить в рассылке:

  • 📄 отчёт — сохранённый вариант универсального отчёта или ваш внешний отчёт;
  • 📧 получатели и учётная запись электронной почты, с которой уходит письмо;
  • 🗂️ формат вложения — Excel (.xlsx);
  • ⏰ расписание, например каждый понедельник в 8:00.

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

Какой способ выгрузки выбрать?

Прямой запрос к СУБД: когда стоит и чем грозит

Администраторы иногда хотят достать телефоны SQL-запросом в обход 1С — например, для BI-системы. Технически это возможно, но есть подводные камни:

  • 🔢 Имена таблиц не человеческие. Справочник хранится в таблице вида _Reference45, его табличная часть — _Reference45_VT1234. Соответствие имён выдаёт метод платформы ПолучитьСтруктуруХраненияБазыДанных(), выполненный в самой 1С.
  • 🔄 Имена меняются. После обновления конфигурации с реструктуризацией номера таблиц могут стать другими, и запрос сломается.
  • 🧩 Ссылки хранятся в двоичном виде. Тип и вид контактной информации в таблице — это не текст «Телефон», а двоичные идентификаторы. Их придётся сопоставлять отдельно.
  • ⚖️ Ограничения лицензии. Фирма 1С не поддерживает работу с данными в обход платформы; прежде чем ставить такую выгрузку в регламент, проверьте условия лицензионного соглашения.

Никогда не пишите в базу 1С через SQL — UPDATE и DELETE в обход платформы ломают ссылочную целостность и итоги регистров. Только чтение, и лучше с копии базы.

Практичная альтернатива для интеграций — HTTP-сервис или OData-интерфейс 1С: данные отдаются с понятными именами полей, и обновления конфигурации ничего не ломают.

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

Можно ли собрать все телефоны клиента в одну строку?
Язык запросов 1С не склеивает строки. Сделайте это в Excel сводной таблицей или формулой ОБЪЕДИНИТЬ по клиенту либо оставьте группировку по клиенту в универсальном отчёте.
Почему номера в выгрузке в разном формате?
Поле «Представление» хранит номер так, как его ввели: с пробелами, скобками, восьмёркой. Для рассылки по SMS приведите их к виду +7XXXXXXXXXX в Excel заменой символов.
Нужно ли согласие клиентов, чтобы выгружать их телефоны?
Номер физлица или ИП — персональные данные. Передавать выгрузку третьим лицам, например подрядчику по обзвону, можно только при наличии законного основания по 152-ФЗ.
Почему в отчёте нет части клиентов?
У них не заполнен телефон или он записан у контактного лица либо в доп. реквизите. Используйте запрос с левым соединением — такие клиенты выйдут с пустым номером.
Как запретить сотрудникам выгружать базу клиентов?
Отключите в их профиле прав возможность вывода в файл и доступ к универсальному отчёту. Право на вывод списков задаётся в группах доступа.

Источники

  • Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»