Выгрузка контрагентов из 1С в Excel, CSV и XML: пять рабочих способов
Содержание
Самый быстрый способ скачать базу клиентов из 1С — открыть список контрагентов, нажать Ещё → Вывести список..., отметить нужные колонки и сохранить полученную таблицу как файл .xlsx. В Бухгалтерии 3.0 список лежит в разделе Справочники → Контрагенты. На всё уходит пара минут, программист не нужен.
Частое заблуждение — что выгрузка клиентов требует доступа к Конфигуратору или платной обработки. Не требует. Но у простого способа есть предел: телефоны, email и адреса в список обычно не попадают. Для полной базы с контактами нужен отчёт или запрос, а для регулярной выгрузки — автоматизация. Все варианты разобраны по порядку, от простого к техническому.
Что проверить в справочнике до выгрузки клиентов
Мусор в справочнике переедет в файл вместе с клиентами. Десять минут на подготовку избавят от ручной чистки в Excel.
🔍 Что посмотреть:
- Помеченные на удаление. Они видны в списке перечёркнутыми. Отфильтруйте их или включите в выгрузку отдельной колонкой, чтобы потом убрать.
- Группы. Если справочник иерархический,
Вывести списоквыведет и строки-группы («Покупатели», «Поставщики»). Переключите список в режим без иерархии или удалите группы в Excel. - Дубли. Один и тот же клиент, заведённый дважды с разным написанием. Проверьте их по ИНН: отсортируйте список по этой колонке, совпадения встанут рядом. В типовых конфигурациях есть обработка «Поиск и удаление дублей» в разделе
Администрирование. - Пустые ИНН и КПП. Если файл нужен для сверки или загрузки в другую программу, без ИНН строки не сопоставятся.
👥 Кто клиент, а кто нет. В Бухгалтерии 3.0 покупатели и поставщики лежат в одном справочнике. Отдельного признака «клиент» там нет. Отобрать покупателей можно по группе (если справочник так разбит) или по факту продаж — об этом ниже, в разделе про запросы.
В Управлении торговлей 11 устроено иначе: есть справочник «Партнёры» (с кем работаем) и «Контрагенты» (юрлица и ИП, с которыми заключаются договоры). У партнёра стоят флажки «Клиент», «Поставщик». Для базы клиентов в УТ выгружайте партнёров с флажком «Клиент», а реквизиты подтягивайте из связанных контрагентов.
🔐 Права. Чтобы сохранить список в файл, у пользователя должно быть право платформы «Вывод». Если команда Вывести список... не активна или таблица не сохраняется — это вопрос к администратору базы, а не ошибка программы.
Способ 1. Скачать список клиентов из 1С в Excel за пару минут
Этот способ подходит, когда нужны наименования, ИНН, КПП и то, что уже видно в колонках списка.
- Откройте список контрагентов (
Справочники → Контрагентыв Бухгалтерии 3.0). - При необходимости наложите отбор: по группе, по пометке удаления, через строку поиска.
- Нажмите
Ещё → Вывести список.... - В окне отметьте колонки, которые нужны в файле. Формат вывода — «Табличный документ».
- Нажмите «ОК». Откроется таблица с данными.
- Сохраните её: кнопка с дискетой или
Ctrl+S. В поле типа файла выберите «Лист Excel 2007-…» (.xlsx).
💡 Колонок не хватает? Добавьте их в сам список: Ещё → Изменить форму... и отметьте нужные поля. После этого они появятся и в окне Вывести список.
Есть вариант ещё короче. Выделите строки в списке (Ctrl+A выделяет все загруженные), скопируйте Ctrl+C и вставьте в Excel. Колонки разложатся по ячейкам. Минус — в больших списках копируется только то, что список успел подгрузить, поэтому для тысяч записей надёжнее Вывести список.
ИНН в Excel может превратиться в число и потерять ведущий ноль, а длинные значения — уйти в экспоненту вида 7,7E+09. Перед вставкой задайте колонке формат «Текстовый» или сохраняйте сразу в .xlsx из 1С: там значения остаются строками.
Способ 2. Выгрузка базы клиентов с телефонами и email через отчёт
Контактная информация в 1С хранится не в колонках справочника, а в отдельной табличной части. Поэтому в обычный список телефоны и почта часто не попадают. Здесь помогает «Универсальный отчёт», он есть в разделе Отчеты Бухгалтерии 3.0.
- Откройте «Универсальный отчёт».
- Выберите тип объекта «Справочник» и объект «Контрагенты».
- Откройте настройки отчёта (кнопка «Настройки») и перейдите в расширенный режим.
- На вкладке полей добавьте нужные реквизиты: наименование, ИНН, КПП, полное наименование.
- Раскройте реквизит «Контактная информация» и добавьте поля представления телефона, email, адреса.
- На вкладке отборов исключите помеченные на удаление и группы.
- Сформируйте отчёт и сохраните его в
.xlsxтак же, как в способе 1.
Настройку отчёта можно сохранить и потом формировать одним нажатием. Это удобно, если менеджеры просят свежую базу раз в месяц.
Способ 3. Консоль запросов: клиенты с контактами и суммой продаж
Консоль запросов — внешняя обработка (.epf), её используют специалисты по 1С. Она даёт полную свободу: любые поля, любые отборы, данные из нескольких таблиц сразу. Открывается через главное меню: ≡ → Файл → Открыть. Если база запрещает открывать внешние обработки, нужна роль с таким правом.
Пример запроса для Бухгалтерии 3.0. Он выводит контрагентов с телефоном и email:
ВЫБРАТЬ
К.Наименование КАК Наименование,
К.ИНН КАК ИНН,
К.КПП КАК КПП,
Тел.Представление КАК Телефон,
Почта.Представление КАК Email
ИЗ
Справочник.Контрагенты КАК К
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК Тел
ПО Тел.Ссылка = К.Ссылка
И Тел.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК Почта
ПО Почта.Ссылка = К.Ссылка
И Почта.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
ГДЕ
НЕ К.ЭтоГруппа
И НЕ К.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
Наименование
Если у клиента два телефона и две почты, строка размножится: 2 × 2 = 4 строки на одного контрагента. Чтобы этого избежать, выгружайте телефоны и email отдельными запросами или сверните дубли в Excel по ИНН.
Как оставить только тех, кто покупал. В Бухгалтерии 3.0 удобно опереться на документы «Реализация (акт, накладная, УПД)». Добавьте в условие:
И К.Ссылка В
(ВЫБРАТЬ РАЗЛИЧНЫЕ Р.Контрагент
ИЗ Документ.РеализацияТоваровУслуг КАК Р
ГДЕ Р.Проведен
И Р.Дата МЕЖДУ &НачалоПериода И &КонецПериода)
Параметры периода задаются в консоли на вкладке параметров. Так получится список активных клиентов, скажем, за последние 12 месяцев, без поставщиков и «спящих» контрагентов.
Результат запроса консоль выводит в табличный документ. Дальше — сохранение в .xlsx, как в первом способе.
Запросы только читают данные и ничего в базе не меняют. Но тяжёлый запрос без отборов в большой серверной базе нагружает сервер. Запускайте его вне пиковых часов.
Способ 4. Универсальные обработки: перенос клиентов в другую базу 1С
Если цель — не таблица для людей, а перенос справочника в другую базу 1С, Excel не лучший посредник. Он теряет ссылки, типы данных и контактную информацию в исходной структуре. Для переноса используют XML.
📦 Какие инструменты есть:
- «Выгрузка и загрузка данных XML». Внешняя обработка с диска ИТС. Выгружает выбранные объекты в XML и загружает их в базу с такой же конфигурацией. Отметьте справочник «Контрагенты», при необходимости — связанные объекты (банковские счета, договоры), и выгрузите.
- «Универсальный обмен данными в формате XML». Работает по правилам обмена, которые готовят в конфигурации «Конвертация данных ». Нужен, когда базы разные: например, перенос клиентов из УТ в Бухгалтерию.
- Синхронизация данных. Если между базами уже настроен типовой обмен (раздел
Администрирование → Синхронизация данных), клиенты переходят сами, и отдельная выгрузка не нужна.
Загрузку XML всегда делайте сначала в копию базы -приёмника. При совпадении идентификаторов загрузка перезапишет существующие элементы, и откатить это без резервной копии нельзя.
Сравнение форматов: Excel, CSV, MXL или XML
Формат выбирают под задачу, а не по привычке. Короткая шпаргалка:
| Формат | Для чего подходит | Что теряется | Откуда взять |
|---|---|---|---|
.xlsx | Рассылки, CRM, работа менеджеров | Связи между объектами, типы | Сохранение табличного документа |
.csv / .txt | Загрузка в сервисы и самописные системы | Форматирование; риск сбоя кодировки | Табличный документ, скрипт |
.mxl | Передать коллеге с 1С, сохранить «как есть» | Ничего, но открывается только в 1С | Сохранение табличного документа |
.xml | Перенос в другую базу 1С | Читать глазами неудобно | Обработки выгрузки |
| JSON (OData) | Интеграция с сайтом, CRM, BI | Нужна веб-публикация базы | Стандартный интерфейс OData |
Сервис просит CSV и показывает кракозябры вместо кириллицы? Пересохраните файл в кодировке UTF-8. Сам Excel при открытии CSV лучше понимает UTF-8 с BOM — скрипт ниже пишет именно так.
Способ 5. Автоматическая выгрузка клиентов из 1С скриптом
Когда клиентов надо отдавать в CRM каждую ночь, ручная выгрузка превращается в рутину. Её снимают скриптом, который сам подключается к базе.
COM-соединение
Компонента V83.COMConnector позволяет внешней программе на Windows открыть базу и выполнить запрос. Подготовка:
- Зарегистрируйте компоненту от имени администратора. Путь к своей версии платформы подставьте сами:
regsvr32 "C:\Program Files\1cv8\8.3.24.1342\bin\comcntr.dll" - Заведите в базе отдельного пользователя только с правами на чтение нужных данных.
- Проверьте разрядность: 64-битный Python работает с 64-битной платформой, 32-битный — с 32-битной.
Пример на Python (нужен пакет pywin32). Псевдонимы полей в запросе латинские — так проще обращаться к ним из скрипта:
import csv
import win32com.client
v8 = win32com.client.Dispatch("V83.COMConnector")
# файловая база; для серверной: 'Srvr="srv1c";Ref="buh";Usr=...;Pwd=...;'
conn = v8.Connect('File="C:\\Bases\\Buh";Usr="Vygruzka";Pwd="********";')
q = conn.NewObject("Query")
q.Text = """
ВЫБРАТЬ К.Наименование КАК Name, К.ИНН КАК Inn, К.КПП КАК Kpp
ИЗ Справочник.Контрагенты КАК К
ГДЕ НЕ К.ЭтоГруппа И НЕ К.ПометкаУдаления
"""
sel = q.Execute().Select()
with open("clients.csv", "w", newline="", encoding="utf-8-sig") as f:
w = csv.writer(f, delimiter=";")
w.writerow(["Наименование", "ИНН", "КПП"])
while sel.Next():
w.writerow([sel.Name, sel.Inn, sel.Kpp])
Скрипт ставят в планировщик заданий Windows. Каждое подключение занимает лицензию, как обычный сеанс, — держите это в уме, если лицензий впритык.
Пароль в открытом виде в скрипте — уязвимость. Храните его в переменной окружения или в защищённом хранилище и выдавайте пользователю выгрузки минимальные права.
OData для веб-интеграций
Если база опубликована на веб-сервере, справочник можно читать по HTTP без COM и без Windows на стороне клиента. Состав доступных объектов задают в разделе Администрирование → Синхронизация данных, через настройку стандартного интерфейса OData: отметьте там справочник «Контрагенты». Запрос выглядит так:
http://server/buh/odata/standard.odata/Catalog_Контрагенты?$format=json
Ответ приходит в JSON, его забирает CRM, сайт или BI-система. Доступ проверяется по логину и паролю пользователя 1С.
Ошибки при выгрузке и как их избежать
Отдельно о законе. Если среди клиентов есть ИП и физлица, их ФИО, телефоны и адреса — персональные данные. Передача файла третьим лицам, например внешнему колл-центру, требует законного основания по закону № 152-ФЗ. Не отправляйте такие файлы по открытой почте и не оставляйте в общих папках.
Частые вопросы
Можно ли выгрузить клиентов из 1С, если нет прав администратора?
Сколько контрагентов можно выгрузить за один раз?
Как выгрузить клиентов из облачной 1С (1С:Фреш, 1С:Готовое рабочее место)?
Попадут ли в выгрузку банковские счета клиентов?
Можно ли потом загрузить исправленный Excel обратно в 1С?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»