Работа с файлами в 1С:Предприятие — одна из самых востребованных задач, с которой сталкиваются и обычные пользователи, и разработчики.hether вы хотите выгрузить отчёт в Excel для анализа, сохранить данные в XML для обмена с другой системой или просто создать текстовый файл с логом операций — в этой статье вы найдёте подробные инструкции для всех сценариев.
Мы разберём как стандартные возможности платформы (доступные без программирования), так и методы для опытных пользователей с использованием встроенного языка. Особое внимание уделим типичным ошибкам и нюансам, которые часто упускают из виду. Например, почему при выгрузке в Excel русские буквы превращаются в"кракозябры", или как правильно указать путь к файлу, чтобы не получить ошибку доступа.
Статья будет полезна:
- 📊 Бухгалтерам и аналитикам, которые регулярно выгружают отчёты для дальнейшей обработки
- 🔄 Специалистам по интеграциям, настраивающим обмен данными между системами
- 💻 Программистам 1С, которым нужно автоматизировать создание файлов
- 📂 Администраторам, отвечающим за резервное копирование данных
Все примеры актуальны для последних версий платформы 1С:Предприятие 8.3 (включая 8.3.23 и новее) и проверены на конфигурациях Бухгалтерия 3.0, Управление торговлей 11 и Зарплата и управление персоналом 3.1. Если вы работаете с другой конфигурацией, уточните наличие описанных функций в её документации.
1. Стандартная выгрузка в Excel через меню 1С
Самый простой способ записать файл из 1С — использовать встроенные механизмы выгрузки табличных данных. Этот метод не требует знания программирования и доступен любому пользователю с правами на просмотр отчётов.
Рассмотрим пошаговую инструкцию на примере выгрузки отчёта Оборотно-сальдовая ведомость:
- Откройте нужный отчёт через меню
Отчёты → Стандартные отчёты → Оборотно-сальдовая ведомость. - Задайте период и другие параметры отчёта, нажмите
Сформировать. - В открывшемся окне отчёта найдите кнопку
Ещё(илиДействия) и выберитеВыгрузить в Excel. - Укажите путь для сохранения файла. По умолчанию 1С предложит папку
Документытекущего пользователя. - Выберите формат:
- 📑 XLS (Excel 97-2003) — устаревший формат, поддерживает до 65 536 строк
- 📑 XLSX (Excel 2007 и новее) — современный формат, рекомендуется для больших объёмов данных
- 📑 ODS (OpenDocument) — открытый формат, совместим с LibreOffice и OpenOffice
- Нажмите
Сохранить. - 📄 Отправить отчёт по email в виде PDF (не редактируется, но сохраняет форматирование)
- 📝 Сохранить данные в TXT для дальнейшей обработки скриптами
- 🌐 Опубликовать отчёт на сайте в формате HTML
- 📊 Экспортировать в XML для обмена с другими программами
- Сформируйте нужный отчёт (например,
Анализ счётаилиКарточка счёта). - В окне отчёта нажмите
Ещё → Сохранить как.... - Выберите формат из списка:
- PDF — идеален для печати и архивирования
- TXT — простой текст без форматирования
- HTML — сохраняет цвета и шрифты, но может плохо открываться в Excel
- XML — структурированные данные для обмена
- MXD — внутренний формат 1С для сохранения макета отчёта
- Укажите путь и имя файла. Для XML и TXT рекомендуется явно прописывать расширение (например,
отчёт.xml). - 🖼️ Ориентация — выберите
Альбомнаядля широких таблиц - 📏 Масштаб — если данные не помещаются, уменьшите до
80%илиПо ширине страницы - 🖨️ Печатать заголовки — включите, если отчёт многостраничный
- 🔄 Выгружать данные в XML, CSV, DBF
- 📁 Сохранять не только табличные данные, но и иерархические структуры (например, справочники с подчинёнными элементами)
- 🔄 Настраивать правила преобразования данных
- Откройте меню
Файл → Открыть.... - В поле
Тип файлавыберитеОбработка (*.epf). - Перейдите в папку с шаблонами 1С (обычно
C:\Program Files\1cv8\tmlts) и выберите файлUnivObm.epf. - В открывшейся обработке выберите:
- 📌 Источник данных — справочник или документ (например,
Справочник.Номенклатура) - 📌 Формат файла — XML, CSV или DBF
- 📌 Путь к файлу — укажите полный путь (например,
C:\Export\номенклатура.xml)
- 📌 Источник данных — справочник или документ (например,
- Нажмите
Выгрузить. - 🔍 Найти в дистрибутиве 1С (папка
Templates\Exchange) - 📥 Скачать с сайта 1С:ИТС (требуется подписка)
- 💻 Создать самостоятельно через конфигуратор (для программистов)
- 📌 Всегда указывайте кодировку (UTF-8 или Windows-1251), иначе русские буквы отобразятся некорректно
- 📌 Для CSV используйте разделитель
;(точка с запятой) — он надёжнее запятой при работе с русскими числами - 📌 Проверяйте права доступа к папке — 1С должна иметь право на запись
- Откройте конфигуратор 1С (требуются права администратора).
- Перейдите в
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - В поле
Кодвставьте скрипт выгрузки (см. раздел 4). Например:ВыгрузитьОстаткиТоваров;Процедура ВыгрузитьОстаткиТоваров
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО ОстаткиТоваров.Номенклатура = Номенклатура.Ссылка
|ГДЕ
| ОстаткиТоваров.КоличествоОстаток > 0
|СГРУППИРОВАТЬ ПО
| Номенклатура.Наименование";
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Текст = Новый ЗаписьТекста;
Текст.Открыть(КаталогДокументов +"\Остатки_" + Формат(ТекущаяДата,"ДЛФ=DT") +".csv", КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Наименование;Остаток");
Пока Выборка.Следующий Цикл
Текст.ЗаписатьСтроку(Выборка.Наименование +";" + Выборка.Остаток);
КонецЦикла;
Текст.Закрыть;
КонецПроцедуры
- Настройте расписание выполнения (например, ежедневно в 23:00).
- Укажите пользователя, от имени которого будет выполняться задание (должен иметь достаточные права).
- Сохраните и запустите задание.
- ⏰ Экономия времени — не нужноremember о выгрузке вручную
- 📈 Актуальность данных — файлы создаются по свежим данным
- 🔄 Интеграция — можно настроить автоматическую загрузку файлов в другие системы
- 🔒 У пользователя Windows нет прав на запись в указанную папку
- 🔒 Папка находится на сетевом диске, который в данный момент недоступен
- 🔒 Антивирус блокирует запись файлов программой 1С
- Попробуйте сохранить файл в другую папку (например,
C:\Temp). - Отключите антивирус на время выгрузки.
- Запустите 1С от имени администратора (правый клик по ярлыку →
Запуск от имени администратора). - Проверьте, не установлен ли атрибут
Только чтениена папке. - 📊 Разбивайте данные на части — выгружайте не весь справочник, а по группам (например, по первым буквам наименования)
- 📉 Уменьшайте количество колонок — оставьте только необходимые поля
- 🗃️ Используйте формат CSV вместо XLSX — он занимает меньше места
- 💾 Используйте потоковую запись — записывайте данные порциями, не храня всю выборку в памяти
- 🗑️ Очищайте временные объекты — после записи данных вызывайте
Очиститьдля больших коллекций - 🔄 Настраивайте пакетную обработку — обрабатывайте данные пакетами по 1000-5000 строк
- 🗄️ Использовать архивацию на лету (записывать данные сразу в ZIP)
- 🔗 Выгружать данные непосредственно в базу данных (SQL, PostgreSQL)
- ☁️ Сохранять файлы в облачное хранилище (Yandex Disk, Google Drive) через API
- 🔐 Ограничивайте доступ к папкам с выгруженными файлами — настраивайте права доступа в Windows
- 🗑️ Удаляйте временные файлы — не оставляйте конфиденциальные данные в открытых папках
- 🔄 Используйте шифрование для файлов с персональными данными (ФИО, паспортные данные, ИНН)
- 📋 Ведите журнал выгрузок — фиксируйте, какие данные и когда были выгружены
- 🔑 Используйте сертификаты ЭЦП для подтверждения подлинности файлов
- 📡 Настраивайте SFTP вместо обычного FTP для передачи файлов
- 🔍 Ведите логи передачи с указанием времени, объёма данных и получателя
Если при открытии выгруженного файла вы видите вместо кириллицы непонятные символы (например, Наименование), проблема в кодировке. Исправляется это так:
Откройте файл через Excel|Перейдите на вкладку"Данные"|Выберите"Из текста/CSV"|Укажите кодировку"Windows-1251" или"UTF-8"|Загрузите данные-->
⚠️ Внимание: При выгрузке больших отчётов (более 100 000 строк) 1С может"зависнуть" или выдать ошибку нехватки памяти. В этом случае разбейте отчёт на части по периодам или используйте программную выгрузку (см. раздел 4).
| Формат файла | Макс. строк | Поддержка формул | Размер файла | Совместимость |
|---|---|---|---|---|
| XLS | 65 536 | Да | Большой | Excel 97-2003 |
| XLSX | 1 048 576 | Да | Малый | Excel 2007+ |
| ODS | 1 048 576 | Да | Средний | LibreOffice, OpenOffice |
| CSV | Не ограничено | Нет | Минимальный | Любой табличный редактор |
2. Сохранение отчётов в файлы других форматов (PDF, TXT, HTML)
Помимо Excel, 1С позволяет сохранять отчёты в другие популярные форматы. Это полезно, если вам нужно:
Инструкция для сохранения в альтернативные форматы:
При сохранении в PDF обратите внимание на настройки печати:
Если при сохранении в PDF таблица обрезается по краям, перед выгрузкой уменьшите шрифт в настройках отчёта или разверните окно 1С на весь экран.
⚠️ Внимание: Формат MXD предназначен только для внутреннего использования в 1С. Файлы с таким расширением нельзя открыть в других программах — они содержат служебную информацию о макете отчёта.
3. Выгрузка данных через обработку"Универсальный обмен данными"
Для более гибкой выгрузки данных (например, когда нужно сохранить не отчёт, а справочники или документы) в 1С предусмотрена стандартная обработка Универсальный обмен данными. Она позволяет:
Как найти и использовать эту обработку:
Пример настройки выгрузки справочника Контрагенты в XML:
Источник: Справочник.Контрагенты
Формат: XML (Универсальный обмен данными)
Файл: C:\Export\контрагенты_2026.xml
Параметры:
- Выгружать группы = Да
- Выгружать пометки удаления = Нет
- Кодировка = UTF-8
Если обработка UnivObm.epf отсутствует в вашей установке, её можно:
Что делать если обработка выдаёт ошибку"Недостаточно прав"
Ошибка возникает если у пользователя нет прав на чтение выгружаемых данных. Решение: 1) Зайдите в 1С под администратором; 2) Откройте"Администрирование → Пользователи"; 3) Найдите своего пользователя и добавьте ему роль"Полные права" или"Выгрузка данных".
4. Программная запись файлов на встроенном языке 1С
Для автоматизации выгрузки данных или создания файлов по расписанию используется встроенный язык 1С:Предприятие. Этот метод требует знания основ программирования, но даёт максимальную гибкость.
Рассмотрим триных сценария:
4.1. Запись текстового файла (TXT, CSV)
Пример кода для сохранения данных в файл C:\Temp\export.txt:
Текст = Новый ЗаписьТекста;
Текст.Открыть("C:\Temp\export.txt", КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Номер;Наименование;Цена");
Для Каждого Товар Из Справочник.Номенклатура Цикл
Текст.ЗаписатьСтроку(Товар.Артикул +";" + Товар.Наименование +";" + Товар.Цена);
КонецЦикла;
Текст.Закрыть;
Особенности работы с текстовыми файлами:
4.2. Создание XML-файла
XML часто используется для обмена данными между системами. Пример создания файла с данными о контрагентах:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Export\контрагенты.xml","UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML;
ЗаписьXML.ЗаписатьНачалоЭлемента("Контрагенты");
Выборка = Справочник.Контрагенты.Выбрать;
Пока Выборка.Следующий Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("Контрагент");
ЗаписьXML.ЗаписатьАтрибут("Ид", Выборка.Ссылка.УникальныйИдентификатор);
ЗаписьXML.ЗаписатьЭлемент("Наименование", Выборка.Наименование);
ЗаписьXML.ЗаписатьЭлемент("ИНН", Выборка.ИНН);
ЗаписьXML.ЗаписатьКонецЭлемента; // Контрагент
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента; // Контрагенты
ЗаписьXML.Закрыть;
4.3. Генерация JSON-файла
Для работы с JSON в 1С 8.3.14+ доступен объект ЗаписьJSON, который автоматически преобразует данные 1С в JSON-формат с учётом вложенных структур. Пример:
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку;
ЗаписьJSON.ЗаписатьНачалоОбъекта;
ЗаписьJSON.ЗаписатьКлюч("ДатаВыгрузки");
ЗаписьJSON.ЗаписатьЗначение(ТекущаяДата);
ЗаписьJSON.ЗаписатьКлюч("Товары");
ЗаписьJSON.ЗаписатьНачалоМассива;
Выборка = Справочник.Номенклатура.Выбрать;
Пока Выборка.Следующий Цикл
ЗаписьJSON.ЗаписатьНачалоОбъекта;
ЗаписьJSON.ЗаписатьКлючИЗначение("Код", Выборка.Код);
ЗаписьJSON.ЗаписатьКлючИЗначение("Наименование", Выборка.Наименование);
ЗаписьJSON.ЗаписатьКонецОбъекта;
КонецЦикла;
ЗаписьJSON.ЗаписатьКонецМассива;
ЗаписьJSON.ЗаписатьКонецОбъекта;
ТекстJSON = ЗаписьJSON.Закрыть;
ТекстJSON.Записать("C:\Export\товары.json", КодировкаТекста.UTF8);
⚠️ Внимание: При записи файлов программно путь указывается относительно сервера 1С (для файлового варианта) или сервера приложений (для клиент-серверного). Используйте полные пути (например,C:\Export\file.txt) или функции вродеКаталогДокументовдля получения путей к системным папкам.
5. Автоматическая выгрузка по расписанию
Если файлы нужно создавать регулярно (например, ежедневно выгружать остатки товаров), можно настроить автоматическую выгрузку с помощью регламентных заданий.
Инструкция по настройке:
Преимущества автоматической выгрузки:
Для отладки регламентных заданий используйте журнал регистрации (Администрирование → Журнал регистрации). Там отображаются все ошибки выполнения автоматических операций.
6. Распространённые ошибки и их решение
При записи файлов из 1С пользователи часто сталкиваются с типичными проблемами. Разберём самые частые из них и способы их устранения.
| Ошибка | Причина | Решение |
|---|---|---|
| Недостаточно прав для записи файла | 1С не имеет прав на запись в указанную папку | Используйте папки с открытым доступом (например, C:\Temp) или настройте права на папку в Windows |
| Файл не найден после выгрузки | Указан неверный путь или файл сохранён в другом месте | Проверьте путь в настройках выгрузки. Используйте полные пути (например, C:\Export\file.xlsx) |
| Русские буквы отображаются как"кракозябры" | Неверная кодировка при записи файла | Явно указывайте кодировку UTF-8 или Windows-1251 в параметрах выгрузки |
| Ошибка"Неверный формат файла" | Попытка открыть CSV-файл как XLS или наоборот | Проверьте расширение файла и используйте соответствующую программу для открытия |
| Данные в Excel отображаются в одной колонке | Неверный разделитель в CSV-файле | При импорте в Excel укажите разделитель ; (точка с запятой) |
Если вы получаете ошибку Ошибка при вызове метода контекста (Записать): Доступ запрещён, это означает, что:
Решения:
Для программистов: если при записи файла возникает ошибка Исключение при вызове метода Записать, добавьте обработку исключений:
Попытка
Текст.Записать("C:\Export\data.txt");
Исключение
Сообщить("Ошибка записи файла:" + ОписаниеОшибки);
Текст.Закрыть;
КонецПопытки;
7. Оптимизация больших файлов
При выгрузке больших объёмов данных (десятки тысяч строк) 1С может работать медленно или выдавать ошибки нехватки памяти. Вот несколько способов оптимизации:
Для пользователей:
Для программистов:
Пример оптимизированного кода для выгрузки большого справочника:
// Оптимизированная выгрузка с пакетной обработкой
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ ПЕРВЫЕ 1000
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|УПОРЯДОЧИТЬ ПО
| Номенклатура.Наименование";
Текст = Новый ЗаписьТекста;
Текст.Открыть("C:\Export\big_export.csv", КодировкаТекста.UTF8);
Текст.ЗаписатьСтроку("Ссылка;Наименование");
Позиция = 0;
Пока Истина Цикл
Запрос.УстановитьПараметр("Смещение", Позиция);
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
Если НЕ Выборка.Следующий Тогда
Прервать; // Данные закончились
КонецЕсли;
Пока Выборка.Следующий Цикл
Текст.ЗаписатьСтроку(Выборка.Ссылка.УникальныйИдентификатор +";" + Выборка.Наименование);
КонецЦикла;
Позиция = Позиция + 1000;
Сообщить("Обработано записей:" + Позиция);
КонецЦикла;
Текст.Закрыть;
Для очень больших файлов (более 1 ГБ) рассмотрите возможность:
8. Безопасность при работе с файлами
При записи файлов из 1С важно соблюдать меры безопасности, чтобы не допустить утечки данных или повреждения системы.
Основные правила:
Пример кода для записи файла с шифрованием (используется алгоритм AES-256):
// Шифрование файла после выгрузки
Текст = Новый ЗаписьТекста;
Текст.Открыть("C:\Temp\data.txt");
Текст.ЗаписатьСтроку("Конфиденциальные данные...");
Текст.Закрыть;
// Шифруем файл
Шифрование = Новый ШифрованиеДанных;
Шифрование.УстановитьПароль("СложныйПароль123!");
Шифрование.ЗашифроватьФайл("C:\Temp\data.txt","C:\Temp\data.enc");
// Удаляем оригинальный файл
УдалитьФайлы("C:\Temp\data.txt");
Для автоматизированных систем обмена данными:
⚠️ Внимание: При выгрузке данных, содержащих персональную информацию (