Администрирование · 12 мин
Как выгрузить базу 1С в CSV
Как выгрузить данные из 1С в CSV: табличные документы, обработки, запросы и внешние обработки. Кодировки, разделители, проверка результата и типичные ошибки.
CSV — простой текстовый формат, в котором данные хранятся построчно, а поля разделяются запятой, точкой с запятой или табуляцией. Выгрузка из 1С в CSV нужна, когда данные требуется передать в другую учётную систему, загрузить в интернет-магазин, обработать в скрипте или импортировать в BI-инструмент, который не понимает форматы Excel и MXL.
В 1С нет единой кнопки «выгрузить всю базу в CSV» — и это важно понимать сразу. CSV описывает одну плоскую таблицу, а база 1С состоит из сотен связанных объектов: справочников, документов, регистров. Поэтому выгружают не «базу целиком», а конкретные наборы данных: номенклатуру, контрагентов, остатки, обороты за период.
Способ выгрузки зависит от конфигурации (УТ, БП, ERP, ЗУП), её режима (обычное или управляемое приложение) и ваших прав. Ниже разобраны основные сценарии: от сохранения табличного документа до выгрузки через обработку и встроенный язык.
Что именно можно выгрузить и как выбрать способ
Перед выгрузкой определите, какой набор данных вам нужен. От этого зависит инструмент: одни способы подходят только для видимых списков, другие позволяют собрать данные из нескольких таблиц с отборами.
Типовые задачи и подходящие методы:
- Список элементов справочника (номенклатура, контрагенты) — вывод списка в табличный документ и сохранение в CSV.
- Данные отчёта (остатки, обороты, продажи) — сформировать отчёт и сохранить результат.
- Произвольная выборка с отборами и соединениями таблиц — консоль запросов или универсальная обработка.
- Регулярная автоматическая выгрузка — регламентное задание с кодом на встроенном языке.
Сравнение вариантов выгрузки
Быстро и без прав разработчика, но выгружает только видимые колонки одного списка
Подходит для итогов и оборотов, но структура колонок зависит от настроек отчёта
Гибкая выборка любых данных, требует прав и навыка работы с запросами
Полный контроль и автоматизация, но нужен доступ к конфигуратору или внешней обработке
Выгрузка списка через табличный документ
Самый доступный способ — вывести список в табличный документ и сохранить его в нужном формате. Он работает в большинстве типовых конфигураций и не требует программирования.
Порядок действий в управляемом приложении (например, 1С:Бухгалтерия или Управление торговлей):
- Откройте нужный список, например «Номенклатура» или «Контрагенты».
- Настройте отбор и колонки: через «Ещё → Изменить форму» добавьте нужные поля, установите отбор.
- Выберите «Ещё → Вывести список». В появившемся окне отметьте выводимые колонки и нажмите «ОК».
- Список откроется как табличный документ. Выберите «Файл → Сохранить как» (или «Ещё → Сохранить»).
- В поле «Тип файла» укажите «Текстовый документ» с разделителями (CSV), если он доступен, либо сохраните в TXT с разделителями и задайте расширение .csv.
- 1Откройте список и настройте отбор и колонки
- 2Ещё → Вывести список, отметьте нужные поля
- 3Сохраните табличный документ через Файл → Сохранить как
- 4Выберите текстовый формат с разделителями или CSV
- 5Откройте файл и проверьте кодировку и разделитель
В обычном приложении (старые версии УТ 10.3, БП 1.6/2.0) действия аналогичны: список выводится в табличный документ через кнопку вывода, затем сохраняется через «Файл → Сохранить копию» с выбором текстового формата.
У этого способа есть ограничение: выгружаются только те колонки, что видны в форме списка, и только текущий уровень иерархии. Если нужны поля, недоступные в форме, или данные из связанных таблиц — переходите к запросам и обработкам.
Выгрузка через отчёты и универсальные обработки
Если нужны итоговые данные — остатки на складах, обороты по счетам, продажи за период — удобнее сформировать стандартный отчёт и сохранить его результат. Отчёт уже содержит готовую таблицу, которую остаётся выгрузить тем же способом: «Файл → Сохранить как» с выбором текстового формата.
Для произвольных выборок в типовых конфигурациях часто есть встроенные инструменты. Например, «Универсальный отчёт» позволяет собрать данные по справочнику или документу с отборами, а «Групповая обработка справочников и документов» — выгрузить список с произвольными реквизитами. В конфигурациях на БСП (библиотека стандартных подсистем) может быть доступна обработка «Загрузка и выгрузка данных XML», но она работает с XML, а не с CSV.
Популярный вариант среди специалистов — консоль запросов (входит в состав «Инструментов разработчика» и подобных подсистем). В ней вы пишете запрос на языке запросов 1С, выполняете его и сохраняете результат в табличный документ, а далее — в CSV. Это даёт полный контроль над составом полей и отборами.
Выгрузка в CSV кодом на встроенном языке
Когда выгрузку нужно делать регулярно или выгружать данные, которых нет ни в одном отчёте, используют встроенный язык 1С. Типовой подход — сформировать текст построчно и записать его в файл через объект «ТекстовыйДокумент» или «ЗаписьТекста».
Пример простейшей выгрузки номенклатуры в CSV с разделителем «точка с запятой»:
Текст = Новый ТекстовыйДокумент;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Номенклатура.Код,
| Номенклатура.Наименование,
| Номенклатура.Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ПометкаУдаления");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Строка = Выборка.Код + ";" + Выборка.Наименование + ";" + Выборка.Артикул;
Текст.ДобавитьСтроку(Строка);
КонецЦикла;
Текст.Записать("C:\Export\nomenklatura.csv", КодировкаТекста.UTF8);
Ключевые моменты в этом коде: разделитель выбирается вами явно, кодировка задаётся параметром при записи, а помеченные на удаление объекты исключаются отбором в запросе. Для больших объёмов вместо строковой конкатенации лучше использовать «ЗаписьТекста» с построчной записью — это снижает расход памяти.
Такой код можно оформить как внешнюю обработку (открывается через «Файл → Открыть») или как регламентное задание для автоматической выгрузки по расписанию. Оба варианта требуют соответствующих прав и аккуратности: ошибка в запросе на больших таблицах может надолго нагрузить сервер.
Кодировка, разделитель и форматирование значений
Большинство проблем с CSV возникают не на этапе выгрузки, а при открытии файла. Три параметра определяют, корректно ли прочитается результат: кодировка, разделитель полей и представление значений.
Кодировка. Для русскоязычных данных используйте UTF-8 — её понимают почти все современные программы. Устаревшая ANSI (Windows-1251) тоже работает, но при передаче файла на другую платформу (Linux, веб-сервисы) часто даёт нечитаемые символы. Если в 1С при сохранении не предлагается выбор кодировки, файл обычно пишется в UTF-8 или системной кодировке — проверьте результат открытием в текстовом редакторе.
Разделитель. В русской локали Excel по умолчанию ожидает точку с запятой, а не запятую, потому что запятая — десятичный разделитель чисел. Если выгружаете для Excel — используйте «;». Если для загрузки в стороннюю систему — уточните в её документации, какой разделитель она ожидает, и есть ли требования к кавычкам вокруг текстовых полей.
Форматирование. Числа выгружайте без разделителей групп разрядов (пробел между тысячами ломает парсинг), даты — в едином формате, например ГГГГ-ММ-ДД. Если текстовое поле может содержать разделитель или перевод строки, заключайте его в двойные кавычки, а внутренние кавычки удваивайте — это стандартное правило экранирования CSV.
Проверка результата выгрузки
Не считайте задачу выполненной, пока не проверили файл. Минимальная проверка занимает пару минут и избавляет от ситуации, когда выгрузку «сделали», а принимающая сторона её отклонила.
Откройте файл в простом текстовом редакторе (не в Excel — он перекодирует и переформатирует данные при открытии). Убедитесь, что русский текст читается, каждая строка содержит одинаковое число разделителей, а первая строка — это заголовки колонок, если они требуются. Затем сравните количество строк с количеством элементов в исходном списке с учётом отбора.
Как проверить результат
Русский текст читается в редакторе и в принимающей системе
Символы отображаются как знаки вопроса или «кракозябры»
Во всех строках одинаковое число разделителей
Часть строк смещена, колонки «плывут»
Число строк совпадает с количеством элементов в отборе 1С
Строк заметно меньше или больше, есть дубли
Числа без пробелов, даты в едином формате
Разряды с пробелами, даты вперемешку в разных форматах
Если файл предназначен для загрузки в другую систему, сделайте тестовый импорт на небольшом фрагменте — выгрузите 10–20 строк и попробуйте загрузить их. Это выявит несовпадение разделителей, порядка колонок и форматов до того, как вы подготовите полный файл.
Ограничения, альтернативы и безопасность данных
CSV — однотабличный формат без типов данных, поэтому он не подходит, если нужно перенести структуру базы, иерархию справочников со всеми связями или документы с табличными частями «как есть». Для полного переноса данных между базами 1С используют выгрузку в XML (обработка «Выгрузка и загрузка данных XML» или «Конвертация данных»), а для резервной копии — выгрузку информационной базы в файл .dt через конфигуратор.
Как выбрать действие
Отдельно учитывайте безопасность: в выгрузке могут оказаться персональные данные сотрудников и контрагентов, цены, обороты. Передавайте CSV-файлы только по защищённым каналам, удаляйте лишние колонки до отправки и не храните выгрузки в общедоступных папках. Права на выгрузку данных должны быть только у тех сотрудников, которым это необходимо по работе.
Что важно запомнить
CSV выгружает одну плоскую таблицу, поэтому «выгрузить всю базу» нельзя — выгружайте конкретные списки и выборки. Простейший путь — «Ещё → Вывести список» и сохранение табличного документа; гибкий путь — запрос или обработка. Контролируйте кодировку UTF-8, разделитель и отсутствие помеченных на удаление объектов, и всегда проверяйте файл до передачи.
Частые вопросы
Можно ли выгрузить всю базу 1С в один CSV-файл?
Нет. CSV описывает одну таблицу, а база 1С — это множество связанных объектов. Выгружайте данные порциями: отдельно номенклатуру, отдельно контрагентов, отдельно обороты. Для полного переноса базы используйте выгрузку в .dt или XML-обмен.
Почему Excel открывает CSV с иероглифами вместо русских букв?
Чаще всего файл сохранён в UTF-8 без маркера BOM, а Excel ожидает ANSI. Решения: сохраняйте файл в кодировке Windows-1251, открывайте CSV через «Данные → Получение данных из текстового файла» с явным указанием кодировки или используйте редактор, который корректно определяет UTF-8.
Все данные после выгрузки оказались в одной колонке Excel. Что делать?
Разделитель в файле не совпадает с ожидаемым. В русской локали Excel по умолчанию разделяет поля точкой с запятой. Либо выгрузите файл с разделителем «;», либо в Excel используйте инструмент «Текст по столбцам» и укажите фактический разделитель вручную.
Как выгрузить данные, если нет прав на конфигуратор и внешние обработки?
Используйте штатные возможности: вывод списка в табличный документ, сохранение результатов отчётов, универсальный отчёт, если он доступен в вашей конфигурации. Этого достаточно для большинства разовых выгрузок списков и итогов.
Как исключить из выгрузки помеченные на удаление объекты?
В запросе добавьте условие «НЕ ПометкаУдаления». При выводе списка в табличный документ включите в форме списка отбор «Скрывать помеченные на удаление» — стандартная команда отбора в большинстве конфигураций.
Чем CSV отличается от сохранения в Excel?
CSV — чистый текст без форматирования, формул и типов данных, его легко читают скрипты и сторонние системы. Excel-файл сохраняет форматирование, но хуже подходит для автоматической обработки и занимает больше места. Для обмена между системами обычно выбирают CSV, для просмотра человеком — Excel.