Файлы с расширением .txt в экосистеме 1С:Предприятие — это далеко не обычные текстовые документы. Они представляют собой специализированный формат обмена данными, который используется для импорта/экспорта информации между конфигурациями, интеграции с внешними системами или резервного копирования критичных данных. В отличие от бинарных форматов вроде .dt или .cf, текстовые файлы 1С TXT можно открыть в любом редактор — от Блокнота до Notepad++, что делает их удобными для ручного контроля и правки.
Основное преимущество формата — его универсальность. Текстовые файлы не привязаны к конкретной версии платформы 1С:Предприятие 8, что позволяет использовать их для миграции данных между разными релизами (например, с 8.2 на 8.3.22). Однако за простоту приходится платить: объём файлов может быть значительным, а скорость обработки — ниже, чем у бинарных аналогов. В этой статье разберём, как устроен формат, где он применяется, и как избежать типичных ошибок при работе с ним.
Если вы когда-нибудь сталкивались с выгрузкой справочников, документов или регистров в .txt через Консоль запросов или стандартные обработки 1С, но не понимали, что именно записано в файле — эта инструкция поможет разобраться. Мы не будем ограничиваться теорией: ниже вы найдёте реальные примеры структуры файлов, скриншоты из конфигуратора и пошаговые рекомендации по настройке обменов.
Что такое формат TXT в 1С и зачем он нужен
Формат 1С TXT — это текстовое представление объектов метаданных и данных 1С:Предприятие, организованное по строгим правилам. Его ключевая особенность: каждый объект (справочник, документ, регистр) описывается в виде набора строк с фиксированной структурой. Например, заголовок документа, его реквизиты и табличные части выгружаются в виде иерархических блоков, разделённых специальными маркерами.
Основные сценарии использования:
- 🔄 Обмен данными между разными базами 1С (в том числе с разными конфигурациями). Например, перенос справочника номенклатуры из 1С:Управление торговлей в 1С:Бухгалтерию.
- 💾 Резервное копирование отдельных объектов (например, справочников контрагентов) без выгрузки всей базы.
- 🔌 Интеграция с внешними системами, которые не поддерживают native-форматы 1С (например,
.xmlили.json). - 🔍 Диагностика и отладка: текстовый формат позволяет быстро найти ошибки в данных (например, некорректные символы или пустые ссылки).
Важно понимать, что TXT — это не универсальный формат для всех задач. Например, для обмена большими объёмами данных (тысячи документов) лучше использовать .xml или .json, а для резервного копирования всей базы — .dt. Текстовые файлы оптимальны для:
- 📄 Небольших выгрузок (до 10 000 строк).
- 🔄 Обменов между сильно отличающимися конфигурациями (где
.xmlможет не подойти из-за различий в структурах). - 🛠️ Ручного редактирования данных (например, массовая замена значений в справочнике).
⚠️ Внимание: Формат TXT не поддерживает хранение двоичных данных (например, картинок или файлов в реквизитах типаХранилищеЗначения). Для таких случаев требуется предварительная конвертация в текстовый вид (например, вBase64).
Структура файла TXT в 1С: разбор на примерах
Файл 1С TXT состоит из логических блоков, каждый из которых описывает один объект (например, элемент справочника или документ). Блоки разделяются пустыми строками, а внутри блока строки имеют фиксированный формат. Рассмотрим структуру на примере выгрузки справочника Номенклатура:
#Номенклатура
Ссылка=846a5d3b-12f8-11ed-861d-0242ac120002
Наименование=Монитор Samsung 24"
Артикул=MON-SAM-24
ЕдиницаИзмерения=796 (шт.)
Группа=Офисная техника
#Номенклатура
Ссылка=91a2b3c4-56d7-11ec-861d-0242ac120002
Наименование=Клавиатура Logitech K120
Артикул=KB-LOG-K120
ЕдиницаИзмерения=796 (шт.)
Группа=Периферия
Как видно из примера:
- 📌 Заголовок блока начинается с символа
#и имени объекта (например,#Номенклатура). - 🔗 Ссылка — это уникальный идентификатор объекта в базе (в формате
UUIDили числовой). - 📝 Далее следуют пары
Ключ=Значениедля каждого реквизита. - 📊 Табличные части (если есть) описываются отдельно, с отступом или специальными маркерами.
Для документов структура сложнее: помимо заголовка и реквизитов, выгружаются табличные части (например, строки документа РеализацияТоваровУслуг). Пример:
#Документ.РеализацияТоваровУслуг
Ссылка=5e3d2c1b-89f0-11ed-861d-0242ac120002
Номер=РТ-000123 от 15.07.2026
Контрагент=ООО "Ромашка" (Ссылка=...)
СуммаДокумента=47200.00
Валюта=Рубль (Ссылка=...)
#Товары
Номенклатура=Монитор Samsung 24" (Ссылка=...)
Количество=2
Цена=23600.00
Сумма=47200.00
⚠️ Внимание: При ручном редактировании файла TXT никогда не изменяйтеСсылкуобъекта — это приведёт к ошибке загрузки. Если нужно создать новый объект, удалите строку соСсылка=полностью.
Как выглядит выгрузка регистра накопления?
В файлах TXT регистры накопления (например, ТоварыНаСкладах) выгружаются как набор записей с указанием измерений, ресурсов и периода. Пример:
#РегистрНакопления.ТоварыНаСкладах
Период=15.07.2026 00:00:00
Склад=Основной склад (Ссылка=...)
Номенклатура=Монитор Samsung 24" (Ссылка=...)
Количество=5
Каждая запись регистра — это отдельный блок с маркером #РегистрНакопления.ИмяРегистра.
Как выгрузить данные в формат TXT: пошаговая инструкция
Выгрузка данных в TXT может выполняться как через стандартные обработки 1С, так и с помощью Консоли запросов или программного кода. Рассмотрим оба способа.
Способ 1: Стандартная обработка "ВыгрузкаЗначений"
Этот метод подходит для пользователей без доступа к конфигуратору:
- Откройте базу в режиме
1С:Предприятие. - Перейдите в меню
Файл → Открыть...и выберите обработкуВыгрузкаЗначений.epf(обычно находится в каталоге.../1C/v8/ExtForms). - В открывшемся окне укажите:
- 📁 Каталог выгрузки (например,
C:\Temp\1C_Export\). - 📄 Имя файла (например,
Номенклатура.txt). - 🔍 Объекты для выгрузки (выберите нужные справочники или документы).
- 📁 Каталог выгрузки (например,
Выгрузить и дождитесь завершения процесса.Способ 2: Выгрузка через Консоль запросов
Для опытных пользователей и разработчиков удобнее использовать Консоль запросов:
- Откройте конфигуратор (
1С:Предприятиев режимеКонфигуратор). - Перейдите в
Сервис → Консоль запросов. - Введите запрос для выгрузки (пример для справочника
Номенклатура):ВыгрузитьЗначения("Справочник.Номенклатура", "C:\Temp\Номенклатура.txt"); - Выполните запрос кнопкой
F5.
Проверьте права доступа к каталогу выгрузки|
Создайте резервную копию базы|
Убедитесь, что в данных нет запрещённых символов (например, # в наименованиях)|
Отключите антивирус (он может блокировать запись файлов)
-->
Для автоматизации выгрузки можно использовать скрипт на встроенном языке 1С:
Процедура ВыгрузитьВTXT()
ПутьФайла = "C:\Temp\Контрагенты.txt";
Выгрузка = Новый ВыгрузкаЗначений();
Выгрузка.Добавить("Справочник.Контрагенты");
Выгрузка.Выгрузить(ПутьФайла);
Сообщить("Выгрузка завершена: " + ПутьФайла);
КонецПроцедуры
⚠️ Внимание: При выгрузке больших объёмов данных (более 10 000 записей) разбейте процесс на части по 5 000–7 000 строк. Это поможет избежать ошибок переполнения памяти в 1С.
Загрузка данных из TXT в 1С: нюансы и типичные ошибки
Загрузка данных из TXT требует особой осторожности: даже небольшая ошибка в формате файла может привести к потере данных или сбою базы. Основные этапы:
Способ 1: Стандартная обработка "ЗагрузкаЗначений"
Алгоритм аналогичен выгрузке:
- Откройте обработку
ЗагрузкаЗначений.epf. - Укажите путь к файлу
.txt. - Выберите режим загрузки:
- 🔄 Добавить новые — создаёт только новые объекты.
- 🔄 Добавить и обновить — обновляет существующие и добавляет новые.
- 🔄 Только обновлять — изменяет только существующие объекты.
Загрузить.Способ 2: Программная загрузка
Для гибкой настройки используйте скрипт:
Процедура ЗагрузитьИзTXT()
ПутьФайла = "C:\Temp\Контрагенты.txt";
Загрузка = Новый ЗагрузкаЗначений();
Загрузка.ДобавитьФайл(ПутьФайла);
Загрузка.Режим = РежимЗагрузкиЗначений.ДобавлятьИОбновлять;
Загрузка.Загрузить();
КонецПроцедуры
Типичные ошибки при загрузке и как их избежать:
| Ошибка | Причина | Решение |
|---|---|---|
Не найден объект: Справочник.Номенклатура |
В файле указан несуществующий справочник или документ. | Проверьте имя объекта в заголовке блока (например, #Номенклатура). |
Некорректный формат даты |
Дата указана в неверном формате (например, 15.07.24 вместо 15.07.2026). |
Используйте формат ДД.ММ.ГГГГ или ГГГГ-ММ-ДД. |
Пустая ссылка на объект |
В файле есть строка Ссылка= без значения. |
Удалите строку со Ссылка= для создания нового объекта. |
Дублирование ссылок |
В файле два объекта с одинаковой ссылкой. | Проверьте уникальность UUID или числовых идентификаторов. |
Перед загрузкой крупных файлов (<50 МБ) откройте 1С:Предприятие в режиме Монопольный (через ярлык с ключом /Monopoly). Это ускорит процесс и снизит риск блокировок.
Отличия TXT от других форматов обмена в 1С
Чтобы выбрать оптимальный формат для обмена данными, важно понимать плюсы и минусы TXT по сравнению с альтернативами:
| Формат | Преимущества | Недостатки | Когда использовать |
|---|---|---|---|
| TXT |
✅ Человекочитаемый ✅ Подходит для ручного редактирования ✅ Не зависит от версии платформы |
❌ Большой размер файлов ❌ Медленная обработка ❌ Нет поддержки двоичных данных |
Небольшие выгрузки, ручная правка, обмен между сильно отличающимися конфигурациями. |
| XML |
✅ Структурированный формат ✅ Поддерживает сложные иерархии ✅ Широко используется для интеграций |
❌ Сложнее для ручного редактирования ❌ Требует XSD-схемы для валидации |
Интеграция с внешними системами, обмен по стандарту EnterpriseData. |
| JSON |
✅ Компактнее XML ✅ Легко парсится в веб-приложениях ✅ Поддерживает вложенные структуры |
❌ Менее стандартизирован в 1С ❌ Требует настройки конвертации |
Обмен с современными API, мобильными приложениями. |
| DT (binary) |
✅ Максимальная скорость ✅ Минимальный размер файлов ✅ Поддерживает все типы данных |
❌ Нечитаемый без 1С ❌ Зависит от версии платформы |
Резервное копирование, перенос баз между идентичными конфигурациями. |
Критический нюанс: формат TXT не сохраняет историю изменений объектов (в отличие от XML/JSON при правильной настройке). Если вам важно отслеживать, кто и когда изменил данные, используйте специализированные механизмы (например, регистры сведений или журнал документов).
Практические примеры использования формата TXT
Разберём реальные кейсы, где TXT оказывается оптимальным решением.
Кейс 1: Перенос справочника номенклатуры между базами
Задача: перенести 3 000 позиций номенклатуры из 1С:Управление торговлей 11 в 1С:Бухгалтерию 3.0.
Решение:
- Выгрузите справочник
Номенклатуравноменклатура.txt. - Откройте файл в Notepad++ и удалите ненужные реквизиты (например,
КартинкаилиОписаниеДляСайта). - Загрузите отредактированный файл в целевую базу.
Преимущество: в TXT легко удалить лишние поля, тогда как в XML пришлось бы править XSD-схему.
Кейс 2: Массовое обновление цен номенклатуры
Задача: увеличить цены на 10% для 500 позиций.
Решение:
- Выгрузите справочник с ценами в
цены.txt. - Используйте Excel для массового пересчёта цен (формула
=B2*1.1). - Сохраните обратно в
TXTи загрузите в базу. - Выгрузите справочник
ФизическиеЛицавсотрудники.txt. - Напишите скрипт на Python, который преобразует TXT в формат, понятный внешней системе.
- Автоматизируйте обмен через
планировщик задач. - 🐢 Загрузка 10 000 строк может занять 10–15 минут (против 1–2 минут для
XML). - 📈 При больших объёмах (<50 000 строк) 1С может "зависнуть" или выдать ошибку нехватки памяти.
- 🔗 В TXT не сохраняются ссылки на объекты в виде
UUID— только в числовом формате (если не настроена специальная обработка). Это может привести к ошибкам при загрузке в другую базу. - 📝 Отсутствует контроль транзакций: если загрузка прервётся, часть данных может остаться изменённой.
- 🔓 Файлы
.txtне шифруются и могут содержать конфиденциальную информацию (например, паспортные данные в справочникеФизическиеЛица). - 🦠 Вирусы могут подменять файлы обмена, если каталог выгрузки не защищён.
- 🔄 При обмене между сильно отличающимися конфигурациями (например, 1С:УТ 10.3 и 1С:ERP 2.5) может потребоваться ручная правка файла.
- 📋 Не все реквизиты поддерживаются: например,
ХранилищеЗначенияилиГрафическаяСхемане выгружаются в TXT.
Важно: перед загрузкой проверьте, что в файле остались только изменённые поля (например, Цена), а не все реквизиты объекта.
Кейс 3: Интеграция с 1С:Зарплата и Управление Персоналом
Задача: передать данные о сотрудниках из 1С:ЗУП в внешнюю систему учёта рабочего времени.
Решение:
Формат TXT идеален для "промежуточных" задач: когда данные нужно подготовить перед финальной загрузкой в другую систему. Например, выгрузить в TXT → отредактировать в Excel → конвертировать в JSON для API.
Ограничения и риски при работе с TXT в 1С
Несмотря на гибкость, формат TXT имеет ряд ограничений, о которых важно помнить:
1. Производительность:
2. Целостность данных:
3. Безопасность:
⚠️ Внимание: Никогда не выгружайте в TXT данные с персонифицированной информацией (например, справочник ФизическиеЛица с паспортными данными) без предварительного шифрования файла. Используйте 7-Zip с паролем или GPG.
4. Совместимость:
FAQ: Частые вопросы по формату TXT в 1С
Можно ли выгрузить в TXT документ с табличной частью более 10 000 строк?
Технически да, но на практике это чревато ошибками переполнения памяти. Рекомендуем разбивать такие документы на части по 5 000–7 000 строк или использовать формат XML.
Как в файле TXT указать пустое значение для реквизита?
Просто пропустите строку с этим реквизитом. Например, если у номенклатуры нет артикула, строка Артикул= не должна присутствовать в блоке.
Можно ли загрузить в 1С файл TXT, отредактированный в Excel?
Да, но с оговорками:
- Сохраняйте файл в кодировке
UTF-8илиWindows-1251(без BOM). - Убедитесь, что Excel не добавил кавычки вокруг значений (например,
Наименование="Монитор"— это ошибка). - Проверьте, что разделители строк —
CR+LF(а не толькоLF).
Почему при загрузке TXT в 1С появляется ошибка "Неверный формат файла"?
Частые причины:
- Файл сохранён в кодировке, отличной от
UTF-8/Windows-1251. - В тексте есть запрещённые символы (например,
#в наименованиях). - Пустые строки между блоками отсутствуют.
- Имя объекта в заголовке блока указано неверно (например,
#Номенклатураавместо#Номенклатура).
Используйте Notepad++ с плагином Compare, чтобы сравнить проблемный файл с корректным примером.
Как автоматизировать обмен данными в формате TXT между двумя базами 1С?
Оптимальный способ — создать внешнюю обработку с использованием объекта ОбменДанными:
Процедура АвтоОбмен()
Источник = Новый ИсточникДанныхФайл("C:\Temp\Export\");
Приемник = Новый ПриемникДанныхФайл("C:\Temp\Import\");
Обмен = Новый ОбменДанными();
Обмен.Источник = Источник;
Обмен.Приемник = Приемник;
Обмен.Выгрузить("Справочник.Номенклатура", "номенклатура.txt");
Обмен.Загрузить("номенклатура.txt");
КонецПроцедуры
Для регулярного обмена настройте Регламентное задание в 1С или используйте планировщик задач Windows.