Экспорт клиентской базы из 1С:Предприятия в Excel, XML и JSON
Содержание
Чтобы выгрузить покупателей из 1С в Excel, откройте список контрагентов (в Бухгалтерии 3.0 — Справочники → Покупки и продажи → Контрагенты), нажмите Ещё → Вывести список..., отметьте нужные колонки и сохраните полученную таблицу через Файл → Сохранить как в формате .xlsx. Если нужны только те, кто реально покупал, выгрузите оборотно-сальдовую ведомость по счёту 62 с разбивкой по контрагентам.
Типичная ситуация: отдел продаж переходит в CRM и просит «базу клиентов из 1С с ИНН и телефонами к обеду». Простой список закрывает половину задачи. Телефоны, адреса и отбор по факту продаж требуют отчёта или запроса. Для регулярной передачи данных в другую систему нужен XML, JSON или скрипт по расписанию.
Где в 1С хранится база покупателей и что подготовить
В разных конфигурациях покупатели лежат в разных справочниках. От этого зависит, что именно выгружать.
| Конфигурация | Где хранятся покупатели | Как открыть |
|---|---|---|
| Бухгалтерия предприятия 3.0 | Справочник «Контрагенты», единый для покупателей и поставщиков | Справочники → Покупки и продажи → Контрагенты |
| Управление торговлей 11, КА 2, ERP | «Партнёры» (флажок «Клиент») и подчинённые им «Контрагенты» — юрлица и ИП партнёра | Через раздел продаж или ≡ → Функции для технического специалиста → Справочники |
В Бухгалтерии 3.0 признака «покупатель» в карточке нет. Покупателем контрагента делает документ продажи или обороты по счёту 62. Поэтому «все контрагенты» и «все покупатели» — две разные выгрузки.
В УТ 11 и ERP клиент — это партнёр. У одного партнёра может быть несколько контрагентов с разными ИНН. Для CRM обычно выгружают партнёров, для сверки и документов — контрагентов.
Перед выгрузкой решите три вопроса:
- 📋 Состав полей. Наименование, полное наименование, ИНН, КПП, телефон, e-mail, адрес, менеджер.
- 🗂️ Отбор. Все карточки, только без пометки удаления, только с продажами за период.
- 📦 Формат. Excel — для людей, XML и JSON — для программ.
Телефоны и адреса покупателей-физлиц и ИП — персональные данные. Передавать их в стороннюю CRM или подрядчику можно только при наличии законного основания по закону № 152-ФЗ. Файл с базой не стоит пересылать в открытых мессенджерах.
Выгрузка списка контрагентов в Excel из формы списка
Самый быстрый способ. Работает в любой конфигурации на платформе 8.3 с интерфейсом «Такси» и не требует обработок.
- Откройте список контрагентов (или партнёров в УТ 11).
- Переключите вид на плоский:
Ещё → Режим просмотра → Список. В иерархическом режиме выводится только текущая папка. - При необходимости отберите строки: строкой поиска или через
Ещё → Настроить списокс отбором по полю, например «Пометка удаления = Нет». - Нажмите
Ещё → Вывести список.... - В окне вывода оставьте флажки у нужных колонок. Формат вывода — «Табличный документ».
- Нажмите
ОК. Откроется таблица со всеми строками списка. - Сохраните её:
≡ → Файл → Сохранить как, тип файла «Лист Microsoft Excel 2007 (*.xlsx)».
В окне «Вывести список
» доступны только колонки, которые есть у динамического списка. Если ИНН или КПП не видно, добавьте их заранее: Ещё → Изменить форму и отметьте поля в дереве реквизитов.
💡 Для пары десятков строк хватает выделения и копирования. Выделите строки мышью или Ctrl+A, нажмите Ctrl+C и вставьте в Excel. Колонки сохранятся, но иерархия и скрытые поля — нет.
Чего этот способ не даст:
- 📞 телефонов и адресов — они хранятся в табличной части контактной информации, а не в колонках списка;
- 🧾 отбора «только покупатели» в Бухгалтерии 3.0;
- 🔁 автоматического повторения — каждый раз всё делается руками.
Как выгрузить только покупателей: ОСВ по счёту 62 и отчёты продаж
Когда нужна именно база покупателей, а не весь справочник, удобнее идти от учёта.
В Бухгалтерии 3.0:
- Откройте
Отчеты → Стандартные отчеты → Оборотно-сальдовая ведомость по счету. - Укажите период, например с начала прошлого года, и счёт
62. - В настройках отчёта на вкладке группировок оставьте только «Контрагенты», без договоров и документов.
- Нажмите
Сформировать. - Сохраните результат через
≡ → Файл → Сохранить какв.xlsx.
В ведомость попадут все, у кого были сальдо или обороты по 62. Это и покупатели, и те, кто платил аванс без отгрузки. Заодно видны суммы продаж и долги, что пригодится отделу продаж для сегментации.
Если нужна выручка в разрезе номенклатуры, используйте отчёт по продажам в разделе Продажи. Состав колонок там настраивается, результат сохраняется тем же способом.
В УТ 11 и ERP покупатели видны в списке партнёров с отбором по флажку «Клиент». Для выборки по факту продаж подойдут отчёты по продажам из раздела Продажи с группировкой по клиенту.
ИНН в ведомость не выводится. Если он нужен, сохраните ведомость, выгрузите отдельно список контрагентов с ИНН и сведите таблицы в Excel через ВПР по наименованию. Надёжнее — один запрос из консоли, о нём ниже.
Универсальные обработки и отчёты для экспорта клиентов
Когда стандартного списка мало, а писать запросы не хочется, выручают универсальные инструменты.
Универсальный отчёт. В Бухгалтерии 3.0 он есть в Отчеты → Стандартные отчеты → Универсальный отчет. Тип объекта — «Справочник», объект — «Контрагенты». В настройках выберите поля, отборы и сортировку, сформируйте и сохраните в Excel. В отличие от списка, здесь доступны все реквизиты справочника, включая скрытые на форме.
Универсальный обмен данными в формате XML. Обработка входит в типовые конфигурации. Открыть её можно через ≡ → Функции для технического специалиста → Обработки. Она выгружает данные по правилам обмена в XML-файл, который принимает другая база 1С.
«Выгрузка и загрузка данных XML». Внешняя обработка (.epf) для переноса объектов между базами с одинаковой структурой. Отметили справочник «Контрагенты», указали файл — получили XML. Подходит, чтобы перенести контрагентов в копию базы
, но не в чужую программу: формат внутренний.
| Инструмент | Что получаем | Когда выбирать |
|---|---|---|
| Вывести список | Excel с колонками списка | Быстро, разово, без контактов |
| ОСВ по 62 | Покупатели с оборотами | Нужны только реальные клиенты |
| Универсальный отчёт | Excel со всеми реквизитами | Нужны скрытые поля, без программирования |
| Консоль запросов | Любая выборка, контакты, отборы | Нужна точная таблица под CRM |
| XML-обмен, EnterpriseData | XML для другой базы 1С | Перенос между базами |
| OData, COM-скрипт | JSON или файл по расписанию | Регулярная интеграция |
Внешние обработки скачивайте только из проверенных источников. Обработка из интернета выполняет любой код с правами вашего пользователя, в том числе изменяет и удаляет данные.
Выгрузка покупателей в XML и JSON для других программ
Для передачи клиентов в другую систему таблица Excel неудобна. Нужен структурированный формат.
XML по формату EnterpriseData
Современные типовые конфигурации обмениваются данными через формат EnterpriseData. Настраивается это в Администрирование → Синхронизация данных. Там можно создать обмен с другой программой 1С или выгрузку в файл. Контрагенты, договоры и контактные данные передаются в универсальном виде, их понимают БП, УТ, УНФ и ERP.
Для нетиповой структуры или стороннего приёмника пишут собственные правила в «Конвертации данных». Это работа программиста: разработчик задаёт, какой объект в какое поле файла идёт.
JSON через стандартный интерфейс OData
Платформа 8.3 умеет отдавать данные по протоколу OData в JSON. Порядок:
- Опубликуйте базу на веб-сервере (IIS или Apache) из Конфигуратора с флажком публикации стандартного интерфейса OData.
- В режиме предприятия откройте настройку стандартного интерфейса OData (она находится в разделе
Администрирование, обычно рядом с синхронизацией данных) и разрешите справочник «Контрагенты». - Заведите отдельного пользователя только с правами чтения.
После этого внешняя система получает список запросом:
curl -u "odata_reader:пароль" \
"http://server/buh/odata/standard.odata/Catalog_Контрагенты?\$format=json&\$select=Description,ИНН,КПП"
Description — это наименование, остальные реквизиты называются как в конфигурации. Для веб-приложений и Python-скриптов это самый чистый путь: без промежуточных файлов.
JSON из встроенного языка
Если веб-сервера нет, программист пишет короткую обработку с объектом ЗаписьJSON (он доступен с платформы 8.3.6). Результат запроса обходится в цикле и записывается в файл. Тот же запрос, что ниже в консоли, подходит и для этой обработки.
Консоль запросов: таблица покупателей с ИНН, телефонами и адресами
Это главный приём для выгрузки «под CRM». Один запрос собирает реквизиты, контакты и отбор по продажам.
Консоль запросов — внешняя обработка. Откройте её через ≡ → Файл → Открыть. Нужна роль, разрешающая открывать внешние обработки; у администратора она есть.
Запрос для Бухгалтерии 3.0 — покупатели с отгрузками за период, по одной строке на контрагента:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование,
Контрагенты.НаименованиеПолное КАК ПолноеНаименование,
Контрагенты.ИНН КАК ИНН,
Контрагенты.КПП КАК КПП,
МАКСИМУМ(ВЫБОР
КОГДА КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
ТОГДА КИ.Представление
КОНЕЦ) КАК Телефон,
МАКСИМУМ(ВЫБОР
КОГДА КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ТОГДА КИ.Представление
КОНЕЦ) КАК Email,
МАКСИМУМ(ВЫБОР
КОГДА КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
ТОГДА КИ.Представление
КОНЕЦ) КАК Адрес
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ
ПО КИ.Ссылка = Контрагенты.Ссылка
ГДЕ
НЕ Контрагенты.ЭтоГруппа
И НЕ Контрагенты.ПометкаУдаления
И Контрагенты.Ссылка В
(ВЫБРАТЬ РАЗЛИЧНЫЕ
Реализация.Контрагент
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Проведен
И Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
СГРУППИРОВАТЬ ПО
Контрагенты.Наименование,
Контрагенты.НаименованиеПолное,
Контрагенты.ИНН,
Контрагенты.КПП
УПОРЯДОЧИТЬ ПО
Наименование
Что здесь сделано:
- 🔗 контактная информация присоединена левым соединением, поэтому контрагенты без телефона не теряются;
- 🧮
МАКСИМУМс группировкой схлопывает несколько строк контактов в одну строку на клиента. Если телефонов два, попадёт один; - 🛒 вложенный запрос оставляет только тех, кому были проведённые реализации. Уберите это условие — получите весь справочник;
- 🗓️ параметры
&НачалоПериодаи&КонецПериодазадаются на вкладке параметров консоли.
Результат выводится в табличный документ и сохраняется в .xlsx так же, как список. В УТ 11 логика та же, но вместо контрагентов логичнее брать Справочник.Партнеры с условием Партнеры.Клиент и его табличную часть контактной информации.
Нужны все телефоны, а не один? Уберите группировку и МАКСИМУМ. Получите по строке на каждый контакт, а в Excel разверните их сводной таблицей.
Автоматическая выгрузка базы покупателей: COM-соединение и скрипты
Когда CRM ждёт свежую базу каждую ночь, ручные способы не годятся. Варианты автоматизации:
- 🌐 OData — внешняя система сама забирает JSON по расписанию. Описано выше.
- 🧩 COM-соединение — скрипт на PowerShell, Python или VBScript подключается к базе и выполняет запрос.
- ⚙️ Пакетный запуск —
1cv8.exe ENTERPRISEс параметром/Executeзапускает внешнюю обработку , которая пишет файл и закрывает сеанс. Ставится в планировщик Windows. - 🕒 Регламентное задание в расширении конфигурации — выгрузка на сервере 1С без внешних скриптов.
Пример COM-скрипта на PowerShell
Компонента V83.COMConnector должна быть зарегистрирована той же разрядности, что и PowerShell. Регистрация от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1342\bin\comcntr.dll"
Номер версии в пути подставьте свой — по папке установленной платформы.
$connector = New-Object -ComObject V83.COMConnector
$base = $connector.Connect('File="D:\Bases\Buh";Usr="Выгрузка";Pwd="пароль"')
$query = $base.NewObject("Запрос")
$query.Text = "ВЫБРАТЬ Контрагенты.Наименование КАК Name, Контрагенты.ИНН КАК Inn, Контрагенты.КПП КАК Kpp
ИЗ Справочник.Контрагенты КАК Контрагенты
ГДЕ НЕ Контрагенты.ЭтоГруппа И НЕ Контрагенты.ПометкаУдаления"
$selection = $query.Execute().Select()
$rows = @()
while ($selection.Next()) {
$rows += [pscustomobject]@{ Name = $selection.Name; Inn = $selection.Inn; Kpp = $selection.Kpp }
}
$rows | Export-Csv -Path "D:\Export\customers.csv" -Encoding UTF8 -NoTypeInformation -Delimiter ";"
Латинские псевдонимы полей (КАК Name) упрощают обращение к ним из скрипта. Для серверной базы строка подключения выглядит как Srvr="server";Ref="buh";Usr="...";Pwd="...".
Несколько правил для рабочей автоматизации:
- Создайте в 1С отдельного пользователя с правами только на чтение нужных справочников.
- Не храните пароль в тексте скрипта, если к папке есть доступ у других сотрудников.
- Сохраняйте файл
.ps1в UTF-8 с BOM, иначе Windows PowerShell 5.1 исказит кириллицу в тексте запроса. - Запускайте выгрузку ночью: COM-соединение — это обычный сеанс, он нагружает базу наравне с пользователями.
Проблемы при экспорте контрагентов из 1С и как их решить
Ещё → Режим просмотра → Список и повторите вывод. Проверьте также, не включён ли отбор или строка поиска..xlsx из 1С или при импорте CSV задайте для колонки ИНН текстовый формат.Данные → Из текстового/CSV-файла и выберите кодировку 65001 (UTF-8).МАКСИМУМ или отбор по одному виду контакта.comcntr.dll не зарегистрирована или её разрядность не совпадает с разрядностью PowerShell. Зарегистрируйте компоненту нужной разрядности или запустите 32-битный PowerShell из C:\Windows\SysWOW64\WindowsPowerShell\v1.0.Ещё одна частая неприятность — дубли в самом справочнике: один ИНН под двумя карточками. Перед передачей базы в CRM отсортируйте выгрузку по ИНН и найдите повторы условным форматированием Excel. Объединяют дубли в 1С штатной обработкой поиска и удаления дублей, а не удалением карточки вручную, иначе ссылки в документах останутся битыми.
Частые вопросы
Можно ли выгрузить покупателей из 1С без прав администратора?
Ещё → Вывести список... и ОСВ по счёту 62 работает с обычной ролью бухгалтера. Консоль запросов и внешние обработки обычно требуют расширенных прав.Как выгрузить покупателей вместе с суммами продаж?
Выгрузятся ли договоры и банковские счета покупателей?
Как перенести покупателей в другую базу 1С без Excel?
Можно ли выгрузить клиентов из облачной 1С?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»