Работа с платформой 1С:Предприятие неизбежно сталкивает пользователей и разработчиков с необходимостью обмена данными между различными системами. Часто возникает ситуация, когда стандартный формат выгрузки не подходит для стороннего ПО, сайта или контрагента. Вопрос о том, как изменить формат файла 1С, является одним из самых частых в технической поддержке.

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

В большинстве случаев под "изменением формата" подразумевается не просто смена расширения, а трансформация внутренней структуры данных. Например, превращение сложной иерархии справочника в плоскую таблицу CSV или конвертация отчета из формата MXL в PDF для отправки клиенту. Давайте разберем основные сценарии и инструменты, доступные для этих целей.

Основные форматы обмена данными в экосистеме 1С

Прежде чем приступать к конвертации, необходимо четко определить целевой формат. Платформа 1С:Предприятие поддерживает множество протоколов и форматов, каждый из которых имеет свою область применения. Ошибочный выбор формата на этапе планирования может привести к потере данных или невозможности их прочтения принимающей стороной.

Наиболее универсальным стандартом де-факто является XML. Он позволяет передавать структурированные данные с сохранением иерархии и типов. Однако для веб-интеграций все чаще используется JSON, который легче парсить в современных языках программирования. Для бухгалтерского обмена между разными конфигурациями 1С исторически используется формат DT (Data Transfer) или универсальный обмен через XDTO.

Отдельно стоит упомянуть форматы, предназначенные для визуального представления или печати. Табличные документы сохраняются в проприетарном формате MXL, который открывается только в 1С, либо конвертируются в PDF, XLSX или ODS для внешних пользователей. Выбор между ними зависит от того, нужно ли получателю редактировать данные или только просматривать их.

  • 📄 XML — универсальный текстовый формат для хранения и передачи структурированных данных, поддерживается большинством систем.
  • 📊 CSV / TXT — простые текстовые файлы с разделителями, идеальны для импорта в Excel или старые учетные системы.
  • 📦 DT / CF — специализированные форматы 1С для переноса метаданных, обработок или полных выгрузок информационных баз.

⚠️ Внимание: При выборе формата JSON убедитесь, что принимающая система корректно обрабатывает кодировку UTF-8 без BOM, иначе русские символы могут отображаться некорректно.

📊 Какой формат вы чаще всего используете для обмена?
XML
JSON
CSV (Текст)
Excel (XLSX)
Другой

Использование штатных обработок для конвертации файлов

Для рядовых пользователей, не обладающих навыками программирования, платформа предоставляет набор штатных средств. Самый простой способ изменить формат файла — воспользоваться универсальными обработками, входящими в состав поставки или доступными в библиотеке стандартных подсистем (БСП). Эти инструменты позволяют выполнять массовую выгрузку данных без написания кода.

Часто используется механизм "Универсальный обмен данными в формате XML". Он позволяет настроить правила конвертации, где вы явно указываете, какие объекты выгружать и в каком виде. В интерфейсе обработки можно задать путь к файлу и выбрать формат сериализации. Это особенно актуально при переносе данных между разными версиями конфигураций, например, из "Бухгалтерии" в "Управление торговлей".

Для работы с печатными формами и отчетами встроен функционал сохранения. Открыв любой отчет или документ, вы можете нажать кнопку "Еще" и выбрать пункт "Сохранить как". Система предложит список доступных расширений.

☑️ Алгоритм штатной выгрузки

Выполнено: 0 / 5

Если штатных возможностей недостаточно, например, требуется специфическая структура XML-тегов, придется прибегнуть к использованию внешних обработок. Их можно загрузить через меню Файл → Открыть в режиме Предприятия. Многие такие утилиты распространяются свободно на портале ИТС или в сообществах разработчиков.

Программная конвертация через код 1С

Для разработчиков изменение формата файла 1С — это задача, решаемая на уровне языка запросов и встроенных объектов. Платформа предоставляет мощные классы для работы с файловой системой и потоками данных. Ключевым объектом здесь является ЗаписьXML и ЧтениеXML, которые позволяют вручную формировать структуру выходного файла.

Процесс программирования обычно строится по следующему алгоритму: сначала формируется запрос к базе данных для получения необходимых записей. Затем создается объект записи файла, открывается поток, и данные последовательно сериализуются. Такой подход дает полный контроль над тем, как именно будут называться теги, атрибуты и в каком порядке они будут следовать в итоговом документе.

Процедура ВыгрузитьВXML(ИмяФайла)

Запись = Новый ЗаписьXML;

Запись.ОткрытьФайл(ИмяФайла);

Запись.ЗаписатьОбъявлениеXML();

Запись.ЗаписатьНачалоЭлемента("Данные");

Для каждого Элемент из МассивДанных Цикл

Запись.ЗаписатьНачалоЭлемента("Товар");

Запись.ЗаписатьАтрибут("Наименование", Элемент.Наименование);

Запись.ЗаписатьКонецЭлемента();

КонецЦикла;

Запись.ЗаписатьКонецЭлемента();

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

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

При работе с большими объемами данных критически важно использовать потоковую запись, а не загружать весь массив в оперативную память. Это предотвратит падение сервера или клиента при выгрузке тысяч документов. Также стоит обратить внимание на класс JSONWriter, который появился в современных версиях платформы и значительно упрощает создание JSON-файлов по сравнению с ручным формированием строк.

Особенности работы с потоками

При использовании объектов РаботаСФайлами и Потоки всегда закрывайте их в блоке Попытка..Исключение, чтобы избежать блокировки файлов операционной системой, даже если возникла ошибка в процессе записи.

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

Конвертация печатных форм и табличных документов

Отдельный пласт задач связан с изменением формата визуальных отчетов. Пользователи часто спрашивают, как сохранить макет 1С в Excel так, чтобы не съехали формулы или форматирование. Внутренний формат табличного документа 1С (MXL) богат возможностями, но не все из них поддерживаются внешними офисными пакетами.

При сохранении в формат XLSX платформа пытается сопоставить свои стили со стилями Excel. Однако сложные границы, объединение ячеек и условное форматирование могут интерпретироваться по-разному. Для максимальной совместимости рекомендуется использовать простые стили или сохранять отчет в формате ODS (OpenDocument Spreadsheet), который является открытым стандартом.

Исходный формат Целевой формат Сохранение формул Сохранение стилей Рекомендуемое использование
Табличный документ (1С) XLSX (Excel) Частичное Высокое Для дальнейшей обработки данных пользователем
Табличный документ (1С) PDF Нет Точное (пиксель-в-пиксель) Для отправки документов на печать или в госорганы
Табличный документ (1С) HTML Нет Среднее Для публикации отчетов на веб-сайтах
Табличный документ (1С) CSV Нет Нет (только текст) Для импорта в другие базы данных или CRM

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

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

💡

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

Специфика работы с текстовыми файлами и кодировками

Одной из самых распространенных проблем при изменении формата файла 1С является неправильная кодировка. При выгрузке в текстовые форматы (TXT, CSV, XML) по умолчанию может использоваться кодировка системы, что приводит к "кракозябрам" при открытии файла в другой операционной системе или редакторе.

В языке 1С при создании объекта ТекстовыйДокумент или ЗаписьТекста необходимо явно указывать параметр кодировки. Стандартом для обмена данными является UTF-8. Игнорирование этого параметра — частая ошибка начинающих разработчиков. Особенно это критично при формировании файлов для загрузки на маркетплейсы или в банковские системы, которые строго валидируют входящие данные.

Рассмотрим пример корректной записи текстового файла с разделителями. Здесь мы явно задаем кодировку и символ разделителя, чтобы файл корректно открывался в Excel:

Процедура СоздатьCSV(ПутьКФайлу)

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

ТекстЗаписи.ЗаписатьСтроку("Артикул;Наименование;Цена");

ТекстЗаписи.ЗаписатьСтроку("001;Товар А;100.00");

ТекстЗаписи.ЗаписатьСтроку("002;Товар Б;250.50");

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

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

Также стоит упомянуть про BOM (Byte Order Mark). Некоторые старые системы не умеют читать UTF-8 с BOM, а некоторые, наоборот, требуют его наличия. В 1С это контролируется свойством объекта записи. Если вы меняете формат файла для интеграции с legacy-системой, этот нюанс нужно проверить в первую очередь.

💡

Всегда явно указывайте кодировку UTF-8 при создании текстовых файлов в 1С. Это избавит от 90% проблем с некорректным отображением русских букв в сторонних системах.

Автоматизация процесса смены форматов

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

Для реализации такого сценария создается обработка, которая помещается в автозапуск или вызывается через планировщик задач операционной системы с ключами командной строки. Это позволяет запускать 1С в фоновом режиме без интерфейса, что экономит ресурсы сервера. Важно предусмотреть логирование процесса, чтобы в случае сбоя конвертации администратор мог быстро найти причину в журнале регистрации.

Современные версии платформы поддерживают работу с HTTP-сервисами, что позволяет вообще отказаться от промежуточных файлов. Данные могут передаваться напрямую в формате JSON или XML по сети. Однако, если требованием контракта является именно наличие файла определенного формата в определенной папке, использование файлового обмена остается безальтернативным вариантом.

⚠️ Внимание: При автоматической выгрузке файлов в общую сетевую папку убедитесь, что у службы, от имени которой запущен сервер 1С, есть права на запись в эту директорию. Частая ошибка — запуск от имени Local System без доступа к сетевым ресурсам.

Как отладить фоновую выгрузку?

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

Часто встречающиеся ошибки и способы их решения

В процессе работы пользователи сталкиваются с рядом типовых проблем. Самая частая из них — ошибка "Файл занят другим процессом". Это происходит, когда скрипт пытается перезаписать файл, который в данный момент открыт в Excel пользователем. Решение заключается в добавлении проверки существования файла и попытке его удаления перед записью, либо в генерации уникальных имен файлов с добавлением временной метки.

Другая распространенная проблема — несоответствие структуры файла ожиданиям принимающей системы. Например, отсутствие обязательного тега или неверный формат даты (ДД.ММ.ГГГГ вместо ГГГГ-ММ-ДД). Для решения таких задач используйте инструменты валидации XML (XSD схемы) или предварительно тестируйте выгрузку на тестовых данных малого объема.

  • Ошибка доступа — проверьте права пользователя 1С и права службы сервера на папку выгрузки.
  • Неверная кодировка — убедитесь, что используется UTF-8 без BOM (если не требуется иное).
  • Переполнение памяти — при выгрузке больших объемов используйте циклическую обработку с выборкой по частям, а не одним запросом.

Иногда проблема кроется не в 1С, а в настройках антивируса, который блокирует создание исполняемых файлов или скриптов в определенных директориях. В таких случаях необходимо добавить папку обмена в исключения защитного ПО.

💡

Используйте уникальные имена файлов, добавляя к ним дату и время в формате ГГММЧЧММ, чтобы избежать конфликтов при повторном запуске обработки в одном и том же каталоге.

Можно ли изменить формат файла 1С без программирования?

Да, для базовых задач (сохранение отчетов в Excel, PDF, выгрузка списков в CSV) достаточно использовать штатные кнопки интерфейса "Сохранить как" или универсальные обработки обмена, входящие в поставку конфигурации.

Почему при открытии CSV файла в Excel все данные в одном столбце?

Это происходит из-за несовпадения разделителя. В русскоязычной версии Excel разделителем по умолчанию является точка с запятой (;), а многие системы выгружают CSV с запятой (,). При открытии используйте мастер импорта текста и укажите правильный разделитель.

Как конвертировать файл обработки (.cf) в другой формат?

Файлы расширений.cf и.cfu являются архивами метаданных 1С. Их нельзя просто переименовать. Для извлечения содержимого нужно использовать режим Конфигуратора: "Конфигурация → Выгрузить конфигурацию в файлы", что распакует метаданные в набор XML-файлов.

Безопасно ли менять расширение файла вручную в проводнике?

Нет, это не изменит внутреннюю структуру файла. Файл с именем "otchet.xml", внутри которого бинарные данные 1С, не станет читаемым XML. Конвертация требует обязательной пересериализации данных через программу или обработку.

Какой формат лучше выбрать для передачи данных программисту?

Наиболее предпочтительным является формат XML или JSON, так как они сохраняют структуру данных и типы. Для простых таблиц подойдет CSV. Избегайте передачи данных в формате печатных форм (PDF, MXL), если программисту нужно анализировать сами значения, а не внешний вид отчета.