Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ERR_1C_TEXT_ENCODING_INVALID 1С:Предприятие и СУБД

Неверно указана кодировка при чтении текстового документа в 1С — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Исключение: Неверно указана кодировка при чтении текстового документа.
  • Чтение файла возвращает нечитаемые символы («кракозябры», , иероглифы).
  • Сбой методов ЧтениеТекста.Открыть(), ТекстовыйДокумент.Прочитать().
  • Наличие скрытого маркера последовательности байтов (BOM — Byte Order Mark).

1. Корректное указание кодировки через объект ЧтениеТекста

Всегда явно задавайте стандартную кодировку при открытии файлового потока:

// Чтение файла в кодировке UTF-8 с автоматическим распознаванием BOM
Чтение = Новый ЧтениеТекста;
Попытка
    Чтение.Открыть("C:\Data\import.csv", КодировкаТекста.UTF8, Символы.ПС, , Истина);
    Строка = Чтение.ПрочитатьСтроку();
    Пока Строка <> Неопределено Цикл
        // Обработка строки
        Строка = Чтение.ПрочитатьСтроку();
    КонецЦикла;
Исключение
    ВызватьИсключение "Ошибка открытия файла: " + ОписаниеОшибки();
Фиксировать
    Чтение.Закрыть();
КонецПопытки;

2. Таблица сопоставления кодировок в 1С

Кодировка в 1СИмя / СтандартПрименение
КодировкаТекста.UTF8UTF-8Современные REST API, JSON, XML, веб-интеграции
КодировкаТекста.ANSIwindows-1251 (CP1251)Файлы выгрузки из 1С 7.7, старые банковские выписки
КодировкаТекста.OEMCP866 (DOS)Файлы обмена систем Клиент-Банк формата 1CClientBankExchange
КодировкаТекста.UTF16UTF-16LE / BEСистемные журналы Windows, выгрузки Active Directory

3. Обработка файлов с неизвестной кодировкой через ДвоичныеДанные

// Определение кодировки по сигнатуре первых байт (BOM)
Двоичные = Новый ДвоичныеДанные("C:\Data\file.txt");
ЧтениеБайт = Новый ЧтениеДанных(Двоичные.ОткрытьПотокДляЧтения());
ПервыеБайты = ЧтениеБайт.Прочитать(3);
// Анализ BOM: EF BB BF -> UTF-8, FF FE -> UTF-16LE
💡 Практика специалистов: Для надежной работы серверных обменов на Linux-серверах 1С всегда проверяйте настройку системной локали (команда locale). Локаль должна быть строго ru_RU.UTF-8, иначе функции перевода строк могут приводить к искажению символов.

Частые вопросы (FAQ)

Что делать, если файл Клиент-Банка читается иероглифами?

Большинство выписок формата 1CClientBankExchange создаются в DOS-кодировке CP866. При чтении укажите КодировкаТекста.OEM или строку 'windows-1251'.

Как удалить BOM (Byte Order Mark) из начала файла при выгрузке?

При создании ЗаписьТекста используйте параметр ИспользоватьBOM = Ложь: Запись.Открыть(Путь, КодировкаТекста.UTF8, , , Ложь).

Почему кодировка ANSI по-разному работает на Windows и Linux серверах?

На Windows ANSI соответствует Windows-1251, а на Linux сервер 1С использует системную локаль (по умолчанию UTF-8). Всегда явно указывайте строку 'windows-1251' вместо перечисления ANSI.

Как прочитать текстовый файл в нестандартной кодировке (например, KOI8-R)?

Передайте строковое наименование кодировки вторым параметром метода Открыть(): Чтение.Открыть(Путь, 'koi8-r').

Полезные материалы
Рекомендуем