Список электронных адресов контрагентов из базы 1С: отчёт, запрос, файл для Excel

· 9 мин

Содержание

Быстрее всего выгрузить email из 1С 8.3 запросом к табличной части «Контактная информация» справочника Контрагенты: отбор по типу «Адрес электронной почты», результат сохраняется в Excel за минуту. Без запросов тот же список собирает универсальный отчёт: Отчеты → Универсальный отчет, объект «Контрагенты», таблица «Контактная информация», отбор по типу и кнопка сохранения в xlsx.

Способ выбирают по задаче. Разовый список для рассылки — отчёт или вывод списка. Выгрузка с отборами (только покупатели, только активные за год) — консоль запросов. Регулярная выгрузка для CRM или сервиса рассылок — своя внешняя обработка. Ниже каждый вариант по шагам: для 1С:Бухгалтерии 3.0, 1С:Управления торговлей 11 и других конфигураций на БСП.

Где 1С хранит электронные адреса и что проверить заранее

В современных типовых конфигурациях (БП 3.0, УТ 11, КА 2, ЗУП 3.1) почта хранится не в отдельном поле, а в табличной части КонтактнаяИнформация того объекта, которому принадлежит адрес. В каждой строке есть:

  • 📌 Тип — для почты это значение «Адрес электронной почты»;
  • 🏷️ Вид — конкретное поле карточки: «Email», «Email для обмена электронными документами» и другие виды, которые завели в базе;
  • ✉️ Представление — сам адрес строкой, именно его и выгружают.

Отсюда первое правило: сначала решите, чьи адреса нужны. Они лежат в разных справочниках.

Чьи адресаГде хранятся
Контрагенты (организации, ИП)справочник Контрагенты
Клиенты в УТ 11 и КА 2справочник Партнеры и контрагенты партнёра
Контактные лицасправочник контактных лиц (в УТ — КонтактныеЛицаПартнеров)
Сотрудникисправочник ФизическиеЛица
Пользователи программысправочник Пользователи

В старых конфигурациях (БП 2.0, УТ 10.3) контактная информация хранилась в регистре сведений КонтактнаяИнформация, а не в табличной части. Запросы из этой статьи для них нужно переписывать.

Проверка корректности адресов до выгрузки

Пустые и кривые адреса лучше увидеть заранее, а не после того, как сервис рассылки вернёт сотню отказов. Типичный мусор в базе:

  • 🚫 адрес без @ — в поле записали телефон или имя;
  • 🔗 два адреса в одной строке через ; или ,;
  • ␣ пробелы в начале, в конце или внутри адреса;
  • 🔁 один и тот же ящик у нескольких контрагентов (бухгалтерия группы компаний);
  • 🗑️ адреса у помеченных на удаление контрагентов.

Найти строки без «собаки» помогает отбор в запросе: ГДЕ НЕ КИ.Представление ПОДОБНО "%@%". Такой запрос приведён в разделе про консоль, в одну строку его легко добавить.

Выгрузка email через отчёт и список справочника

Этот способ не требует прав на внешние обработки и подходит обычному бухгалтеру.

Универсальный отчёт

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

Сохраняют результат кнопкой со значком дискеты на панели отчёта или через главное меню Файл → Сохранить как. В диалоге выберите тип «Лист Excel 2007-…» (.xlsx).

Если нужен ещё и ИНН, добавьте в поля отчёта «Ссылка.ИНН»: в настройках раскройте поле «Ссылка» плюсиком и выберите реквизит.

Вывод списка из формы справочника

В форме списка контрагентов есть команда Ещё → Вывести список. Она выводит в табличный документ то, что видно в колонках. Адрес почты в списке контрагентов БП 3.0 по умолчанию не показывается, поэтому этот путь годится в двух случаях:

  • 🧩 вы добавили колонку с почтой через Ещё → Изменить форму и она там доступна;
  • 📋 нужен список контрагентов для дальнейшей сверки, а адреса подтянете отдельно.

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

Печатные формы и стандартные отчёты

Отдельной типовой печатной формы «Список email» в БП 3.0 и УТ 11 нет. Адрес попадает в некоторые печатные формы документов (например, в реквизиты сторон), но собирать из них список вручную долго. Для массовой выгрузки берите отчёт или запрос.

Сохранение адресов в Excel без потерь

Отдельной типовой обработки с названием «Выгрузка данных в Excel» в типовых конфигурациях 8.3 нет. Есть «Загрузка данных из файла», но она работает в обратную сторону. В Excel адреса попадают тремя путями:

ПутьКогда подходитНа что смотреть
Сохранить отчёт как .xlsxразовая выгрузка до нескольких тысяч строкобъединённые ячейки шапки мешают фильтрам
Скопировать результат консоли в буфербыстро проверить и вставить в таблицупри больших объёмах копирование тормозит
Записать файл обработкой (xlsx или csv)регулярная выгрузка в сервис или CRMкодировка и разделитель

Перед тем как отдать файл в сервис рассылки, сделайте в Excel три вещи:

  1. Снимите объединение ячеек шапки и оставьте одну строку заголовков.
  2. Удалите дубли: Данные → Удалить дубликаты по столбцу с адресом.
  3. Разделите строки с двумя адресами: Данные → Текст по столбцам, разделитель ;.

Адреса контактных лиц и ИП — это персональные данные. Файл с ними не отправляйте по открытым каналам и не храните на общем диске без нужды. Для рекламной рассылки нужно предварительное согласие получателя.

Консоль запросов: выгрузка email с отборами

Консоль нужна, когда отчёт не справляется: нужны только покупатели, только контрагенты с договорами, адреса без дублей. Консоль запросов — внешняя обработка. Открывают её через главное меню Файл → Открыть, у пользователя должна быть роль с правом интерактивного открытия внешних обработок. Берите обработку из доверенного источника: внешний файл исполняется с вашими правами.

Базовый запрос по контрагентам

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

УПОРЯДОЧИТЬ ПО
    Контрагент

Результат выводится таблицей. В большинстве консолей его можно сохранить в табличный документ и дальше в xlsx.

Контрагенты, у которых почты нет

Этот запрос полезен перед рассылкой: сразу видно, кому дозаполнить карточку.

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

Адреса, которые требуют чистки

Замените условие КИ.Представление <> "" в первом запросе на одно из этих:

  • НЕ КИ.Представление ПОДОБНО "%@%" — адрес без «собаки»;
  • КИ.Представление ПОДОБНО "%;%" — несколько адресов в одной строке;
  • КИ.Представление ПОДОБНО "% %" — пробел внутри строки.

СКД вместо голого запроса

Если выгрузку будут повторять другие люди, сохраните её как отчёт на системе компоновки данных. Тот же запрос вставляется в набор данных схемы, а отборы (группа контрагентов, вид адреса) выносятся в пользовательские настройки. Дальше пользователь сам меняет отбор и жмёт Сформировать, не трогая текст запроса. Такой отчёт подключают как внешний через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (флаг использования дополнительных отчётов включается в том же разделе).

Автоматизация выгрузки обработкой

Для регулярной выгрузки в CRM или сервис рассылки удобнее обработка, которая пишет готовый файл. Пример процедуры для модуля внешней обработки. Она выполняется на сервере и записывает CSV, который Excel открывает с кириллицей без кракозябр:

&НаСервере
Процедура ВыгрузитьАдресаВCSV(ИмяФайла)

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

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

    Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    Запись.ЗаписатьСтроку("Контрагент;ИНН;Email");

    Пока Выборка.Следующий() Цикл
        Наименование = СтрЗаменить(Выборка.Контрагент, ";", ",");
        Запись.ЗаписатьСтроку(СтрШаблон("%1;%2;%3",
            Наименование, Выборка.ИНН, СокрЛП(Выборка.Email)));
    КонецЦикла;

    Запись.Закрыть();

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

Что в нём сделано осознанно:

  • 🔤 КодировкаТекста.UTF8 пишет файл с меткой BOM, поэтому Excel распознаёт кириллицу;
  • ✂️ точка с запятой в названии контрагента заменяется на запятую, иначе строка «поедет» по столбцам;
  • 🧹 СокрЛП убирает пробелы по краям адреса;
  • 🎯 в выборку попадают только строки с @.

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

Если вместо CSV нужен сразу Excel, выведите результат в ТабличныйДокумент и запишите его методом Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX).

Выгрузка по расписанию

Регламентное задание в типовую конфигурацию добавляют через расширение, а не правкой основной конфигурации: так обновления ставятся без конфликтов. Задание вызывает ту же процедуру и кладёт файл в общую папку, откуда его забирает CRM. Для файловой базы регламентные задания выполняются только при запущенном клиенте или настроенной публикации, поэтому для расписания нужна клиент-серверная база или веб-публикация.

Перед отправкой файла в сервис рассылки
Выполнено: 0 / 6

Типичные ошибки при выгрузке почты из 1С

Диагностика: выберите симптом

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

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

Можно ли выгрузить email сотрудников, а не контрагентов?
Да. Замените в запросе Справочник.Контрагенты на Справочник.ФизическиеЛица. В ЗУП 3.1 и БП 3.0 личная почта сотрудника хранится в контактной информации физического лица.
Как выгрузить почту только покупателей за последний год?
Добавьте в запрос соединение с документами реализации за период и отберите контрагентов, которые в них встречаются. В СКД период удобно вынести в параметр отчёта.
Нужна ли для выгрузки полная лицензия разработчика или Конфигуратор?
Нет. Универсальный отчёт и внешняя консоль запросов работают в обычном режиме «1С:Предприятие». Конфигуратор понадобится только для правки самой конфигурации или создания расширения.
Сохранится ли выгрузка после обновления конфигурации?
Внешняя обработка и внешний отчёт хранятся отдельным файлом и обновлением не затираются. Если в новом релизе изменится структура контактной информации, текст запроса придётся поправить.
Можно ли загрузить исправленные адреса обратно в 1С?
Можно, но массовая загрузка контактной информации требует обработки, которая записывает строки в табличную часть через программный интерфейс БСП. Перед загрузкой сделайте резервную копию базы.

Источники

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