Выгрузка данных из 1С 8.3 — от списка в Excel до обмена по правилам и DBF для старых программ

· 10 мин

Содержание

Выгрузку из 1С 8.3 делают одним из четырёх способов. Список или отчёт — кнопкой «Сохранить» в Excel. Данные для другой базы 1С — в XML по правилам обмена. Полную копию базы — файлом .dt из Конфигуратора. Файл для сторонней программы (CSV, DBF) — небольшой внешней обработкой.

Типичная ситуация: аудитор просит реестр контрагентов с ИНН, банк — оборотку по 62 счёту, а старая складская программа принимает только DBF. Задачи похожи, но методы и настройки для них разные. Выбор зависит от того, кто будет читать файл: человек, другая 1С или чужая программа.

Какой способ выгрузки выбрать под задачу

Сначала определите получателя файла. От этого зависит формат, а значит и инструмент.

ЗадачаФорматИнструментКто справится
Отдать таблицу человекуXLSX, PDF, MXLКнопка «Сохранить» в отчёте, «Вывести список»Пользователь
Перенести справочники и документы в другую конфигурацию 1СXML«Универсальный обмен данными в формате XML» + правилаБухгалтер с инструкцией, лучше — 1С-ник
Скопировать данные между базами одной конфигурацииXMLОбработка «Выгрузка и загрузка данных XML»1С-ник
Регулярный обмен между типовыми базамиXML (EnterpriseData)Администрирование → Синхронизация данныхПользователь после настройки
Полная копия базыDTКонфигураторАдминистратор
Файл для сторонней программыCSV, DBF, JSONВнешняя обработкаПрограммист

💡 Если файл нужен для перемещения базы к другому бухгалтеру или в облако, ничего «выгружать по частям» не надо. Сделайте .dt — это полная копия с данными, пользователями и настройками.

Подготовка перед экспортом

Перед любой выгрузкой проверьте три вещи:

  • 🔐 Права. Сохранять отчёты в файл можно, только если у роли пользователя есть право «Вывод». В типовых конфигурациях оно входит в профили бухгалтера и администратора. Если кнопки «Сохранить» и «Вывести список » неактивны — дело почти всегда в правах.
  • 📂 Место для файла. В клиент-серверном варианте внешняя обработка, которая пишет файл «на сервере», создаёт его на диске сервера 1С, а не на вашем компьютере. Заранее решите, куда он попадёт.
  • 🧩 Версия конфигурации. Для обмена по правилам версия правил должна совпадать с релизом базы-источника и базы-приёмника. Правила от другого релиза дают ошибки уже на первых объектах.

Списки и отчёты в табличный документ и Excel

Это самый частый случай. Выгрузить в Excel можно почти всё, что 1С показывает на экране таблицей.

Отчёт: оборотка, карточка счёта, анализ субконто

  1. Сформируйте отчёт с нужным периодом и отборами.
  2. Нажмите кнопку с дискетой «Сохранить» над табличной частью отчёта.
  3. В поле «Тип файла» выберите Лист Excel 2007-... (*.xlsx).
  4. Укажите имя файла и папку, нажмите «Сохранить».

Кроме XLSX доступны PDF, MXL (табличный документ 1С), HTML, ODS, TXT и DOCX. MXL откроется только в 1С или в бесплатной программе «1С:Предприятие — работа с файлами».

💡 Если в Excel нужно считать, перед сохранением отключите в настройках отчёта группировки и промежуточные итоги. Иначе в файле будут объединённые ячейки и строки-итоги, которые мешают фильтру и сводной таблице.

Список документов или справочника

  1. Откройте список, например Справочники → Контрагенты.
  2. Настройте колонки и отбор: Ещё → Изменить форму.
  3. Выберите Ещё → Вывести список.
  4. В окне отметьте колонки и нажмите «ОК» — 1С сформирует табличный документ.
  5. Сохраните его кнопкой «Сохранить» в XLSX, как отчёт.

«Вывести список» берёт только видимые колонки. Если нужен ИНН, а колонки ИНН в списке нет — сначала добавьте её через настройку формы.

Когда нужных полей нет ни в списке, ни в отчёте

В Бухгалтерии 3.0 есть «Универсальный отчёт» в разделе Отчёты. В нём можно выбрать любой справочник, документ или регистр, добавить поля и отборы, а затем сохранить результат в Excel. Для выгрузки, например, всех реализаций с суммами и ответственным он часто удобнее программирования.

Перенос в другую базу: универсальный обмен данными в формате XML

Когда данные нужно перенести между разными конфигурациями (например, из УТ 11 в Бухгалтерию 3.0 или из старой БП 2.0), используют обработку «Универсальный обмен данными в формате XML». Она не знает структуру баз сама — ей нужен файл правил обмена.

Что понадобится

  • 📄 Обработка — файл .epf. Она входит в поставку конфигурации «Конвертация данных » и в комплекты обновлений типовых решений.
  • 📐 Правила обмена — XML-файл, который описывает, какой объект источника во что превращается в приёмнике. Готовые правила есть в каталоге шаблонов конфигурации (папка с релизом, подпапка с правилами конвертации) для популярных пар. Свои правила разрабатывают в «Конвертации данных» 2.x.
  • 💾 Копия базы -приёмника — обязательна до загрузки.

Пошаговая выгрузка

  1. В базе-источнике откройте Файл → Открыть (меню с тремя полосками в левом верхнем углу) и выберите файл обработки.
  2. На закладке «Выгрузка данных» в поле «Имя файла правил обмена» укажите XML с правилами.
  3. Дождитесь загрузки — в дереве появится список правил выгрузки данных.
  4. Задайте период, если правила выгружают документы.
  5. Отметьте галочками нужные правила и при необходимости настройте отборы.
  6. В поле «Имя файла данных» укажите, куда сохранить результат.
  7. Нажмите «Выгрузить данные».

Загрузка идёт той же обработкой в базе-приёмнике, на закладке «Загрузка данных».

Сделайте резервную копию базы-приёмника до загрузки. Обработка пишет данные напрямую, отката нет. Ошибка в правилах способна создать сотни дублей контрагентов или перепровести закрытый период.

Выгрузка между базами одной конфигурации

Если источник и приёмник — одна и та же конфигурация одного релиза, правила не нужны. Подойдёт универсальная обработка «Выгрузка и загрузка данных XML». Она выгружает выбранные объекты метаданных «как есть», с теми же ссылками.

Особенность: в приёмнике объекты появляются с теми же внутренними идентификаторами. Если в базе уже есть такой объект, он будет перезаписан. Поэтому так переносят, например, справочник номенклатуры в новую чистую базу, а не в рабочую с накопленными данными.

Синхронизация через EnterpriseData

Типовые конфигурации на БСП обмениваются через формат EnterpriseData. Это настраивается в Администрирование → Синхронизация данных. Там же есть обмен через файл в каталоге: одна база выкладывает XML-сообщение, другая забирает. Для регулярного обмена (Розница → Бухгалтерия, УТ → Бухгалтерия) это правильный путь вместо ручных правил.

Внешние обработки и скрипты: CSV, Excel, JSON

Когда файл нужен сторонней программе в строгом формате, проще написать короткую внешнюю обработку . Для 1С-ника это 20–40 строк кода.

Выгрузка в CSV

Пример выгружает номенклатуру в файл с разделителем «;». Кодировка UTF-8 с BOM — такой файл Excel открывает без «кракозябр».

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

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Код КАК Код,
    |    Номенклатура.Наименование КАК Наименование,
    |    Номенклатура.Артикул КАК Артикул
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    НЕ Номенклатура.ЭтоГруппа
    |    И НЕ Номенклатура.ПометкаУдаления";

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

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

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

    Текст.Закрыть();

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

Зачем СтрЗаменить: точка с запятой внутри наименования сломает колонки. Альтернатива — заключать каждое поле в кавычки.

Excel из кода

Если отчёт уже собран в табличный документ, файл Excel записывают одной строкой:

ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);

Microsoft Excel на компьютере для этого не нужен — платформа пишет XLSX сама. Через COM-объект Excel.Application выгружать не стоит: это медленно, требует установленного Excel и не работает на сервере без него.

Другие пути для интеграций

  • 🌐 OData. Стандартный REST-интерфейс платформы. После публикации базы на веб-сервере и включения нужных объектов внешняя система сама читает данные по HTTP. В типовых конфигурациях на БСП состав объектов задаётся в администрировании.
  • 📜 JSON. Объекты ЗаписьJSON и ЗаписатьJSON() формируют файл для веб-сервисов.
  • 🖥 Командная строка. Выгрузку по расписанию делают так: внешняя обработка запускается при старте сеанса через параметр /Execute у 1cv8.exe, или код выполняется регламентным заданием в расширении.

Работа с форматом DBF и устаревшими системами

DBF до сих пор просят старые программы складского учёта, банк-клиенты и некоторые ведомственные системы. В 1С 8.3 за этот формат отвечает встроенный объект XBase, ничего ставить не нужно.

Пример выгрузки в DBF

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

    Файл = Новый XBase;
    Файл.Кодировка = КодировкаXBase.OEM;

    Файл.Поля.Добавить("CODE",  "S", 11);
    Файл.Поля.Добавить("NAME",  "S", 100);
    Файл.Поля.Добавить("INN",   "S", 12);
    Файл.Поля.Добавить("DATEADD", "D");

    Файл.СоздатьФайл(ИмяФайла);

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |    Контрагенты.Код КАК Код,
    |    Контрагенты.Наименование КАК Наименование,
    |    Контрагенты.ИНН КАК ИНН
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.ЭтоГруппа");

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

    Пока Выборка.Следующий() Цикл
        Файл.Добавить();
        Файл.CODE    = СокрЛП(Выборка.Код);
        Файл.NAME    = Лев(Выборка.Наименование, 100);
        Файл.INN     = Выборка.ИНН;
        Файл.DATEADD = ТекущаяДатаСеанса();
        Файл.Записать();
    КонецЦикла;

    Файл.ЗакрытьФайл();

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

Ограничения DBF, о которых забывают

ОграничениеЧто будетКак обойти
Имя поля — до 10 символов, латиницаОшибка при создании файла или обрезанное имяКороткие имена: NAME, INN, SUMMA
Строковое поле — до 254 символовДлинный текст обрежетсяЛев(Значение, 254) или поле-мемо
Кодировка OEM (DOS) или ANSI (Windows)Кириллица превращается в символы псевдографикиУточните у получателя и задайте КодировкаXBase
Числа: длина и точность задаются заранееСумма 1 250 000,50 не влезет в поле длиной 8Для сумм берите длину 15 и точность 2

💡 Старые программы на Clipper и FoxPro почти всегда ждут OEM. Если получатель открывает файл в современной программе и видит «кракозябры», попробуйте ANSI.

Ошибки экспорта и как их устранить

Выберите симптом — у каждой ошибки своя причина и свой способ устранения.

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

Если файл выгрузки получается огромным

Отчёт за год по всем субконто легко даёт десятки мегабайт. Платформа держит табличный документ в памяти, и на слабом компьютере формирование может длиться минутами.

  • 📅 Делите период: квартал вместо года.
  • 🔎 Сужайте отбор до нужных организаций и счетов.
  • ⚙️ Для таблиц больше 100 тысяч строк переходите на CSV через обработку: запись построчно не держит весь результат в памяти.

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

Можно ли выгрузить из 1С 8.3 сразу все данные в Excel одним файлом?
Нет. Excel — табличный формат, а база 1С — сотни связанных таблиц. Для полной копии используют файл .dt из Конфигуратора (Администрирование → Выгрузить информационную базу), а в Excel выгружают отдельные отчёты и списки.
Подойдёт ли файл `.dt` для переноса данных в другую конфигурацию?
Нет. .dt загружается только целиком и заменяет базу вместе с конфигурацией. Для переноса части данных между разными конфигурациями нужен XML-обмен по правилам.
Нужно ли закрывать работу пользователей на время выгрузки?
Для выгрузки отчётов и XML по правилам — нет, это чтение данных. Для выгрузки .dt монопольный режим не нужен, но её лучше делать, когда документы не вводят: так копия будет согласованной и выгрузится быстрее.
Как выгрузить печатную форму документа, а не таблицу?
Откройте печатную форму и нажмите «Сохранить» в её командной панели. Для отправки контрагенту обычно выбирают PDF: вёрстка не поедет, правок в файле не будет.
Сохранится ли форматирование отчёта в XLSX?
Шрифты, границы, заливка и объединения ячеек переносятся. Не переносятся расшифровки: двойной клик по сумме в Excel ничего не откроет.