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

Многие ошибочно считают, что для работы с файлами обязательно нужен доступ к конфигуратору или знание 1С-скриптов. На самом деле даже рядовой пользователь может загружать данные через типовой функционал — главное знать, где искать нужные кнопки и какие форматы поддерживаются"из коробки". С другой стороны, разработчики получают гораздо больше возможностей: от чтения бинарных файлов до автоматизации обмена через REST API. В этой статье мы разберём оба подхода — с нуля до продвинутых техник.

Прежде чем приступать, убедитесь, что у вас есть:

  • 📁 Права на чтение/запись в каталоге с файлом (для серверного варианта)
  • 🔑 Доступ к конфигуратору (если планируете писать код)
  • 📊 Подходящий формат файла (1С лучше всего работает с .xlsx, .xml, .csv, .txt)
  • 🔄 Резервная копия базы (при массовой загрузке данных)
📊 Какой формат файлов вы чаще всего загружаете в 1С?
Excel (.xlsx)
XML
Текстовые (.txt,.csv)
Другие форматы

1. Стандартные способы загрузки файлов без программирования

Если вы не разработчик, начинайте с типового функционала — он покрывает 80% задач по импорту данных. Большинство конфигураций (Бухгалтерия 3.0, Управление торговлей 11, Зарплата и управление персоналом) уже содержат обработки для загрузки внешних файлов.

Где искать:

  • 📂 Меню"Файл" →"Открыть" (для просмотра содержимого)
  • 📊 Раздел"Администрирование" →"Загрузка данных" (для импорта в справочники/документы)
  • 🔄 Обработки →"Универсальный обмен данными" (для XML/Excel)

Например, в 1С:Бухгалтерии 3.0 для импорта выписки банка перейдите в Банк → Банковские выписки → Загрузить. Система сама предложит выбрать файл .xlsx или .xml и сопоставить колонки с реквизитами документов. Аналогично работает загрузка прайс-листов в Управлении торговлей через Маркетинг → Ценообразование → Загрузка цен номенклатуры.

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

Для текстовых файлов (.txt, .csv) часто требуется предварительная настройка разделителей. В обработке загрузки укажите:

  • 📌 Разделитель колонок (запятая, точка с запятой, табуляция)
  • 📌 Кодировку (обычно UTF-8 или Windows-1251)
  • 📌 Наличие заголовков в первой строке

Удалить объединённые ячейки|Сохранить в формате.xlsx (не.xls)|Проверить кодировку (UTF-8 для CSV)|Убрать формулы, оставив только значения|Сопоставить колонки с реквизитами 1С-->

2. Загрузка через"Универсальный обмен данными"

Универсальный обмен данными — это встроенная обработка, которая умеет работать с XML, Excel и даже JSON (в новых версиях платформы). Она позволяет гибко настраивать правила преобразования данных и сохранять шаблоны для повторного использования.

Как открыть обработку:

  1. Откройте меню Файл → Открыть.
  2. В поле"Тип файла" выберите Обработка (*.epf).
  3. Перейдите в каталог шаблонов 1С (обычно C:\Program Files\1cv8\templates\) и выберите Univer.epf.

После запуска обработки:

  1. Укажите путь к файлу и его формат.
  2. Выберите объект 1С для загрузки (например, справочник"Номенклатура" или документ"Поступление товаров").
  3. Настройте соответствие полей файла и реквизитов 1С (можно сохранять шаблоны!).
  4. Запустите загрузку и проверьте результат.

Преимущество этого метода — гибкость. Например, вы можете:

  • 🔄 Загружать данные в несколько справочников одновременно
  • 📊 Преобразовывать форматы дат/чисел на лету
  • 🔍 Фильтровать строки по условиям (например, загружать только активную номенклатуру)
⚠️ Внимание: В старых версиях 1С (до 8.3.10) обработка"Универсальный обмен" может не поддерживать .xlsx. В этом случае сохраните файл в формате .xls (Excel 97-2003) или используйте CSV.
Формат файла Поддержка в"Универсальном обмене" Ограничения
.xlsx Да (с 8.3.10+) Не поддерживает объединённые ячейки
.xls Да Ограничение на 65 536 строк
.xml Да Требует XSD-схемы для сложных структур
.csv Да Чувствителен к разделителям и кодировке
.json Да (с 8.3.18+) Нет визуального редактора сопоставления

3. Чтение файлов через встроенный язык 1С (для разработчиков)

Если типовой функционал не подходит, придётся писать код. Встроенный язык предоставляет несколько объектов для работы с файлами:

  • 📄 ТекстовыйДокумент — для .txt, .csv
  • 📊 ТабличныйДокумент — для .xlsx, .xls
  • 📁 Файл — для бинарного чтения/записи
  • 🌐 HTTPСервис — для загрузки файлов по URL

Пример кода для чтения CSV-файла:

// Открываем файл для чтения

ПутьКФайлу ="C:\Data\prices.csv";

Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда

Сообщить("Файл не найден!");

Возврат;

КонецЕсли;

// Чтение построчно

ТекстФайла = Новый ТекстовыйДокумент;

ТекстФайла.Прочитать(ПутьКФайлу);

Строки = ТекстФайла.ПолучитьТекст;

СтрокиМассив = Строки.Разделить(Символы.ПС);

// Обработка каждой строки

Для Каждого Строка Из СтрокиМассив Цикл

Если НЕ ПустаяСтрока(Строка) Тогда

Данные = Строка.Разделить(";"); // Разделитель - точка с запятой

// Здесь логика обработки данных (например, добавление в справочник)

КонецЕсли;

КонецЦикла;

Для работы с Excel удобнее использовать ТабличныйДокумент:

ТабДок = Новый ТабличныйДокумент;

ТабДок.Прочитать("C:\Data\prices.xlsx");

// Получаем область данных

Область = ТабДок.Область("A1:D100"); // Указываем диапазон ячеек

// Чтение ячеек

Для Сч = 1 По Область.Высота Цикл

Номенклатура = Область.Ячейка(Сч, 1).Значение;

Цена = Область.Ячейка(Сч, 3).Значение;

// Дальше логика добавления в справочник или документ

КонецЦикла;

⚠️ Внимание: При чтении Excel-файлов через ТабличныйДокумент 1С преобразует все данные в строки. Чтобы получить числа или даты, используйте функции приведения типов: Число, Дата.
💡

Для ускорения обработки больших файлов (>10 000 строк) используйте ПотокЧтенияТекста вместо ТекстовыйДокумент. Это снижает нагрузку на память.

4. Работа с XML и JSON: особенности и примеры

Форматы XML и JSON чаще всего используются для обмена данными между системами. В 1С для них есть специализированные объекты: ЧтениеXML, ЗаписьXML и ЧтениеJSON (начиная с версии 8.3.18).

Пример чтения XML-файла с банковской выпиской:

ЧтениеXML = Новый ЧтениеXML;

ЧтениеXML.ОткрытьФайл("C:\Bank\statement.xml");

// Пропускаем заголовок

Пока ЧтениеXML.Прочитать Цикл

Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

ИмяЭлемента = ЧтениеXML.Имя;

// Обрабатываем нужные теги

Если ИмяЭлемента ="Документ" Тогда

Номер = ЧтениеXML.ПолучитьАтрибут("Номер");

Дата = ЧтениеXML.ПолучитьАтрибут("Дата");

Сумма = ЧтениеXML.ПолучитьАтрибут("Сумма");

// Сохраняем в документ 1С

КонецЕсли;

КонецЕсли;

КонецЦикла;

ЧтениеXML.Закрыть;

Для JSON код проще, но требует версии платформы не ниже 8.3.18:

ТекстJSON = Новый ЧтениеТекста;

ТекстJSON.Открыть("C:\Data\order.json");

СтрокаJSON = ТекстJSON.ПрочитатьВесьКакСтроку;

ТекстJSON.Закрыть;

Данные = ЧтениеJSON.Прочитать(СтрокаJSON);

// Пример доступа к данным

ЗаказНомер = Данные.Номер;

ДатаЗаказа = Данные.Дата;

Обратите внимание на ключевые моменты:

  • 🔍 XML чувствителен к регистру тегов и структуре. Если файл не соответствует ожидаемой схеме, 1С выдаст ошибку.
  • 📜 Для JSON в 1С нет визуального редактора — только программная обработка.
  • 🔄 При обмене с внешними системами (например, Диадок, Контур.Диадок) используйте готовые обработки от поставщиков — они учитывают специфику форматов.
Как проверить структуру XML-файла перед загрузкой?

Используйте бесплатные инструменты вроде XML Notepad или онлайн-валидаторы (например, https://www.xmlvalidation.com/). Они покажут ошибки в структуре, незакрытые теги или неверные атрибуты. В 1С такие ошибки приводят к падению обработки без явного сообщения о причине.

5. Автоматизация загрузки: планировщик и внешние обработки

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

  • 🕒 Регламентные задания — для запуска обработок по расписанию
  • 🤖 Внешние обработки — для гибкой логики с интерфейсом
  • 🌐 HTTP-сервисы — для загрузки файлов по URL

Пример настройки регламентного задания:

  1. Откройте Администрирование → Поддержка и обслуживание → Регламентные задания.
  2. Создайте новое задание, укажите обработку (например, Univer.epf).
  3. Настройте расписание (ежедневно в 8:00) и параметры (путь к файлу, шаблон загрузки).
  4. Укажите пользователя, от имени которого будет выполняться задание (у него должны быть права!).

Для сложных сценариев (например, скачивание файла с FTP, распаковка ZIP-архива и загрузка данных) пишут внешние обработки. Пример кода для скачивания файла по HTTP:

HTTPСоединение = Новый HTTPСоединение("files.example.com", 80);

Запрос = Новый HTTPЗапрос("/daily_prices.xlsx");

Ответ = HTTPСоединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда

Данные = Ответ.ПолучитьТелоКакДвоичныеДанные;

Данные.Записать("C:\Temp\daily_prices.xlsx");

// Далее загрузка через Универсальный обмен

ЗагрузитьДанныеИзФайла("C:\Temp\daily_prices.xlsx");

Иначе

Сообщить("Ошибка скачивания:" + Ответ.КодСостояния);

КонецЕсли;

⚠️ Внимание: При автоматизации учитывайте права доступа. Регламентное задание выполняется от имени указанного пользователя — у него должны быть права на чтение/запись в каталоге с файлами и на создание документов в 1С.
💡

Для надёжной автоматизации используйте комбинацию: внешняя обработка (логика) + регламентное задание (расписание) + журнал регистрации (контроль ошибок).

6. Ошибки при открытии файлов и способы их решения

Даже при правильной настройке загрузки файлов могут возникать ошибки. Вот самые распространённые и способы их устранения:

Ошибка Причина Решение
"Файл не найден" Неверный путь или нет прав доступа Проверьте путь (используйте \\server\share\ вместо C:\ для сетевых файлов). Запустите 1С от имени администратора.
"Неверный формат файла" Файл повреждён или не соответствует ожидаемой структуре Откройте файл в исходной программе (Excel, блокнот) и сохраните заново. Для XML проверьте валидность через XML-валидатор.
"Недостаточно памяти" Файл слишком большой (>100 МБ) Разбейте файл на части или используйте ПотокЧтенияТекста для построчной обработки.
"Ошибка доступа к файлу" Файл открыт в другой программе или заблокирован антивирусом Закройте все программы, использующие файл. Добавьте исключение в антивирус для каталога с файлами 1С.
"Несовпадение структуры" Колонки в файле не соответствуют реквизитам 1С Настройте сопоставление полей вручную в обработке загрузки или измените структуру файла.

Если ошибка не типична, проверьте журнал регистрации (Администрирование → Журнал регистрации). Он содержит подробные логи с указанием строки кода или обработки, где произошёл сбой. Для ошибок при чтении XML/JSON полезно включить отладку:

ЧтениеXML.УстановитьОтладку(Истина);

Критическая ошибка при загрузке больших файлов (>500 МБ) может привести к падению сеанса 1С. В этом случае используйте внешние утилиты для предварительной обработки (например, разбейте файл на части с помощью PowerShell или Python).

7. Безопасность при работе с внешними файлами

Загрузка данных из внешних источников всегда сопряжена с рисками: от случайного импорта некорректных данных до целенаправленных атак (например, через вредоносные Excel-макросы). Следуйте этим правилам:

  • 🔒 Проверяйте источник файлов. Не загружайте данные из непроверенных источников (например, письма от неизвестных отправителей).
  • 🛡️ Используйте антивирус. Настройте сканирование каталогов, откуда 1С берёт файлы.
  • 📦 Ограничивайте права. Запретите пользователям загружать файлы в обход типовых обработок (через Файл → Открыть).
  • 🔄 Делайте резервные копии. Перед массовой загрузкой данных создайте бэкап базы.

Для администраторов:

  • 🔐 Настройте ролевой доступ так, чтобы только доверенные пользователи могли запускать внешние обработки.
  • 📂 Ограничьте каталоги, откуда 1С может читать файлы (через параметры запуска или групповую политику Windows).
  • 📊 Ведите журнал загрузок: фиксируйте, кто, когда и какие файлы импортировал.

Пример настройки ограничений через параметры запуска 1С:

/DisallowExternalDataProcessing - запрещает обработку внешних данных

/DisallowRunExternalScripts - блокирует выполнение внешних скриптов

⚠️ Внимание: В файлах Excel могут содержаться макросы, которые 1С не блокирует при открытии. Если вы загружаете .xlsx/.xlsm из ненадёжного источника, предварительно откройте файл в Excel с отключёнными макросами и сохраните как .xlsx (без макросов).

FAQ: Частые вопросы по работе с файлами в 1С

Можно ли открыть файл .pdf или .docx в 1С?

Нет, 1С не умеет напрямую работать с этими форматами. Однако вы можете:

  • Сохранить файл на диск и открыть его внешней программой (через ЗапуститьПриложение).
  • Использовать COM-объекты для интеграции с Microsoft Word/Adobe Acrobat (требует лицензии).
  • Преобразовать PDF в текст через сторонние сервисы (например, ABBYY FineReader).
Как загрузить файл больше 2 ГБ? 1С выдаёт ошибку"Недостаточно памяти".

Платформа 1С имеет ограничение на размер обрабатываемых файлов. Решения:

  • Разбейте файл на части (например, по 500 МБ) с помощью Python или PowerShell.
  • Используйте ПотокЧтенияТекста для построчной обработки без загрузки всего файла в память.
  • Загрузите файл во временную базу данных (например, SQLite), а затем импортируйте данные порциями.

Для XML-файлов используйте ЧтениеXML с параметром ПотоковоеЧтение = Истина.

Почему при загрузке Excel даты отображаются как числа (например, 44197 вместо 01.01.2021)?

Это особенность хранения дат в Excel: они представляются как количество дней с 1 января 1900 года. Чтобы преобразовать:

// 44197 - это дата в формате Excel

ДатаExcel = 44197;

Дата1С = Дата(1899, 12, 30) + ДатаExcel;

В типовой обработке"Универсальный обмен" обычно есть галочка"Преобразовывать даты из Excel".

Можно ли открыть файл прямо из облака (Google Drive, Яндекс.Диск)?

Прямой загрузки из облаков в 1С нет, но есть обходные пути:

  • Скачайте файл на локальный диск через браузер, затем загрузите в 1С.
  • Используйте rclone или Google Drive API для автоматического скачивания файлов в сетевую папку, доступную для 1С.
  • Настройте синхронизацию облака с локальной папкой (например, через Google Backup and Sync).

Для автоматизации подходит вариант с HTTP-сервисом, если файл доступен по прямой ссылке.

Как проверить, какой разделитель используется в CSV-файле?

Откройте файл в Блокноте или Notepad++ и посмотрите на первую строку. Распространённые разделители:

  • ; (точка с запятой) — стандарт для Windows
  • , (запятая) — стандарт для macOS/Linux
  • \t (табуляция) — используется в экспорте из некоторых программ

В 1С при настройке загрузки укажите тот же разделитель, что и в файле.