Выгрузка телефонов контрагентов из 1С: отчёт, запрос и Excel
Содержание
Самый быстрый способ вывести в 1С список клиентов с телефонами — универсальный отчёт по табличной части «Контактная информация» справочника Контрагенты с отбором по типу «Телефон». В Бухгалтерии 3.0 он открывается через Отчеты → Стандартные отчеты → Универсальный отчет, результат сохраняется в Excel одной кнопкой.
Частое заблуждение — искать колонку «Телефон» в самом списке контрагентов и выгружать его через Ещё → Вывести список. В типовом списке телефона обычно нет: номера лежат не в реквизите карточки, а в отдельной таблице контактной информации. Поэтому «Вывести список» отдаст наименования и ИНН, но не номера.
Где 1С хранит телефоны клиентов
Прежде чем строить отчёт, полезно понять, откуда брать данные. В современных конфигурациях на БСП телефоны, адреса и e-mail хранятся в табличной части КонтактнаяИнформация у каждого объекта. У одной строки там есть:
- 📞 Тип — Телефон, Адрес, Адрес электронной почты, Веб-страница, Факс, Другое;
- 🏷️ Вид — конкретное назначение: «Телефон контрагента», «Мобильный телефон» и т.п.;
- 📝 Представление — номер в том виде, как его видит пользователь.
У одного клиента может быть несколько строк с типом «Телефон». Значит, в выгрузке он займёт несколько строк — об этом ниже.
Где искать клиентов в разных программах:
| Конфигурация | Где клиенты | Где ещё бывают телефоны |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Справочники → Покупки и продажи → Контрагенты | Контактные лица контрагента (отдельный справочник) |
| Управление торговлей 11 | CRM и маркетинг → Партнеры | Контактные лица партнёров; у контрагентов партнёра — своя контактная информация |
| УНФ, КА, ERP | Справочник клиентов/контрагентов | Контактные лица |
В УТ 11 «клиент» — это партнёр, а контрагент — его юрлицо для документов. Телефоны менеджеры чаще заполняют у партнёра и контактных лиц, а не у контрагента. Выгрузка только по контрагентам в УТ даст много пустых строк.
Список клиентов с телефонами через универсальный отчёт
Универсальный отчёт есть во всех конфигурациях на БСП. Программировать ничего не нужно, нужен лишь доступ к справочнику.
Как открыть отчёт
- В БП 3.0:
Отчеты → Стандартные отчеты → Универсальный отчет. - В УТ 11 и других: через
Главное меню → Все функции → Отчеты → Универсальный отчет. Если пункта «Все функции» нет, включите его:Главное меню → Сервис → Параметры→ флажок «Отображать команду “Все функции”».
Пошаговая настройка
- В шапке отчёта выберите вид данных «Справочник».
- В следующем поле укажите «Контрагенты» (в УТ 11 — «Партнеры»).
- В поле выбора таблицы вместо основных данных выберите табличную часть «Контактная информация». Именно здесь лежат номера.
- Нажмите «Настройки» и переключитесь на расширенный вид.
- На вкладке отборов добавьте условие: Тип = Телефон.
- На вкладке полей оставьте: Ссылка (это сам клиент), Вид, Представление. При необходимости добавьте
Ссылка.ИННиСсылка.Наименование полное. - Отключите отбор по пометке удаления: добавьте условие
Ссылка.Пометка удаления = Нет, чтобы удалённые клиенты не попали в список. - Нажмите «Сформировать».
Получится таблица «клиент — вид телефона — номер». Сохраните настройку под понятным именем через меню настроек отчёта, чтобы в следующий раз открыть её в один клик.
Как сохранить результат в Excel
Над сформированным отчётом нажмите кнопку с дискетой («Сохранить») или Ctrl+S и выберите тип файла «Лист Microsoft Excel 2007 (*.xlsx)». Номера сохранятся как текст, ведущий «+» не потеряется.
Если в настройках оставить группировку по клиенту, в Excel получится «лесенка» с объединёнными ячейками. Для дальнейшей обработки (рассылки, загрузки в CRM) лучше выводить плоскую таблицу без группировок.
Как привести номера к одному формату
Номера в 1С вводят как придётся: 8 (495) 123-45-67, +7 916 1234567, 4951234567. Для обзвона или загрузки в сервис SMS их удобно нормализовать прямо в Excel:
- В соседнем столбце уберите всё, кроме цифр, формулой с заменой:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(C2;" ";"");"(";"");")";"");"-";"");"+";""). - Если получилось 11 цифр и первая — 8, замените её на 7. Если 10 цифр — допишите 7 в начало.
- Отфильтруйте строки, где длина результата не равна 11: это опечатки или внутренние короткие номера, их проверяют вручную.
- Удалите дубли через
Данные → Удалить дубликатыпо столбцу с нормализованным номером.
«Битые» номера, найденные на шаге 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) на системе компоновки данных. Внутрь кладётся запрос из раздела выше, а пользователь видит обычную кнопку «Сформировать» и период.
Как подключить:
- Включите флажок в
Администрирование → Печатные формы, отчеты и обработки→ «Дополнительные отчеты и обработки». - Откройте список дополнительных отчётов, нажмите «Добавить из файла» и выберите
.erf. - Укажите размещение (раздел, где появится команда) и пользователей, которым отчёт доступен.
- Запишите. Отчёт появится в выбранном разделе.
Если контакты нужны в виде печатной формы — например, «Карточка клиента» с телефонами для курьера — делают внешнюю печатную форму, привязанную к справочнику контрагентов. Тогда кнопка печати появится прямо в списке и в карточке. Это та же процедура подключения, только тип обработки — «Печатная форма», а в размещении указывается справочник.
Не правьте типовую конфигурацию ради одного отчёта. Внешний отчёт или расширение не мешают обновлениям, а изменения в снятой с поддержки конфигурации придётся переносить при каждом релизе.
Автоматическая отправка списка по расписанию
Если отдел продаж каждую неделю просит «свежую базу телефонов», не формируйте её руками. В конфигурациях на БСП есть рассылки отчётов: Администрирование → Печатные формы, отчеты и обработки → Рассылки отчетов.
Что настроить в рассылке:
- 📄 отчёт — сохранённый вариант универсального отчёта или ваш внешний отчёт;
- 📧 получатели и учётная запись электронной почты, с которой уходит письмо;
- 🗂️ формат вложения — Excel (
.xlsx); - ⏰ расписание, например каждый понедельник в 8:00.
Для работы по расписанию в файловой базе должна быть запущена программа или настроено выполнение регламентных заданий. В клиент-серверной базе задания выполняет сервер 1С.
Прямой запрос к СУБД: когда стоит и чем грозит
Администраторы иногда хотят достать телефоны SQL-запросом в обход 1С — например, для BI-системы. Технически это возможно, но есть подводные камни:
- 🔢 Имена таблиц не человеческие. Справочник хранится в таблице вида
_Reference45, его табличная часть —_Reference45_VT1234. Соответствие имён выдаёт метод платформыПолучитьСтруктуруХраненияБазыДанных(), выполненный в самой 1С. - 🔄 Имена меняются. После обновления конфигурации с реструктуризацией номера таблиц могут стать другими, и запрос сломается.
- 🧩 Ссылки хранятся в двоичном виде. Тип и вид контактной информации в таблице — это не текст «Телефон», а двоичные идентификаторы. Их придётся сопоставлять отдельно.
- ⚖️ Ограничения лицензии. Фирма 1С не поддерживает работу с данными в обход платформы; прежде чем ставить такую выгрузку в регламент, проверьте условия лицензионного соглашения.
Никогда не пишите в базу 1С через SQL — UPDATE и DELETE в обход платформы ломают ссылочную целостность и итоги регистров. Только чтение, и лучше с копии базы.
Практичная альтернатива для интеграций — HTTP-сервис или OData-интерфейс 1С: данные отдаются с понятными именами полей, и обновления конфигурации ничего не ломают.
Частые вопросы
Можно ли собрать все телефоны клиента в одну строку?
Почему номера в выгрузке в разном формате?
Нужно ли согласие клиентов, чтобы выгружать их телефоны?
Почему в отчёте нет части клиентов?
Как запретить сотрудникам выгружать базу клиентов?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»