Выгрузка контрагентов из 1С:Предприятие 8.3 в Excel — одна из самых востребованных операций среди бухгалтеров, менеджеров по продажам и IT-специалистов. Без этого невозможно быстро сформировать отчёты для налоговой, синхронизировать данные с CRM-системами или просто проанализировать клиентскую базу. Однако стандартные инструменты 1С не всегда интуитивно понятны: где-то требуется писать запросы, где-то настраивать обработки, а где-то достаточно пары кликов.
В этой статье мы разберём 5 рабочих способов выгрузки — от простейшего копирования через буфер обмена до автоматизированного экспорта с помощью COM-соединения и Power Query. Особое внимание уделим скрытым настройкам 1С, которые позволяют выгружать не только основные реквизиты (наименование, ИНН, КПП), но и историю изменений, контактные лица, договора и даже пользовательские поля. А для программистов приведём готовые примеры кода на 1С:Предприятие и VBA.
Независимо от вашего уровня — новичок или опытный пользователь — вы найдёте здесь оптимальный метод. Главное: перед выгрузкой всегда проверяйте актуальность данных в 1С, чтобы избежать ошибок в финальном файле.
1. Самый быстрый способ: копирование через буфер обмена
Если вам нужно срочно получить список контрагентов в Excel без установки дополнительных обработок, этот метод подойдёт идеально. Он работает в любой конфигурации 1С 8.3 (Бухгалтерия, УТ, ERP, ЗУП) и не требует прав администратора.
Откройте справочник Контрагенты (Предприятие → Контрагенты или через панель навигации). Нажмите Ещё → Все действия → Открыть список, чтобы увидеть полный перечень. Затем:
- 📋 Выделите нужные строки (или нажмите
Ctrl+Aдля выбора всех). - 🖱️ Кликните правой кнопкой и выберите
Копировать(илиCtrl+C). - 📊 Откройте Excel и вставьте данные (
Ctrl+V).
⚠️ Внимание: Этот способ копирует только видимые колонки. Если вам нужны дополнительные реквизиты (например, Юр.адрес или Банковские счета), предварительно добавьте их в список через Ещё → Настройка списка.
Чтобы избежать проблем с кодировкой (например, вместо "ООО" отображаются "???"), перед вставкой в Excel выберите Данные → Текст по столбцам → Кодировка: 65001 (Unicode UTF-8)
2. Экспорт через стандартную обработку "Выгрузка данных"
В 1С 8.3 есть встроенная обработка ВыгрузкаДанных.epf, которая позволяет гибко настраивать экспорт в Excel, XML или CSV. Она подходит для регулярной выгрузки больших объёмов данных с сохранением структуры.
Чтобы её использовать:
- Перейдите в
Файл → Открытьи выберите файл обработки (обычно он лежит в каталоге установки 1С, например,C:\Program Files\1cv8\8.3.x.xx\tmplts\1c\Universal\ExtForms\ВыгрузкаДанных.epf). - В открывшемся окне укажите:
- 📌 Источник данных: справочник
Контрагенты. - 📄 Формат файла:
Excel (XLSX). - 🔧 Поля для выгрузки: отметьте галочками нужные реквизиты (например,
Наименование,ИНН,Телефон).
- 📌 Источник данных: справочник
- Нажмите
Выполнитьи сохраните файл. - 🔄 Выгружать данные по расписанию (например, каждый понедельник в 9:00).
- 📂 Сохранять несколько шаблонов для разных типов контрагентов (поставщики, покупатели, партнёры).
- 🔍 Применять сложные фильтры (например, выгружать только активных контрагентов с оборотом > 100 000 руб.).
| Параметр обработки | Рекомендуемое значение | Пояснение |
|---|---|---|
Выгружать иерархию |
Да | Сохраняет структуру групп (например, "Поставщики → Оптовики"). |
Выгружать пустые значения |
Нет | Исключает ячейки без данных, уменьшая размер файла. |
Разделитель списков |
; (точка с запятой) |
Важно для полей типа "Список" (например, несколько контактных лиц). |
⚠️ Внимание: Если в вашей конфигурации отсутствует стандартная обработка, её можно скачать с сайта 1С:ИТС или попробовать альтернативный метод (см. раздел 4).
3. Выгрузка через внешнюю обработку (например, "Универсальный обмен данными")
Для пользователей, которым нужно не только экспортировать данные, но и настраивать шаблоны, фильтры или автоматизировать процесс, подойдут внешние обработки. Одна из самых популярных — "Универсальный обмен данными" (разработчик: 1С-Рарус). Она позволяет:
Инструкция по настройке:
- Скачайте обработку с сайта разработчика и подключите её в 1С через
Файл → Открыть. - В окне обработки выберите:
Источник: Справочник.КонтрагентыФормат: Excel (XLSX)
Поля: [выберите нужные реквизиты]
Фильтр: [настройте условия, например, "Дата создания > 01.01.2023"]
- Сохраните шаблон для повторного использования.
💡 Совет: Если вам нужно выгружать данные регулярно, настройте Расписание в обработке. Например, можно отправлять файл на email автоматически после выгрузки.
Как обойти ограничение на количество строк в Excel?
Если у вас более 1 048 576 строк (максимум для Excel), разбейте выгрузку на несколько файлов. В обработке "Универсальный обмен данными" для этого есть опция Разбивать на файлы по N строк.
4. Автоматизированный экспорт через COM-соединение (для программистов)
Для IT-специалистов и пользователей, которым нужно интегрировать 1С с другими системами, оптимальный вариант — использование COM-соединения. Этот метод позволяет выгружать данные прямо из 1С в Excel с помощью скриптов на VBA или 1С:Предприятие.
Пример кода на 1С 8.3 для выгрузки контрагентов в Excel:
// Подключаем Excel
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);
// Получаем данные из 1С
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент,
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН,
| Контрагенты.КПП КАК КПП
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
// Записываем данные в Excel
НомерСтроки = 1;
Пока Выборка.Следующий() Цикл
Лист.Cells(НомерСтроки, 1).Value = Выборка.Наименование;
Лист.Cells(НомерСтроки, 2).Value = Выборка.ИНН;
Лист.Cells(НомерСтроки, 3).Value = Выборка.КПП;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
// Сохраняем файл
Книга.SaveAs("C:\Temp\Контрагенты.xlsx");
Excel.Quit();
⚠️ Внимание: Для работы этого кода на компьютере должен быть установлен Microsoft Excel (не достаточно только 1С). Также проверьте права доступа к папке, куда сохраняется файл.
🔹 Альтернатива: Если вы используете 1С:Предприятие в веб-клиенте или тонком клиенте, COM-соединение может не работать. В этом случае используйте HTTP-сервисы или REST API.
Установить Microsoft Excel на компьютере|Проверить права доступа к папке сохранения|Создать резервную копию базы 1С|Протестировать код на тестовой базе-->
5. Выгрузка через Power Query (для пользователей Excel)
Если вы часто работаете в Excel и используете Power Query (инструмент для загрузки и преобразования данных), можно настроить прямой импорт из 1С. Этот метод подходит для Excel 2016 и новее.
Пошаговая инструкция:
- Откройте Excel и перейдите на вкладку
Данные → Получить данные → Из базы данных → Из 1С:Предприятие. - Введите параметры подключения:
- 📌 Сервер 1С: указжите адрес (например,
localhostили IP-адрес сервера). - 🔑 База данных: выберите нужную базу из списка.
- 👤 Пользователь/пароль: укажите учётные данные с правами на чтение справочника
Контрагенты.
- 📌 Сервер 1С: указжите адрес (например,
- В редакторе Power Query выберите таблицу
Справочник.Контрагентыи настройте нужные столбцы. - Нажмите
Закрыть и загрузить, чтобы импортировать данные в Excel. - 🔄 Автоматическое обновление данных при изменении в 1С (настройка
Обновить все). - 📊 Возможность объединять данные из 1С с другими источниками (например, из CRM или SQL).
✅ Плюсы метода:
⚠️ Внимание: Для этого метода требуется ODBC-драйвер для 1С, который устанавливается вместе с платформой. Если его нет, скачайте с сайта 1С.
Power Query — лучший выбор для аналитиков, так как позволяет не только выгружать данные, но и сразу строить сводные таблицы, графики и дашборды.
6. Выгрузка с историей изменений (для аудита)
Если вам нужна не только обновляемые материалы о контрагентах, но и история изменений (кто и когда редактировал реквизиты), используйте журнал регистрации или специализированные обработки.
Способ 1: Через журнал регистрации (встроенный в 1С):
- Откройте
Администрирование → Журнал регистрации. - Настройте фильтр:
Объект: Справочник.КонтрагентыДействие: Изменение
Период: [укажите даты]
- Экспортируйте отчёт в Excel через
Ещё → Вывести список → Excel.
Способ 2: С помощью обработки "История изменений объектов" (доступна на Инфостарте). Она позволяет:
- 🕒 Видеть, кто и когда внёс изменения.
- 📝 Сравнивать версии реквизитов (например, старое и новое значение
Юр.адреса). - 📤 Выгружать историю в удобном формате.
💡 Совет: Если история изменений критически важна (например, для налоговой проверки), настройте регулярный бэкап журнала регистрации. В 1С 8.3 он хранится в таблице _EventLog базы данных.
FAQ: Частые вопросы по выгрузке контрагентов
Можно ли выгрузить контрагентов с их банковскими счетами?
Да, но для этого нужно:
- В настройках выгрузки добавить таблицу
БанковскиеСчетаКонтрагентов. - Использовать внешнюю обработку (например, "Универсальный обмен данными") или написать
запрос с объединением:
ВЫБРАТЬ
Контрагенты.Наименование,
БанковскиеСчета.НомерСчета,
БанковскиеСчета.БИК
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец
Почему в Excel вместо кириллицы отображаются знаки вопроса?
Проблема связана с кодировкой. Решения:
- При сохранении файла в 1С выберите формат
UTF-8. - В Excel при открытии файла используйте
Данные → Текст по столбцам → Кодировка: 65001 (Unicode). - Если выгружаете через
COM, добавьте в код строку:Excel.DisplayAlerts = Ложь; // Отключает предупреждения о кодировке
Как выгрузить только активных контрагентов?
Используйте фильтр в запросе или обработке:
ВЫБРАТЬ
Контрагенты.Наименование,
Контрагенты.ИНН
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.ПометкаУдаления = ЛОЖЬ
В стандартной обработке выгрузки добавьте условие ПометкаУдаления = Ложь.
Можно ли автоматизировать выгрузку по расписанию?
Да, для этого подойдут:
- Внешние обработки (например, "Универсальный обмен данными" с настройкой расписания).
- Задачи планировщика Windows + скрипт на 1С или VBA.
- 1С:EDT (для программистов) — создание фонового задания.
Пример команды для планировщика:
"C:\Program Files\1cv8\8.3.x.xx\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Пользователь" /P "Пароль" /Execute "C:\Scripts\ВыгрузкаКонтрагентов.epf"
Как выгрузить контрагентов с их договорами?
Используйте запрос с объединением таблиц:
ВЫБРАТЬ
Контрагенты.Наименование КАК Контрагент,
Договоры.Номер КАК НомерДоговора,
Договоры.Дата КАК ДатаДоговора
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДоговорыКонтрагентов КАК Договоры
ПО Контрагенты.Ссылка = Договоры.Контрагент
Или настройте выгрузку через Power Query, добавив связанные таблицы.