Полное руководство: как формировать и выгружать файлы из 1С
Формировать и выгружать файлы из 1С можно штатными средствами обмена, программным кодом или через интерфейс. Выбор способа зависит от задачи: интеграция с внешними системами, обмен между базами или сохранение печатных форм и отчетов.
Оглавление
Штатные механизмы обмена и интеграции
Для регулярной выгрузки данных в другие базы 1С или внешние системы используются специализированные инструменты:
- Конвертация данных 3.0 (КД 3.0): Основной инструмент для настройки обмена между конфигурациями на управляемых формах. Позволяет настроить правила регистрации, отбора и форматирования данных без глубокого программирования. Обмен может происходить через файлы (XML, JSON), COM-соединение, HTTP-сервисы или RabbitMQ/Kafka.
- Универсальный формат Enterprise Data: Стандартный XML-формат обмена, поддерживаемый большинством типовых конфигураций. Упрощает настройку синхронизации через «Синхронизацию данных» в интерфейсе программы.
- HTTP-сервисы и Web-сервисы: Для интеграции с сайтами, маркетплейсами и мобильными приложениями. Данные формируются программно в формате JSON или XML и передаются по протоколу HTTP/HTTPS.
- EDI и ЭДО: Для выгрузки заказов, накладных и счетов-фактур контрагентам через операторов электронного документооборота. Настройка выполняется через рабочие места «ЭДО» или «Передача документов в банк».
Программная выгрузка файлов кодом
Если штатные средства не подходят, файлы формируются кодом на встроенном языке 1С.
| Объект платформы | Назначение |
|---|---|
ЗаписьТекста | Выгрузка табличных данных с разделителями в CSV и TXT |
ЗаписьJSON и ЗаписьXML | Формирование структурированных файлов для API и веб-сервисов |
ДвоичныеДанные | Сохранение картинок, PDF и архивов на диск или передача через интернет |
В клиент-серверном варианте нельзя напрямую писать на диск клиента. Файл формируется на сервере, помещается во временное хранилище, а затем передается клиенту через ПолучитьИзВременногоХранилища() и сохраняется диалогом выбора файла.
Пример записи текстового файла:
Запись = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Колонка1;Колонка2");
// Цикл по выборке...
Запись.Закрыть();
Сохранение печатных форм и отчетов
- Сохранение из интерфейса: Кнопка «Сохранить как» в окне предварительного просмотра позволяет экспортировать документ в PDF, Excel, Word, HTML, OpenDocument.
- Программное формирование: Метод
Записать()у объектовТабличныйДокумент,ДокументWord,ГрафическаяСхемапозволяет сохранить файл на сервере или передать пользователю без открытия окна просмотра. - Пакетная печать: Использование обработчиков пакетной печати для массового сохранения документов в отдельные файлы (полезно для реестров, актов сверки).
Безопасность и производительность при работе с файлами
- Безопасный режим: В облачных и арендованных базах доступ к файловой системе может быть ограничен. Используйте разрешенные каталоги и объекты платформы вместо прямых вызовов ОС.
- Асинхронность: Операции с файлами на клиенте следует выполнять асинхронно, чтобы не блокировать интерфейс пользователя.
- Ограничения по размеру: При передаче больших файлов через HTTP или временное хранилище учитывайте лимиты платформы и веб-сервера. Для объемных выгрузок используйте потоковую запись или разбиение на части.
Частые ошибки
- Прямая запись на диск клиента в клиент-серверном варианте: В архитектуре клиент-сервер код выполняется на сервере, поэтому прямая попытка записать файл по локальному пути клиента приведет к ошибке. Необходимо использовать временное хранилище и передачу файла через диалог сохранения.
- Игнорирование безопасного режима: В облачных базах прямые вызовы ОС для работы с файловой системой блокируются. Нужно использовать штатные объекты платформы и разрешенные каталоги.
- Синхронное чтение и запись на клиенте: Блокирует интерфейс пользователя. Операции с файлами на клиенте следует выполнять асинхронно.
FAQ
В каких форматах можно сохранить печатную форму из интерфейса 1С? В окне предварительного просмотра доступна кнопка «Сохранить как», которая позволяет экспортировать документ в PDF, Excel, Word, HTML и OpenDocument.
Как настроить регулярный обмен данными между базами 1С? Для этого используется Конвертация данных 3.0 (КД 3.0) или универсальный XML-формат Enterprise Data. Они позволяют настроить правила регистрации, отбора и форматирования данных без глубокого программирования, а синхронизация запускается через интерфейс «Синхронизация данных».
Как выгрузить данные на сайт или маркетплейс? Для интеграции с внешними системами создаются HTTP-сервисы и Web-сервисы. Данные формируются программно в формате JSON или XML и передаются по протоколу HTTP/HTTPS.