Справочники и Данные · 10 мин
Как загрузить текстовый документ в 1С
Как загрузить текстовый документ в 1С: способы чтения TXT и CSV, обработка «Загрузка данных из табличного документа», код на встроенном языке и типичные ошибки.
Загрузка текстового документа в 1С — типовая задача при переносе справочников, прайсов, выписок и данных из сторонних систем. В зависимости от цели применяются разные инструменты: стандартная обработка загрузки из табличного документа, универсальный обмен данными, чтение файла встроенными средствами языка или простое открытие текста в поле формы.
Прежде чем выбирать способ, определите, что именно нужно сделать с файлом: прочитать его содержимое для просмотра, разобрать построчно и записать данные в справочник или документ, либо загрузить табличные данные (CSV) с сопоставлением колонок реквизитам. От этого зависит и инструмент, и объём подготовительной работы.
В статье разобраны основные сценарии для конфигураций на управляемых формах (1С:Предприятие 8.3): от работы без программирования до чтения файла кодом. Отдельно описаны кодировки, разделители и проверка результата.
Определите формат файла и цель загрузки
Текстовый документ может быть трёх условных типов. Первый — свободный текст (заметки, описания, протоколы), который нужно просто прочитать или сохранить в базе. Второй — структурированный файл с разделителями: CSV, TSV, файл с точкой с запятой, где каждая строка — запись, а колонки отделены символом-разделителем. Третий — файл фиксированного формата (например, банковская выписка или выгрузка из старой системы), где позиции полей заданы жёстко.
Для свободного текста достаточно стандартных средств чтения. Для структурированных файлов удобнее всего обработка загрузки из табличного документа. Для файлов сложного формата потребуется собственная обработка на встроенном языке или готовое специализированное решение (например, обмен с банком для выписок).
Откройте файл в «Блокноте» или Notepad++ и посмотрите: есть ли заголовок колонок, какой разделитель используется, сколько строк содержит данные. Это сэкономит время при настройке сопоставления полей.
Проверьте кодировку и подготовьте файл
Большинство проблем с русскими буквами связано с кодировкой. 1С корректно читает UTF-8 и ANSI (Windows-1251), но если файл сохранён в UTF-8 без BOM или в другой кодировке, кириллица может отобразиться нечитаемыми символами. Откройте файл в Notepad++ и посмотрите кодировку в правом нижнем углу; при необходимости преобразуйте её через меню «Кодировки».
Проверьте разделитель: в русской локали Excel при сохранении CSV обычно использует точку с запятой, а не запятую. Если колонки «слипаются» в одну при открытии — разделитель определён неверно. Также убедитесь, что внутри текстовых полей нет символа-разделителя без кавычек-ограничителей, иначе строка «развалится» на лишние колонки.
Удалите из файла служебные строки: шапки отчётов, итоговые строки, пустые строки в конце. Заголовок колонок лучше оставить — он упростит сопоставление полей при загрузке.
Загрузка через обработку «Загрузка данных из табличного документа»
В типовых конфигурациях на базе Библиотеки стандартных подсистем (УТ 11, ERP, Бухгалтерия 3.0, ЗУП) есть универсальная обработка загрузки данных. В разных конфигурациях она находится в разных местах: например, в УТ 11 — раздел «НСИ и администрирование» → «Загрузка данных из файла»; в некоторых конфигурациях — «Администрирование» → «Загрузка данных из табличного документа». Если обработки нет в меню, её можно скачать с диска ИТС или использовать внешнюю версию.
- 1Откройте текстовый файл в Excel или LibreOffice, укажите правильный разделитель при импорте
- 2Проверьте, что колонки разобраны корректно, и сохраните файл
- 3Откройте обработку «Загрузка данных из табличного документа» в 1С
- 4Выберите, куда загружать: справочник, табличную часть документа или регистр сведений
- 5Вставьте данные копированием из Excel в табличный документ обработки или откройте файл напрямую
- 6На вкладке «Настройка» сопоставьте колонки файла реквизитам объекта
- 7Укажите режим поиска существующих элементов (по коду, наименованию, ИНН)
- 8Нажмите «Загрузить» и проверьте результат в базе
Ключевой этап — сопоставление колонок. Для каждой колонки файла укажите реквизит объекта 1С. Реквизиты, отмеченные как ключевые (поле поиска), определяют, будет ли создан новый элемент или обновлён существующий. Для номенклатуры это обычно артикул или наименование, для контрагентов — ИНН и КПП.
Обработка показывает протокол: сколько элементов создано, сколько обновлено, какие строки не загружены и почему. Не игнорируйте строки с ошибками — обычно это пустые обязательные поля или не найденные ссылки (например, единица измерения, которой нет в базе).
Чтение текстового файла кодом на встроенном языке
Когда нужна гибкая логика — разбор нестандартного формата, проверки, преобразования — файл читают программно. Для этого в языке 1С есть объект ЧтениеТекста, который открывает файл и позволяет читать его целиком или построчно.
Текст = Новый ЧтениеТекста("C:\Данные\price.csv", КодировкаТекста.UTF8);
Строка = Текст.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
Части = СтрРазделить(Строка, ";");
Если Части.Количество() >= 2 Тогда
// Части[0] — наименование, Части[1] — цена
// здесь создаём или обновляем элемент справочника
КонецЕсли;
Строка = Текст.ПрочитатьСтроку();
КонецЦикла;
Текст.Закрыть();
Обратите внимание на второй параметр конструктора — кодировку. Если её не указать, используется кодировка по умолчанию, и кириллица может прочитаться неверно. Для больших файлов построчное чтение предпочтительнее метода Прочитать(), который загружает весь файл в память.
Если обработка выполняется на сервере, а файл выбирает пользователь, используйте механизм помещения файлов: НачатьПомещениеФайлаНаСервер в тонком клиенте. Путь к файлу на клиенте недоступен серверному коду — это частая причина ошибки «файл не найден» в клиент-серверном режиме.
Загрузка текста в реквизит объекта или файл в базу
Иногда задача проще: сохранить текстовый документ в базе как файл или поместить его содержимое в реквизит. Во многих конфигурациях к любому объекту можно прикрепить файл через кнопку со скрепкой (механизм присоединённых файлов БСП) — текстовый документ при этом хранится в базе или в томах на диске и открывается из карточки объекта.
Если нужно поместить содержимое файла в многострочное текстовое поле (например, в описание), программно это делается так: прочитайте файл через ЧтениеТекста методом Прочитать() и присвойте результат строковому реквизиту объекта. Учтите, что у реквизитов типа «Строка» может быть ограничение длины — для больших текстов используйте реквизит неограниченной длины или хранилище значения.
Сравнение способов загрузки
Подходит для CSV/Excel с колонками; не требует программирования; ограничена типовыми объектами
Полный контроль над разбором; требует навыков программирования и доступа к конфигуратору или внешней обработке
Подходит, если нужно просто хранить документ в базе; данные из файла не попадают в реквизиты
Для регулярных обменов между базами 1С; не работает с произвольным TXT без настройки правил
Проверка результата и безопасность данных
После загрузки обязательно сверьте результат с исходным файлом. Минимальный контроль: количество загруженных строк должно совпадать с количеством строк данных в файле (минус заголовок). Откройте несколько элементов справочника и сравните значения реквизитов с исходными строками, особенно числа, даты и ссылочные поля.
Проверьте отсутствие дублей: если поле поиска было настроено неверно, при повторной загрузке того же файла создадутся повторные элементы. В типовых конфигурациях есть отчёты и обработки поиска дублей, либо можно отсортировать список справочника по наименованию.
Как проверить результат
Совпадает с числом строк данных в файле
Меньше — есть незагруженные строки, смотрите протокол; больше — возможны дубли
Текст читаемый, без символов подстановки
Кракозябры — файл прочитан в неверной кодировке
Значения совпадают с файлом, формат корректный
Даты сдвинуты (день/месяц перепутаны), числа обрезаны или стали текстом
Реквизиты заполнены реальными элементами базы
Поля пустые или содержат «битые» ссылки
Частые вопросы по загрузке текстовых файлов
Можно ли загрузить TXT в 1С без программирования?
Да, если файл структурированный (колонки с разделителем). Используйте типовую обработку «Загрузка данных из табличного документа»: откройте файл через Excel, скопируйте данные в табличный документ обработки и сопоставьте колонки реквизитам. Для произвольного текста без структуры без кода не обойтись.
Почему после загрузки русские буквы отображаются нечитаемыми символами?
Файл прочитан не в той кодировке. Откройте его в Notepad++, определите фактическую кодировку и либо преобразуйте файл в UTF-8, либо укажите правильную кодировку в параметрах чтения (КодировкаТекста.ANSI, UTF8 и др.).
Как загрузить CSV, если все данные попадают в одну колонку?
Разделитель в файле отличается от ожидаемого. В русской локали чаще всего используется точка с запятой, а не запятая. Укажите правильный разделитель при импорте в Excel или в параметре функции СтрРазделить при программном разборе.
Файл большой, несколько сотен тысяч строк — что учесть?
Читайте файл построчно, а не целиком в память. Загрузку выполняйте порциями с фиксацией транзакций, иначе одна длинная транзакция может привести к блокировкам и переполнению журнала транзакций в клиент-серверном режиме. Лучше запускать такую загрузку в нерабочее время.
Как избежать дублей при повторной загрузке?
Настройте поле поиска: артикул для номенклатуры, ИНН для контрагентов, код для внутренних справочников. Тогда обработка будет обновлять существующие элементы, а не создавать новые. Перед загрузкой проверьте, что в файле само поле поиска заполнено во всех строках.
Ошибка «файл не найден» при чтении, хотя файл на месте — в чём причина?
Код выполняется на сервере, а путь указан с клиентского компьютера. В клиент-серверном режиме сервер не видит локальные диски пользователя. Поместите файл на сервер через НачатьПомещениеФайлаНаСервер или используйте сетевой путь, доступный серверу.
Что важно запомнить
Способ загрузки зависит от структуры файла: табличные данные — через типовую обработку загрузки, произвольный текст — кодом с ЧтениеТекста, хранение документа — через присоединённые файлы. Всегда проверяйте кодировку и разделитель, настраивайте поле поиска против дублей и перед массовой загрузкой делайте копию базы.