Работа с текстовыми файлами в 1С:Предприятие — одна из самых востребованных задач среди бухгалтеров, программистов и аналитиков.hether выгружаете отчёты для налоговой, формируете прайс-листы для партнёров или сохраняете лог транзакций для аудита — умение корректно сохранять данные в форматах .txt, .csv или .log экономит часы ручной работы. В этой статье разберём все актуальные способы: от базовых действий через интерфейс до написания собственных обработок на встроенном языке 1С.

Особенность работы с текстовыми файлами в 1С 8.3 заключается в гибкости инструментов: система позволяет сохранять данные как вручную (через стандартные отчёты), так и автоматически (с помощью скриптов или внешних обработок). Однако не все пользователи знают, что даже в типовой конфигурации есть скрытые возможности для тонкой настройки выгрузки — например, выбор кодировки (UTF-8, Windows-1251) или разделителей в CSV. Мы раскроем эти нюансы и покажем, как избежать распространённых ошибок, таких как потеря кириллических символов при сохранении в ANSI или неправильное форматирование чисел с разделителями.

1. Сохранение текстовых файлов через стандартные отчёты 1С

Самый простой способ — использовать встроенные механизмы выгрузки данных. Почти все типовые отчёты (Оборотно-сальдовая ведомость, Анализ счёта, Карточка счёта) поддерживают сохранение результатов в текстовых форматах. Рассмотрим пошаговую инструкцию:

  1. Откройте нужный отчёт через меню Отчёты → Стандартные отчёты.
  2. Задайте период и параметры формирования, нажмите Сформировать.
  3. В окне с результатами найдите кнопку Сохранить как... (или Экспорт в зависимости от версии платформы).
  4. Выберите формат: Текстовый документ (.txt) или CSV (.csv).
  5. Укажите путь для сохранения и подтвердите действие.

⚠️ Внимание: При сохранении в CSV через стандартные отчёты разделителем по умолчанию выступает точка с запятой (;). Если ваша целевая система (например, Excel или Google Sheets) ожидает запятую (,), данные могут отобразиться некорректно. В этом случае потребуется либо ручная правка файла, либо использование альтернативных методов выгрузки.

📊 Какой формат текстовых файлов вы используете чаще?
TXT
CSV
LOG
XML
Другой

2. Выгрузка данных в текстовый файл через «Все функции»

Если стандартные отчёты не подходят (например, нужно сохранить данные справочника или документа в нетиповом формате), воспользуйтесь универсальным механизмом Все функции. Этот метод работает в большинстве конфигураций, включая 1С:Бухгалтерия, 1С:Управление торговлей и 1С:Зарплата и управление персоналом.

Алгоритм действий:

  1. Откройте нужный справочник или журнал документов.
  2. Выделите строки, которые требуется экспортировать (или оставьте без выделения, чтобы экспортировать всё).
  3. Нажмите Ещё → Все функции (или Правка → Все функции в некоторых конфигурациях).
  4. В списке найдите команду Сохранить данные... или Выгрузить данные.
  5. Выберите формат Текстовый файл и укажите параметры:
    • 📌 Разделитель полей (табуляция, запятая, точка с запятой).
    • 📌 Кодировка (важно для кириллицы: UTF-8 или Windows-1251).
    • 📌 Разделитель строк (CRLF для Windows, LF для Unix-систем).
  6. 🔹 Совет эксперта: Если в выгружаемых данных есть многострочные тексты (например, комментарии к документам), предварительно замените символы перевода строки (\n) на другой разделитель (например, |), чтобы избежать ошибок при чтении файла.

    Убедиться, что в данных нет специальных символов (кавычки, переводы строк)

    Выбрать кодировку UTF-8 для совместимости с большинством систем

    Проверить разделители полей (точка с запятой подходит для Excel)

    Сохранить файл в папку с коротким путём (без кириллицы в имени)

    -->

    3. Программное сохранение текстовых файлов на встроенном языке 1С

    Для автоматизации выгрузки или создания файлов с нестандартной структурой используйте встроенный язык 1С. Ниже приведён универсальный код, который сохраняет данные из таблицы значений в CSV-файл с учётом кодировки и разделителей:

    Процедура ВыгрузитьВCSV(ТаблицаДанных, ИмяФайла)
    

    // Создаём объект для записи файла

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

    // Формируем заголовок (имена колонок)

    СтрокиЗаголовка = ТаблицаДанных.Колонки.ВыгрузитьКолонки();

    ЗаписьТекста.ЗаписатьСтроку(СтрокаСоединить(СтрокиЗаголовка, ";"));

    // Записываем данные

    Для Каждого Строка Из ТаблицаДанных Цикл

    СтрокиДанных = Новый Массив;

    Для Каждого Колонка Из ТаблицаДанных.Колонки Цикл

    Значение = Строка[Колонка.Имя];

    // Экранируем кавычки и переводы строк

    Если ТипЗнч(Значение) = Тип("Строка") Тогда

    Значение = СтрЗаменить(Значение, """", """""");

    Значение = СтрЗаменить(Значение, Символы.ПС, " ");

    КонецЕсли;

    СтрокиДанных.Добавить("""" + Значение + """");

    КонецЦикла;

    ЗаписьТекста.ЗаписатьСтроку(СтрокаСоединить(СтрокиДанных, ";"));

    КонецЦикла;

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

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

    🔹 Ключевые моменты:

    • 📌 Используйте КодировкаТекста.UTF8 для совместимости с современными системами.
    • 📌 Экранирование кавычек ("""""") обязательно, если данные содержат этот символ.
    • 📌 Для больших файлов (>10 000 строк) используйте ЗаписьТекста.Закрыть() в блоке Попытка...Исключение, чтобы избежать утечек памяти.
💡

Если нужно сохранить файл на сетевом диске, используйте UNC-путь (например, \\server\share\file.txt) и убедитесь, что у пользователя 1С есть права на запись.

4. Сохранение логов и отладочной информации

При отладке конфигураций или интеграций часто требуется сохранять логи выполнения скриптов. В 1С 8.3 для этого есть специальный объект ЗаписьЛога, но его возможности ограничены. Альтернатива — ручная запись в текстовый файл:

Процедура ЗаписатьВЛог(Сообщение, ИмяФайлаЛога = "C:\Temp\1C_Log.txt")

Попытка

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

ЗаписьТекста.ЗаписатьСтроку(Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd HH:mm:ss") + " | " + Сообщение);

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

Исключение

ЗаписатьВЛог("ОШИБКА ЗАПИСИ ЛОГА: " + ОписаниеОшибки(), ИмяФайлаЛога);

КонецПопытки;

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

// Пример использования:

ЗаписатьВЛог("Начало обработки документа №12345");

⚠️ Внимание: При записи логов в сетевые папки или облачные диски (например, Yandex.Disk или Google Drive) учитывайте задержки синхронизации. Для критических систем лучше использовать локальные пути или специализированные сервисы логирования (например, ELK Stack).

Метод записи лога Плюсы Минусы
ЗаписьЛога (встроенный) Простота использования, интеграция с отладчиком Ограниченный объём (до 10 МБ), сложно настроить формат
Ручная запись в .txt Гибкость формата, неограниченный размер Требует обработки ошибок, возможны проблемы с кодировкой
Внешние системы (ELK, Graylog) Масштабируемость, аналитика в реальном времени Сложность настройки, требует отдельного сервера

5. Автоматизация сохранения файлов через регламентные задания

Если текстовые файлы нужно генерировать регулярно (например, ежедневная выгрузка курсов валют или остатков на складе), настройте регламентное задание. Это позволит избежать ручного запуска и минимизировать ошибки.

Пример создания регламентного задания для выгрузки данных в CSV:

  1. Перейдите в Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте новое задание с типом Выполнение кода на встроенном языке.
  3. В поле Код вставьте процедуру выгрузки (см. раздел 3) с нужными параметрами.
  4. Настройте расписание (например, Ежедневно в 23:00).
  5. Укажите пользователя, от имени которого будет выполняться задание (важно для прав доступа!).

🔹 Важно: При настройке регламентных заданий для выгрузки файлов:

  • 📌 Проверьте права пользователя на запись в целевую папку.
  • 📌 Используйте относительные пути (например, ./Logs/Export_#Дата#.csv), чтобы избежать проблем при переносе базы.
  • 📌 Настройте уведомления об ошибках на email администратора.
Как проверить права доступа для регламентного задания?

Откройте Администрирование → Пользователи и проверьте роль пользователя, под которым выполняется задание. У него должны быть права на:

1. Чтение данных из источников (справочники, документы).

2. Запись файлов на диск (право ВнешниеОбработкиИОтчеты или АдминистрированиеСистемы).

3. Выполнение регламентных заданий (право РегламентныеЗадания).

6. Распространённые ошибки и их решения

Даже опытные пользователи сталкиваются с проблемами при сохранении текстовых файлов. Рассмотрим типичные сценарии и способы их исправления:

Ошибка Причина Решение
Краковые символы вместо кириллицы Неверная кодировка (например, сохранение в ANSI вместо UTF-8) Явно указывайте кодировку при записи: Новый ЗаписьТекста(..., КодировкаТекста.UTF8)
Файл не сохраняется без ошибок Недостаточно прав на запись в папку Проверьте права пользователя Windows на целевую директорию или сохраняйте в %TEMP%
Данные в CSV отображаются в одной колонке Несовпадение разделителей (например, точка с запятой вместо запятой) Откройте файл в Notepad++ и замените разделители или настройте импорт в Excel
Потеря данных при большом объёме Ограничение памяти при работе с ЗаписьТекста Разбейте выгрузку на порции по 5 000–10 000 строк

⚠️ Внимание: Если вы работаете с 1С:Предприятие в режиме Тонкий клиент или Веб-клиент, некоторые методы сохранения файлов могут быть ограничены по соображениям безопасности. В этом случае используйте серверные процедуры или внешние обработки с правами Полные права.

💡

Для критически важных выгрузок всегда тестируйте процесс на небольшом объёме данных перед массовой обработкой. Это поможет выявить проблемы с кодировкой или форматированием на раннем этапе.

7. Альтернативные способы: внешние обработки и интеграции

Если встроенные механизмы не покрывают ваши нужды, рассмотрите следующие варианты:

  • 📌 Внешние обработки: Готовые решения из каталога Infostart или ITS (например, "Универсальная выгрузка в Excel/CSV").
  • 📌 1C:EDT + расширения: Для разработчиков — создание кастомных обработок с гибкой настройкой формата выгрузки.
  • 📌 Интеграция с Python/R: Используйте COM-соединение или REST API для передачи данных в скрипты, которые сохранят файл в нужном формате.
  • 📌 Облачные сервисы: Автоматическая выгрузка в Google Drive или Yandex.Disk через API (требует настройки прокси или прямого доступа к интернету).

🔹 Пример интеграции с Python:

# Python-скрипт для приёма данных из 1С и сохранения в CSV

import pyodbc

import pandas as pd

conn = pyodbc.connect("DRIVER={1C:Enterprise 8.3};SERVER=localhost;REF=DemoBase;")

query = "ВЫБРАТЬ Наименование, Цена ИЗ Справочник.Номенклатура"

df = pd.read_sql(query, conn)

df.to_csv("nomenklatura.csv", index=False, encoding='utf-8-sig', sep=';')

📌 Совет: Для сложных интеграций используйте промежуточные форматы, такие как JSON или XML, а затем конвертируйте их в текстовые файлы. Это упростит обработку данных и уменьшит риск ошибок.

FAQ: Частые вопросы по сохранению текстовых файлов в 1С

Можно ли сохранить текстовый файл напрямую в облако (Google Drive, Yandex.Disk) из 1С?

Да, но для этого потребуется:

  1. Настроить доступ к API облачного сервиса (получить токен доступа).
  2. Использовать HTTP-запросы из 1С (объект HTTPСоединение) или внешний скрипт (Python, PowerShell).
  3. Учесть ограничения Тонкого клиента на работу с сетью.

Готовые решения есть на Infostart (например, обработка "Выгрузка в Google Sheets").

Почему при сохранении в CSV числа отображаются как текст (например, "1000" вместо 1000)?

Это происходит из-за:

  • Кавычек, которыми экранируются все поля (см. код в разделе 3).
  • Формата ячеек в Excel (по умолчанию текстовые данные не конвертируются в числа).

🔹 Решение: В Excel выделите колонку с числами → Главная → Формат → Формат ячеек → выберите Числовой.

Как сохранить файл с именем, содержащим текущую дату (например, Отчёт_2026-05-20.txt)?

Используйте функцию Формат() для формирования имени файла:

ИмяФайла = "C:\Отчеты\Отчёт_" + Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd") + ".txt";

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

Можно ли сохранить текстовый файл на сервере 1С, если клиент работает через RDP?

Да, но:

  • Укажите полный путь на сервере (например, \\SERVER\Share\file.txt).
  • Убедитесь, что у пользователя 1С:Предприятие есть права на запись в эту папку.
  • В Тонком клиенте может потребоваться настройка политики безопасности для доступа к сетевым ресурсам.
Как сохранить данные из отчёта на СКД (Система Компоновки Данных) в текстовый файл?

Для отчётов на СКД:

  1. Сформируйте отчёт и нажмите Ещё → Сохранить как....
  2. Выберите формат Текстовый документ (*.txt) или CSV.
  3. Если нужна кастомная структура, используйте обработку результата компоновки через КомпоновщикМакета.Выполнить().