Список электронных адресов контрагентов из базы 1С: отчёт, запрос, файл для Excel
Содержание
Быстрее всего выгрузить 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 через отчёт и список справочника
Этот способ не требует прав на внешние обработки и подходит обычному бухгалтеру.
Универсальный отчёт
- Откройте
Отчеты → Универсальный отчет(в БП 3.0 раздел «Отчеты», в УТ 11 и КА 2 отчёт открывается через поиск по разделам или вНСИ и администрирование). - В шапке выберите тип объектов «Справочник», объект «Контрагенты».
- В поле таблицы выберите табличную часть «Контактная информация» вместо основных данных.
- Нажмите
Настройки, в отборе добавьте поле «Тип» со значением «Адрес электронной почты». - В полях отчёта оставьте «Ссылка» (это контрагент), «Вид» и «Представление».
- Нажмите
Сформировать.
Сохраняют результат кнопкой со значком дискеты на панели отчёта или через главное меню Файл → Сохранить как. В диалоге выберите тип «Лист Excel 2007-…» (.xlsx).
Если нужен ещё и ИНН, добавьте в поля отчёта «Ссылка.ИНН»: в настройках раскройте поле «Ссылка» плюсиком и выберите реквизит.
Вывод списка из формы справочника
В форме списка контрагентов есть команда Ещё → Вывести список. Она выводит в табличный документ то, что видно в колонках. Адрес почты в списке контрагентов БП 3.0 по умолчанию не показывается, поэтому этот путь годится в двух случаях:
- 🧩 вы добавили колонку с почтой через
Ещё → Изменить формуи она там доступна; - 📋 нужен список контрагентов для дальнейшей сверки, а адреса подтянете отдельно.
На практике для почты универсальный отчёт удобнее: он сразу даёт адреса в строках.
Печатные формы и стандартные отчёты
Отдельной типовой печатной формы «Список email» в БП 3.0 и УТ 11 нет. Адрес попадает в некоторые печатные формы документов (например, в реквизиты сторон), но собирать из них список вручную долго. Для массовой выгрузки берите отчёт или запрос.
Сохранение адресов в Excel без потерь
Отдельной типовой обработки с названием «Выгрузка данных в Excel» в типовых конфигурациях 8.3 нет. Есть «Загрузка данных из файла», но она работает в обратную сторону. В Excel адреса попадают тремя путями:
| Путь | Когда подходит | На что смотреть |
|---|---|---|
Сохранить отчёт как .xlsx | разовая выгрузка до нескольких тысяч строк | объединённые ячейки шапки мешают фильтрам |
| Скопировать результат консоли в буфер | быстро проверить и вставить в таблицу | при больших объёмах копирование тормозит |
Записать файл обработкой (xlsx или csv) | регулярная выгрузка в сервис или CRM | кодировка и разделитель |
Перед тем как отдать файл в сервис рассылки, сделайте в Excel три вещи:
- Снимите объединение ячеек шапки и оставьте одну строку заголовков.
- Удалите дубли:
Данные → Удалить дубликатыпо столбцу с адресом. - Разделите строки с двумя адресами:
Данные → Текст по столбцам, разделитель;.
Адреса контактных лиц и ИП — это персональные данные. Файл с ними не отправляйте по открытым каналам и не храните на общем диске без нужды. Для рекламной рассылки нужно предварительное согласие получателя.
Консоль запросов: выгрузка email с отборами
Консоль нужна, когда отчёт не справляется: нужны только покупатели, только контрагенты с договорами, адреса без дублей. Консоль запросов — внешняя обработка. Открывают её через главное меню Файл → Открыть, у пользователя должна быть роль с правом интерактивного открытия внешних обработок. Берите обработку из доверенного источника: внешний файл исполняется с вашими правами.
Базовый запрос по контрагентам
ВЫБРАТЬ РАЗЛИЧНЫЕ
КИ.Ссылка.Наименование КАК Контрагент,
КИ.Ссылка.ИНН КАК ИНН,
КИ.Вид КАК ВидАдреса,
КИ.Представление КАК Email
ИЗ
Справочник.Контрагенты.КонтактнаяИнформация КАК КИ
ГДЕ
КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
И НЕ КИ.Ссылка.ПометкаУдаления
И КИ.Представление <> ""
УПОРЯДОЧИТЬ ПО
Контрагент
Результат выводится таблицей. В большинстве консолей его можно сохранить в табличный документ и дальше в xlsx.
Контрагенты, у которых почты нет
Этот запрос полезен перед рассылкой: сразу видно, кому дозаполнить карточку.
ВЫБРАТЬ
К.Ссылка КАК Контрагент,
К.ИНН КАК ИНН
ИЗ
Справочник.Контрагенты КАК К
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ
ПО КИ.Ссылка = К.Ссылка
И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ГДЕ
НЕ К.ЭтоГруппа
И НЕ К.ПометкаУдаления
И КИ.Ссылка ЕСТЬ NULL
Адреса, которые требуют чистки
Замените условие КИ.Представление <> "" в первом запросе на одно из этих:
НЕ КИ.Представление ПОДОБНО "%@%"— адрес без «собаки»;КИ.Представление ПОДОБНО "%;%"— несколько адресов в одной строке;КИ.Представление ПОДОБНО "% %"— пробел внутри строки.
СКД вместо голого запроса
Если выгрузку будут повторять другие люди, сохраните её как отчёт на системе компоновки данных. Тот же запрос вставляется в набор данных схемы, а отборы (группа контрагентов, вид адреса) выносятся в пользовательские настройки. Дальше пользователь сам меняет отбор и жмёт Сформировать, не трогая текст запроса. Такой отчёт подключают как внешний через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (флаг использования дополнительных отчётов включается в том же разделе).
Автоматизация выгрузки обработкой
Для регулярной выгрузки в CRM или сервис рассылки удобнее обработка, которая пишет готовый файл. Пример процедуры для модуля внешней обработки. Она выполняется на сервере и записывает CSV, который Excel открывает с кириллицей без кракозябр:
&НаСервере
Процедура ВыгрузитьАдресаВCSV(ИмяФайла)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| КИ.Ссылка.Наименование КАК Контрагент,
| КИ.Ссылка.ИНН КАК ИНН,
| КИ.Представление КАК Email
|ИЗ
| Справочник.Контрагенты.КонтактнаяИнформация КАК КИ
|ГДЕ
| КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
| И НЕ КИ.Ссылка.ПометкаУдаления
| И КИ.Представление ПОДОБНО ""%@%""
|УПОРЯДОЧИТЬ ПО
| Контрагент";
Выборка = Запрос.Выполнить().Выбрать();
Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Контрагент;ИНН;Email");
Пока Выборка.Следующий() Цикл
Наименование = СтрЗаменить(Выборка.Контрагент, ";", ",");
Запись.ЗаписатьСтроку(СтрШаблон("%1;%2;%3",
Наименование, Выборка.ИНН, СокрЛП(Выборка.Email)));
КонецЦикла;
Запись.Закрыть();
КонецПроцедуры
Что в нём сделано осознанно:
- 🔤
КодировкаТекста.UTF8пишет файл с меткой BOM, поэтому Excel распознаёт кириллицу; - ✂️ точка с запятой в названии контрагента заменяется на запятую, иначе строка «поедет» по столбцам;
- 🧹
СокрЛПубирает пробелы по краям адреса; - 🎯 в выборку попадают только строки с
@.
Учтите, что ИмяФайла — путь на сервере 1С. В клиент-серверной базе файл окажется на сервере, а не на вашем компьютере. Для файла на рабочем месте пользователя сформируйте его во временном каталоге сервера, поместите во временное хранилище и получите на клиенте методом ПолучитьФайл или его асинхронным аналогом.
Если вместо CSV нужен сразу Excel, выведите результат в ТабличныйДокумент и запишите его методом Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX).
Выгрузка по расписанию
Регламентное задание в типовую конфигурацию добавляют через расширение, а не правкой основной конфигурации: так обновления ставятся без конфликтов. Задание вызывает ту же процедуру и кладёт файл в общую папку, откуда его забирает CRM. Для файловой базы регламентные задания выполняются только при запущенном клиенте или настроенной публикации, поэтому для расписания нужна клиент-серверная база или веб-публикация.
Типичные ошибки при выгрузке почты из 1С
Справочник.Партнеры.КонтактнаяИнформация.РегистрСведений.КонтактнаяИнформация или обновите конфигурацию.;, пробелы или опечатка в домене. Отберите проблемные строки запросами с ПОДОБНО, исправьте в карточках 1С и выгрузите заново.Ещё одна частая ошибка — выгрузить все виды адресов вместе. У контрагента может быть отдельный адрес для ЭДО или для отправки счетов. Если рассылка адресована бухгалтерии, отберите нужный вид в поле «Вид», иначе письма уйдут не тем людям.
Частые вопросы
Можно ли выгрузить email сотрудников, а не контрагентов?
Справочник.Контрагенты на Справочник.ФизическиеЛица. В ЗУП 3.1 и БП 3.0 личная почта сотрудника хранится в контактной информации физического лица.Как выгрузить почту только покупателей за последний год?
Нужна ли для выгрузки полная лицензия разработчика или Конфигуратор?
Сохранится ли выгрузка после обновления конфигурации?
Можно ли загрузить исправленные адреса обратно в 1С?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»
- Федеральный закон от 13.03.2006 № 38-ФЗ «О рекламе», ст. 18