Выгрузка контрагентов из 1С:Предприятие с привязанными телефонами — типичная задача для бухгалтеров, менеджеров по продажам и IT-специалистов, которые настраивают интеграцию с CRM, телефонией или маркетинговыми системами. Без корректного списка клиентов с контактами невозможно организовать массовые рассылки, звонки или синхронизацию данных между программами. Однако стандартные отчёты 1С часто не включают телефоны в выгрузку, а ручной перенос данных занимает часы.

В этой статье разберём 3 рабочих способа выгрузить контрагентов вместе с телефонами: через встроенные инструменты платформы, с помощью внешних обработок и программно (для разработчиков). Каждый метод проиллюстрирован скриншотами и примерами кода, а также учтены нюансы для разных конфигураций — 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11 и 1С:ERP. Если вам нужно перенести данные в Excel, Google Sheets или другую систему — здесь найдёте готовые решения.

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

1. Выгрузка через стандартные отчёты 1С (без программирования)

Если вам нужна разовая выгрузка и нет возможности привлечь программиста, воспользуйтесь встроенными инструментами. Этот метод подходит для 1С:Бухгалтерии 3.0 и 1С:Управления торговлей 11, но имеет ограничение: телефоны будут выгружены только в том случае, если они заполнены в карточке контрагента как «Основной».

Инструкция:

  1. Откройте справочник «Контрагенты» через меню Справочники → Контрагенты.
  2. Нажмите кнопку Ещё → Вывести список (или Все функции → Отчёты → Универсальный отчёт в старых версиях).
  3. В настройках отчёта добавьте поля:
    • 📌 Наименование (или «Полное наименование»)
    • 📞 Телефон (поле «Основной телефон»)
    • 🏢 ИНН/КПП (при необходимости)
    • 📧 Email (если требуется)
  4. Нажмите Сформировать, затем экспортируйте результат в Excel через кнопку Ещё → Выгрузить.
  5. Данные в поле "Основной телефон" заполнены|Контрагенты не помечены на удаление|В настройках отчёта выбраны все нужные поля|Формат выгрузки — Excel (.xlsx)-->

    ⚠️ Внимание: Если телефоны в 1С хранятся в разделе «Контакты» (а не в основном поле), этот способ их не выгрузит. В таком случае переходите к следующему методу.

    Для 1С:ERP путь немного отличается: используйте отчёт Контрагенты (расширенный) в разделе CRM и маркетинг → Отчёты. Здесь можно выгрузить до 5 телефонов на одного контрагента, но только если они привязаны как «Контактные лица».

    2. Выгрузка с телефонами через универсальную обработку

    Если стандартные отчёты не подходят, воспользуйтесь внешней обработкой. Наиболее надёжные варианты:

    • 🔧 «Выгрузка данных в Excel» (от фирмы 1С, бесплатно в каталоге 1С:Предприятие → Все функции → Дополнительные отчёты и обработки).
    • 📄 «Выгрузка справочников в XML/Excel» (платная, но с расширенными настройками).
    • 🔄 «Обмен данными с Excel» (для двусторонней синхронизации).

Рассмотрим первый вариант на примере обработки «Выгрузка данных в Excel»:

  1. Скачайте обработку из каталога 1С (путь: Файл → Открыть → Каталог шаблонов).
  2. Запустите её и выберите справочник Контрагенты.
  3. В настройках выгрузки добавьте поля:
    
    

    Наименование

    ИНН

    Телефон (из таблицы "Контакты")

    Email (из таблицы "Контакты")

    Адрес (из таблицы "Адреса")

  4. Укажите формат Excel (.xlsx) и нажмите Выгрузить.
Как добавить несколько телефонов на одного контрагента?

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

💡 Полезный совет: Если вам нужна выгрузка с историей изменений (например, старые телефоны контрагентов), используйте обработку «Выгрузка данных с историей» из того же каталога. Она позволяет указать период и выгрузить все версии записей.

Excel (.xlsx)|CSV|XML|JSON|Другой-->

3. Программная выгрузка через запрос (для разработчиков)

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

Пример кода для выгрузки в Excel:

Процедура ВыгрузитьКонтрагентовСТелефонами()

// Создаём запрос с объединением справочника и таблицы контактов

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

Запрос.Текст =

"ВЫБРАТЬ

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

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

| Контрагенты.ИНН КАК ИНН,

| Контакты.Представление КАК Телефон,

| Контакты.Вид КАК ВидКонтакта

|ИЗ

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

| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контакты КАК Контакты

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

|ГДЕ

| Контакты.Вид = &ВидТелефона

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

Запрос.УстановитьПараметр("ВидТелефона", Справочники.ВидыКонтактнойИнформации.Телефон);

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

// Создаём документ Excel

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.Workbooks.Add();

Лист = Книга.Worksheets(1);

// Записываем заголовки

Лист.Cells(1, 1).Value = "Контрагент";

Лист.Cells(1, 2).Value = "ИНН";

Лист.Cells(1, 3).Value = "Телефон";

Строка = 2;

ПредыдущийКонтрагент = Неопределено;

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

Если Выборка.Контрагент <> ПредыдущийКонтрагент Тогда

Лист.Cells(Строка, 1).Value = Выборка.Наименование;

Лист.Cells(Строка, 2).Value = Выборка.ИНН;

ПредыдущийКонтрагент = Выборка.Контрагент;

КонецЕсли;

Лист.Cells(Строка, 3).Value = Выборка.Телефон;

Строка = Строка + 1;

КонецЦикла;

// Сохраняем файл

ПутьКФайлу = "C:\Temp\КонтрагентыСТелефонами.xlsx";

Книга.SaveAs(ПутьКФайлу);

Excel.Quit();

Сообщить("Выгрузка завершена! Файл сохранён по пути: " + ПутьКФайлу);

КонецПроцедуры

Этот код:

  • 🔍 Выбирает всех контрагентов и их телефоны из таблицы Контакты.
  • 📊 Формирует Excel-файл с тремя колонками: наименование, ИНН, телефон.
  • 📁 Сохраняет результат в C:\Temp\КонтрагентыСТелефонами.xlsx (путь можно изменить).
РезультатJSON = Новый Структура;

СписокКонтрагентов = Новый Массив;

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

Если НЕ СписокКонтрагентов.Найти(Выборка.Контрагент) Тогда

НовыйКонтрагент = Новый Структура;

НовыйКонтрагент.Вставить("Наименование", Выборка.Наименование);

НовыйКонтрагент.Вставить("ИНН", Выборка.ИНН);

НовыйКонтрагент.Вставить("Телефоны", Новый Массив);

СписокКонтрагентов.Добавить(НовыйКонтрагент);

КонецЕсли;

ПоследнийКонтрагент = СписокКонтрагентов[СписокКонтрагентов.ВГраница()];

ПоследнийКонтрагент.Телефоны.Добавить(Выборка.Телефон);

КонецЦикла;

РезультатJSON.Вставить("Контрагенты", СписокКонтрагентов);

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписьJSON.ЗаписатьJSON(РезультатJSON);

ТекстJSON = ЗаписьJSON.Закрыть();

// Сохраняем в файл

ТекстJSON.Записать("C:\Temp\Контрагенты.json");

-->

⚠️ Внимание: При выгрузке больших баз (более 10 000 контрагентов) Excel может тормозить. В таком случае разбейте выгрузку на части по алфавиту или используйте формат CSV.

4. Выгрузка через конфигуратор (для администрирования)

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

Пошаговая инструкция:

  1. Откройте базу в режиме Конфигуратор (запуск с удержанием Shift).
  2. Перейдите в меню Администрирование → Выгрузка данных.
  3. Выберите формат:
    • 📄 XML — для обмена между базами 1С.
    • 🗃️ DT — для полного резервного копирования.
    • 📊 XDTO — для интеграции с внешними системами.
  4. Укажите объекты для выгрузки:
    Справочник.Контрагенты
    

    Справочник.Контакты (для телефонов)

    Справочник.ВидыКонтактнойИнформации

  5. Нажмите Выгрузить и сохраните файл.
  6. Формат Расширение Когда использовать Особенности
    XML .xml Обмен между базами 1С Сохраняет ссылки между объектами
    DT .dt Резервное копирование Включает метаданные и данные
    XDTO .xsd + .xml Интеграция с внешними системами Требует предварительную настройку пакетов
    JSON .json API, веб-сервисы Нужно писать обработку для преобразования

    🔹 Важно: При выгрузке в XML для обмена между базами убедитесь, что в целевой базе существуют те же виды контактной информации (телефоны, email и т.д.). Иначе данные не загрузятся.

    💡

    Для выгрузки только контрагентов с телефонами в конфигураторе используйте фильтр по объектам. В меню выгрузки нажмите «Настройка» и оставьте галочки только на справочниках «Контрагенты» и «Контакты».

    5. Автоматическая выгрузка по расписанию

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

    • ⏰ Через регламентные задания в 1С.
    • 🤖 С помощью внешних скриптов (например, на Python с библиотекой py1c).
    • ☁️ Через облачные сервисы (например, 1С:Fresh или 1С:Connect).

Пример настройки регламентного задания:

  1. В пользовательском режиме перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание с типом Выполнение кода.
  3. Вставьте код выгрузки (аналогичный из раздела 3, но с сохранением в сетевую папку).
  4. Укажите расписание (например, ежедневно в 23:00).
  5. В настройках безопасности разрешите выполнение без участия пользователя.

Для интеграции с Bitrix24, AmoCRM или Звонилка используйте готовые коннекторы:

  • 🔌 «1С:Интеграция с Bitrix24» (официальное решение от 1С).
  • 📞 «1С + Звонилка» (для автоматической синхронизации телефонов).
  • 📈 «1С:Drive» (для выгрузки в Google Sheets).

⚠️ Внимание: При автоматической выгрузке проверьте права доступа к сетевым папкам. Если файл сохраняется на сервере, убедитесь, что у пользователя 1С есть права на запись в эту директорию.

6. Типичные ошибки и как их избежать

При выгрузке контрагентов с телефонами пользователи часто сталкиваются с следующими проблемами:

Ошибка Причина Решение
Телефоны не выгружаются В запросе не учтена таблица «Контакты» Добавьте ЛЕВОЕ СОЕДИНЕНИЕ с таблицей контактов
Пустые ячейки в Excel Телефоны не заполнены в карточках контрагентов Проверьте заполненность поля «Контакты» в 1С
Ошибка при открытии файла Несовместимость версий Excel Сохраняйте в формате .xlsx, а не .xls
Дублирование строк Один контрагент имеет несколько телефонов Используйте сводную таблицу в Excel для группировки

🔍 Как проверить качество выгрузки:

  1. Откройте полученный файл и сравните количество строк с количеством контрагентов в 1С.
  2. Проверьте несколько случайных записей на наличие телефонов.
  3. Убедитесь, что номера телефонов отображаются корректно (без лишних символов, в формате +7 или 8).

Если выгруженные данные содержат мусор (например, старые или неактуальные телефоны), очистите их прямо в 1С:

  1. Перейдите в справочник Контрагенты.
  2. Откройте карточку проблемного контрагента.
  3. На вкладке Контакты удалите или отредактируйте ненужные записи.
  4. Повторите выгрузку.

FAQ: Частые вопросы по выгрузке контрагентов

Можно ли выгрузить телефоны контрагентов в 1С:Бухгалтерии 7.7?

В 1С:Предприятие 7.7 структура хранения контактов отличается. Телефоны хранятся в реквизитах справочника «Контрагенты» (поля Телефон, Телефон2 и т.д.). Для выгрузки:

  1. Откройте отчёт Справочник.Контрагенты.
  2. Добавьте в настройки выгрузки все поля с телефонами.
  3. Экспортируйте в DBF или Excel через Файл → Сохранить как.

⚠️ В 7.7 нет таблицы «Контакты», поэтому дополнительные телефоны (кроме основных полей) выгрузить нельзя.

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

Для рассылки через Mailchimp, UniSender или СберМегаМаркет:

  1. Выгрузите данные в Excel (см. раздел 2).
  2. Добавьте колонку «Email» (если её нет, экспортируйте из таблицы «Контакты» с фильтром по виду Электронная почта).
  3. Сохраните файл в формате CSV с разделителем «;».
  4. Загрузите в сервис рассылки, сопоставив колонки с полями (имя, телефон, email).

💡 Для Viber-рассылок требуется формат с колонками «Имя» и «Телефон» (в формате 79XXXXXXXXX без пробелов).

Почему при выгрузке в XML телефоны отображаются как «Объект не найден»?

Эта ошибка возникает, если:

  • В целевой базе нет справочника ВидыКонтактнойИнформации.
  • Используется устаревшая версия конфигурации.
  • При выгрузке не были включены подчинённые объекты.

Решение:

  1. Откройте целевую базу в конфигураторе.
  2. Импортируйте справочник ВидыКонтактнойИнформации из исходной базы.
  3. Повторите выгрузку с галочкой «Включать подчинённые объекты».
Можно ли выгрузить историю изменений телефонов контрагентов?

Да, для этого:

  1. Используйте обработку «Выгрузка данных с историей» (доступна в каталоге 1С).
  2. В настройках укажите период (например, «за последний год»).
  3. Добавьте таблицу Контакты с полем ДатаИзменения.

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

Как автоматически обновлять телефоны в 1С из Excel?

Для обратной загрузки:

  1. Используйте обработку «Загрузка данных из Excel».
  2. Сопоставьте колонки:
    • 🔹 Наименование → поле «Контрагент»
    • 📞 Телефон → таблица «Контакты»
  3. Укажите правило обновления: «Добавлять новые контакты, обновлять существующие».

⚠️ Перед загрузкой сделайте резервную копию базы!