Импорт текстового файла в 1С 8.3: выписки, таблицы и свой код
Содержание
Способ загрузить txt файл в 1С зависит от того, что внутри. Выписку банка (файл kl_to_1c.txt, первая строка 1CClientBankExchange) загружают штатно: в БП 3.0 — Банк и касса → Банковские выписки, кнопка Загрузить. Таблицу с колонками (номенклатура, контрагенты, строки накладной) сначала открывают в Excel, сохраняют в xlsx и загружают командой загрузки из файла в списке справочника или в табличной части документа. Всё прочее читают кодом: объектами ЧтениеТекста или ТекстовыйДокумент.
Почти все проблемы при импорте txt связаны с двумя вещами: кодировкой (кракозябры вместо русских букв) и форматом чисел и дат. Обе решаются до загрузки, если заранее посмотреть на файл. Инструкция ниже — для платформы 8.3 и интерфейса «Такси», пути меню даны по БП 3.0.
1. Что проверить в текстовом файле до загрузки в 1С
Откройте файл в Notepad++ или другом редакторе, который показывает кодировку и скрытые символы. Обычный «Блокнот» тоже подойдёт, но хуже: он не покажет табуляцию.
Ответьте себе на пять вопросов:
- 🔤 Кодировка. Windows-1251 (ANSI), UTF-8 с BOM, UTF-8 без BOM или DOS (CP866). В Notepad++ она видна в правом нижнем углу.
- ✂️ Разделитель колонок. Табуляция, точка с запятой, запятая, вертикальная черта или фиксированная ширина (каждое поле занимает строго N символов).
- 🔢 Формат чисел.
1 234,50,1234.50или1234,5. Пробел-разделитель тысяч часто оказывается неразрывным, и он ломает преобразование в число. - 📅 Формат дат.
07.10.2026,2026-10-07или20261007. - 🧾 Служебные строки. Заголовок, итоговая строка внизу, пустые строки в конце.
Если в колонке ИНН, КПП, артикулы или номера счетов, ведущие нули легко потерять при переносе через Excel. Их нужно сразу пометить как текст (об этом в разделе 3).
Как опознать формат по первым строкам
| Что видите в начале файла | Что это | Как загружать |
|---|---|---|
1CClientBankExchange, ВерсияФормата=…, Кодировка=Windows | Выписка из клиент-банка | Штатная загрузка выписок |
Строка заголовков, дальше данные через ; или , | CSV в txt | Через Excel → xlsx → загрузка из файла |
| Колонки ровно выровнены пробелами | Фиксированная ширина | Через Excel (мастер с фиксированной шириной) или кодом |
Произвольный текст, теги, пары ключ=значение | Собственный формат | Только кодом |
2. Банковская выписка в txt: штатная загрузка
Это самый частый случай. Банк выгружает файл в формате обмена «1С:Предприятие — Клиент банка». Его 1С читает без всяких обработок.
Порядок в БП 3.0:
- Выгрузите выписку из интернет-банка в формате для 1С. Файл обычно называется
kl_to_1c.txtили похоже. - Откройте
Банк и касса → Банковские выписки. - Нажмите
Загрузить. Откроется форма обмена с банком. - Выберите организацию, банковский счёт и укажите путь к файлу.
- Нажмите загрузку. Программа покажет список документов, которые создаст: списания и поступления на расчётный счёт.
- Проверьте строки, где не найден контрагент или договор, и завершите загрузку.
В УТ 11 и КА 2 выписки загружают из раздела казначейства или финансов, логика та же: список выписок → команда загрузки → выбор файла.
Что важно в заголовке выписки
Строка Кодировка=Windows или Кодировка=DOS в начале файла говорит программе, как его читать. Если банк выгрузил файл в одной кодировке, а написал другую, вместо назначений платежей будут нечитаемые символы.
Проверьте и счёт. В файле есть строка РасчСчет=…. Если такой счёт не заведён в карточке организации в 1С, загрузка его не примет. Сначала добавьте банковский счёт организации, потом повторите загрузку.
Не загружайте один и тот же файл дважды «на всякий случай». Программа сверяет уже загруженные документы, но при изменённых номерах или датах в повторной выгрузке банка может появиться дубль. Перед повторной загрузкой посмотрите, что уже есть в журнале выписок за эти даты.
3. Табличные данные из txt: перенос через Excel
Для справочников и табличных частей в типовых конфигурациях есть загрузка из файла. Она работает с табличными форматами (xlsx, xls, ods, mxl), а не с произвольным текстом. Поэтому txt сначала превращают в таблицу.
Шаг 1. Откройте txt в Excel правильно
Не открывайте файл двойным щелчком: Excel сам угадает кодировку и разделитель и часто ошибается.
- Создайте пустую книгу.
- На вкладке
Данныевыберите импорт из текста/CSV. - Укажите кодировку:
1251: Кириллица (Windows)или65001: Юникод (UTF-8). Смотрите на предпросмотр: русские буквы должны читаться. - Укажите разделитель или фиксированную ширину.
- Для колонок с ИНН, кодами и артикулами задайте тип «Текст». Иначе
0012345превратится в12345. - Загрузите данные на лист и сохраните книгу как
.xlsx.
Шаг 2. Загрузите файл в 1С
Для справочника (например, номенклатуры или контрагентов в БП 3.0):
- Откройте список справочника.
- Найдите в командной панели команду загрузки из файла (кнопка
Загрузитьили пункт в менюЕщё). - Выберите xlsx-файл или вставьте данные из буфера обмена в таблицу формы.
- Сопоставьте колонки файла с реквизитами 1С.
- Посмотрите результат сопоставления: какие строки будут созданы как новые, какие найдены среди существующих.
- Подтвердите загрузку.
Для табличной части документа путь похож: откройте документ, например поступление товаров, и вызовите загрузку над таблицей товаров.
Шаг 3. Настройте соответствие колонок
Здесь решается, создаст ли 1С дубли. Главное поле — то, по которому программа ищет уже существующий элемент.
Правила, которые спасают от дублей:
- ✅ Ищите номенклатуру по артикулу или штрихкоду, а не по наименованию. «Бумага А4» и «Бумага А4» с двумя пробелами — для 1С разные строки.
- ✅ Контрагентов ищите по ИНН. Для ИП и юрлиц с одинаковыми названиями это единственный надёжный ключ.
- ✅ Единицы измерения проверьте заранее: «шт», «шт.» и «штука» должны сводиться к одной записи классификатора.
Если загрузки из файла в конфигурации нет
В нетиповых и старых конфигурациях встроенной загрузки может не быть. Тогда используют внешнюю обработку загрузки из табличного документа. Её открывают через Файл → Открыть, если у пользователя есть право открывать внешние обработки. Принцип тот же: файл → таблица → сопоставление колонок → поле поиска → загрузка.
4. Как загрузить txt в 1С кодом: чтение файла построчно
Когда формат нестандартный или загрузку нужно повторять каждый день, проще написать короткий код. Его запускают во внешней обработке или в обработке выполнения произвольного кода (консоли кода).
Ниже пример: файл в Windows-1251, разделитель — точка с запятой, первая строка — заголовок. Колонки: дата, ИНН, сумма, комментарий.
ИмяФайла = "C:\Обмен\payments.txt";
Чтение = Новый ЧтениеТекста(ИмяФайла, "windows-1251");
Строка = Чтение.ПрочитатьСтроку(); // пропускаем заголовок
НомерСтроки = 1;
Строка = Чтение.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
НомерСтроки = НомерСтроки + 1;
Если ПустаяСтрока(Строка) Тогда
Строка = Чтение.ПрочитатьСтроку();
Продолжить;
КонецЕсли;
Поля = СтрРазделить(Строка, ";", Истина);
Если Поля.Количество() < 4 Тогда
Сообщить(СтрШаблон("Строка %1: ожидалось 4 поля, найдено %2",
Формат(НомерСтроки, "ЧГ=0"), Поля.Количество()));
Строка = Чтение.ПрочитатьСтроку();
Продолжить;
КонецЕсли;
// дата вида 07.10.2026 -> 20261007
ТекстДаты = СокрЛП(Поля[0]);
ДатаПлатежа = Дата(Сред(ТекстДаты, 7, 4) + Сред(ТекстДаты, 4, 2) + Лев(ТекстДаты, 2));
ИНН = СокрЛП(Поля[1]);
// сумма вида "1 234,50": убираем пробелы и неразрывные пробелы, запятую меняем на точку
ТекстСуммы = СтрЗаменить(СокрЛП(Поля[2]), " ", "");
ТекстСуммы = СтрЗаменить(ТекстСуммы, Символы.НПП, "");
ТекстСуммы = СтрЗаменить(ТекстСуммы, ",", ".");
Сумма = Число(ТекстСуммы);
Комментарий = СокрЛП(Поля[3]);
Сообщить(СтрШаблон("%1 | %2 | %3 | %4",
Формат(ДатаПлатежа, "ДФ=dd.MM.yyyy"), ИНН, Формат(Сумма, "ЧДЦ=2"), Комментарий));
Строка = Чтение.ПрочитатьСтроку();
КонецЦикла;
Чтение.Закрыть();
Что здесь важно:
ПрочитатьСтроку()возвращаетНеопределено, когда файл закончился. На этом построен цикл.- Третий параметр
СтрРазделить=Истинасохраняет пустые поля. Без него строка07.10.2026;;500;даст не 4 поля, а 2, и колонки съедут. - Номер строки в сообщении помогает быстро найти битую запись в файле.
- Вместо
Сообщитьв рабочей обработке пишут создание документа или элемента справочника.
Табуляция и фиксированная ширина
Для файла с табуляцией замените ";" на Символы.Таб. Для фиксированной ширины поля режут функцией Сред: например, Сред(Строка, 1, 10) — первые 10 символов, Сред(Строка, 11, 12) — следующие 12.
Альтернатива: ТекстовыйДокумент
Если файл небольшой, его удобно прочитать целиком:
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("C:\Обмен\payments.txt", КодировкаТекста.UTF8);
Для Н = 2 По Текст.КоличествоСтрок() Цикл
Строка = Текст.ПолучитьСтроку(Н);
// разбор строки как в примере выше
КонецЦикла;
Для файлов на сотни мегабайт лучше ЧтениеТекста: оно не держит весь текст в памяти.
Путь C:\Обмен\… должен быть доступен той стороне, где выполняется код. В клиент-серверной базе код на сервере видит диск сервера, а не компьютера пользователя. Если файл лежит у пользователя, его сначала передают на сервер (в управляемом приложении — через помещение файла во временное хранилище) или читают на клиенте.
Сначала прогоните загрузку в копии базы. Ошибка в разборе одной колонки на тысяче строк создаёт тысячу неверных документов, и удалять их придётся по одному или обработкой.
5. Кодировка и спецсимволы: как убрать кракозябры
Кракозябры значат одно: файл прочитали не в той кодировке, в которой его записали.
| Что видите | Вероятная причина | Что сделать |
|---|---|---|
Платеж вместо «Платеж» | Файл в UTF-8, читали как Windows-1251 | Указать КодировкаТекста.UTF8 или выбрать 65001 в Excel |
Ïëàòåæ или знаки вопроса | Файл в Windows-1251, читали как UTF-8 | Указать "windows-1251" или КодировкаТекста.ANSI |
Псевдографика, ЏҐаҐ | Файл в DOS (CP866) | Указать "cp866" или пересохранить в 1251 |
| Первая колонка первой строки не находится | Невидимый BOM в начале UTF-8 | Читать как UTF-8 или сохранить файл без BOM |
Проще всего привести файл к одной кодировке до загрузки. В Notepad++ это меню Кодировки → Преобразовать в …. Обратите внимание: нужно именно «Преобразовать», а не просто «Кодировать в»: второе меняет только способ отображения.
Спецсимволы внутри данных
- 🔸 Разделитель внутри текста. Наименование
ООО «Ромашка; филиал»при разделителе;разобьётся на две колонки. Нормальный CSV берёт такие поля в кавычки. Excel это понимает, а простойСтрРазделить— нет. Для такого файла либо грузите через Excel, либо разбирайте строку посимвольно с учётом кавычек. - 🔸 Неразрывный пробел. Выглядит как обычный, но
Число()на нём падает. В коде выше он убран черезСимволы.НПП. - 🔸 Перевод строки внутри поля. Многострочный комментарий рвёт запись на две строки файла. Признак — строки, где полей меньше, чем должно быть.
- 🔸 Кавычки-ёлочки и длинное тире. В кодировке DOS их нет, при конвертации они превращаются в знаки вопроса.
6. Ошибки при загрузке txt и что с ними делать
7. Частые вопросы о загрузке текстовых файлов
Можно ли открыть txt прямо в 1С без загрузки?
Файл → Открыть 1С покажет текстовый файл в своём окне. Но это просмотр: документы и элементы справочников из него не создаются.Почему банк выгружает выписку в кодировке DOS?
Кодировка=DOS.Как загружать один и тот же формат каждый день, не настраивая колонки заново?
Что делать, если в txt больше 100 тысяч строк?
ЧтениеТекста и записывайте объекты порциями, например по 1000 строк в одной транзакции.Можно ли загрузить txt в 1С:Фреш или другую облачную базу?
C:\… в облаке не сработает: сервер не видит ваш диск.