Выгрузка данных из 1С 8.3 — от списка в Excel до обмена по правилам и DBF для старых программ
Содержание
Выгрузку из 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С показывает на экране таблицей.
Отчёт: оборотка, карточка счёта, анализ субконто
- Сформируйте отчёт с нужным периодом и отборами.
- Нажмите кнопку с дискетой «Сохранить» над табличной частью отчёта.
- В поле «Тип файла» выберите
Лист Excel 2007-... (*.xlsx). - Укажите имя файла и папку, нажмите «Сохранить».
Кроме XLSX доступны PDF, MXL (табличный документ 1С), HTML, ODS, TXT и DOCX. MXL откроется только в 1С или в бесплатной программе «1С:Предприятие — работа с файлами».
💡 Если в Excel нужно считать, перед сохранением отключите в настройках отчёта группировки и промежуточные итоги. Иначе в файле будут объединённые ячейки и строки-итоги, которые мешают фильтру и сводной таблице.
Список документов или справочника
- Откройте список, например
Справочники → Контрагенты. - Настройте колонки и отбор:
Ещё → Изменить форму. - Выберите
Ещё → Вывести список. - В окне отметьте колонки и нажмите «ОК» — 1С сформирует табличный документ.
- Сохраните его кнопкой «Сохранить» в XLSX, как отчёт.
«Вывести список» берёт только видимые колонки. Если нужен ИНН, а колонки ИНН в списке нет — сначала добавьте её через настройку формы.
Когда нужных полей нет ни в списке, ни в отчёте
В Бухгалтерии 3.0 есть «Универсальный отчёт» в разделе Отчёты. В нём можно выбрать любой справочник, документ или регистр, добавить поля и отборы, а затем сохранить результат в Excel. Для выгрузки, например, всех реализаций с суммами и ответственным он часто удобнее программирования.
Перенос в другую базу: универсальный обмен данными в формате XML
Когда данные нужно перенести между разными конфигурациями (например, из УТ 11 в Бухгалтерию 3.0 или из старой БП 2.0), используют обработку «Универсальный обмен данными в формате XML». Она не знает структуру баз сама — ей нужен файл правил обмена.
Что понадобится
- 📄 Обработка — файл
.epf. Она входит в поставку конфигурации «Конвертация данных » и в комплекты обновлений типовых решений. - 📐 Правила обмена — XML-файл, который описывает, какой объект источника во что превращается в приёмнике. Готовые правила есть в каталоге шаблонов конфигурации (папка с релизом, подпапка с правилами конвертации) для популярных пар. Свои правила разрабатывают в «Конвертации данных» 2.x.
- 💾 Копия базы -приёмника — обязательна до загрузки.
Пошаговая выгрузка
- В базе-источнике откройте
Файл → Открыть(меню с тремя полосками в левом верхнем углу) и выберите файл обработки. - На закладке «Выгрузка данных» в поле «Имя файла правил обмена» укажите XML с правилами.
- Дождитесь загрузки — в дереве появится список правил выгрузки данных.
- Задайте период, если правила выгружают документы.
- Отметьте галочками нужные правила и при необходимости настройте отборы.
- В поле «Имя файла данных» укажите, куда сохранить результат.
- Нажмите «Выгрузить данные».
Загрузка идёт той же обработкой в базе-приёмнике, на закладке «Загрузка данных».
Сделайте резервную копию базы-приёмника до загрузки. Обработка пишет данные напрямую, отката нет. Ошибка в правилах способна создать сотни дублей контрагентов или перепровести закрытый период.
Выгрузка между базами одной конфигурации
Если источник и приёмник — одна и та же конфигурация одного релиза, правила не нужны. Подойдёт универсальная обработка «Выгрузка и загрузка данных 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 одним файлом?
.dt из Конфигуратора (Администрирование → Выгрузить информационную базу), а в Excel выгружают отдельные отчёты и списки.Подойдёт ли файл `.dt` для переноса данных в другую конфигурацию?
.dt загружается только целиком и заменяет базу вместе с конфигурацией. Для переноса части данных между разными конфигурациями нужен XML-обмен по правилам.Нужно ли закрывать работу пользователей на время выгрузки?
.dt монопольный режим не нужен, но её лучше делать, когда документы не вводят: так копия будет согласованной и выгрузится быстрее.