Отчёты и справочники 1С 7.7 в таблице Excel: как перенести данные без кракозябр

· 9 мин

Содержание

Быстрее всего выгрузить данные из 1С 7.7 в Excel так: сформируйте отчёт, в окне готовой таблицы откройте Файл → Сохранить как, в поле «Тип файла» выберите Excel и сохраните файл с расширением .xls. Его открывает любая версия Excel. Статья про платформу 1С:Предприятие 7.7 — в «восьмёрке» порядок другой.

Если вместо русских букв в файле знаки вопроса и «кракозябры», дело почти всегда в кодировке: 7.7 — программа без поддержки Юникода и работает в кодировках Windows-1251 и DOS-866. Лечится это выбором кодировки при открытии файла или настройкой языка Windows — без правки самой базы.

Откуда берутся иероглифы при переносе из 1С 7.7

1С 7.7 создавалась под Windows 9x. Тексты она хранит и отдаёт в однобайтовых кодировках, а современный Excel по умолчанию ждёт Юникод или кодировку, заданную в системе.

Какая кодировка где встречается:

Источник данныхКодировкаЧто увидите при неправильном открытии
Таблица, сохранённая в .xlsПересчитывается при записиОбычно открывается чисто
Текстовый файл .txt/.csv из обработкиWindows-1251 (чаще) или DOS-866Ïðèõîä или ЏаЁе®¤
Файлы .dbf файловой базыЗависит от настройки базы, часто DOS-866Псевдографика вместо букв
Копирование через буфер обменаПреобразует Windows по языку системыЗнаки вопроса ????

Отсюда три типовые причины:

  • 🔤 файл открыт в Excel «двойным щелчком», и Excel угадал кодировку неверно;
  • 🌐 в Windows язык программ, не поддерживающих Юникод, — не русский;
  • 🗄 данные взяты прямо из .dbf, минуя 1С, а там DOS-кодировка.

Как отличить 1251 от 866 на глаз: латинские буквы с «шапочками» (Ïðèõîä) — это 1251, открытая как западноевропейская кодировка. Псевдографика и буквы вроде Џ, Ё, ® — это 866, открытая как 1251.

Способ 1. Сохранить готовый отчёт 1С 7.7 в формате Excel

Подходит для любого отчёта, который 1С показывает в виде таблицы: оборотно-сальдовая ведомость, карточка счёта, остатки ТМЦ, печатные формы документов.

  1. Сформируйте отчёт как обычно, чтобы открылось окно с таблицей.
  2. Щёлкните в любую ячейку таблицы — окно должно стать активным.
  3. Откройте Файл → Сохранить как.
  4. В поле «Тип файла» выберите формат Excel (*.xls).
  5. Укажите папку и имя файла латиницей или кириллицей — без разницы, но без символов / \ : * ?.
  6. Откройте файл в Excel.

Что переносится хорошо: значения ячеек, объединения, шрифты, рамки, ширина колонок. Что переносится плохо: расшифровки (двойной щелчок по сумме в Excel ничего не откроет), картинки, иногда — сложные объединения в шапке.

Формат .xls старый: не больше 65 536 строк и 256 колонок на лист. Большая карточка счёта за год может обрезаться. Делите период или используйте текстовую выгрузку (способ 3).

После открытия в новом Excel сразу пересохраните файл в .xlsx через Файл → Сохранить как — так снимутся ограничения старого формата, и файл станет меньше.

Если в списке форматов нет Excel

В ранних релизах платформы 7.7 запись в .xls была недоступна. Тогда сохраните таблицу в HTML (*.htm) и откройте этот файл в Excel: таблица разложится по ячейкам. Ещё лучше — обновить платформу до последнего релиза 7.7, если дистрибутив есть у вашего администратора.

Способ 2. Скопировать таблицу через буфер обмена

Когда нужна не вся ведомость, а кусок — 20 строк остатков или колонка сумм, — проще скопировать.

  1. В окне отчёта 1С выделите мышью нужный диапазон ячеек. Для всей таблицы щёлкните в левый верхний угол и с зажатым Shift — в правый нижний.
  2. Нажмите Ctrl+C.
  3. В Excel встаньте в ячейку A1 и нажмите Ctrl+V.

Если оформление «поехало», вставьте как текст: правой кнопкой в Excel → «Специальная вставка» → «Текст» или «Текст в кодировке Юникод». Значения лягут по колонкам без рамок и объединений.

Тот же приём работает для журналов документов и списков справочников, но не везде: в некоторых формах 1С 7.7 копируется только одна строка или одно значение. Для полного списка справочника переходите к способу 4.

Вместо русского текста вставились знаки вопроса — это не ошибка 1С, а язык системы. Исправление — в разделе про региональные настройки ниже.

Способ 3. Выгрузить в текстовый файл и импортировать в Excel

Текстовая выгрузка нужна, когда строк много или файл потом обрабатывают другой программой. Таблицу отчёта можно сохранить в текст тем же Файл → Сохранить как с типом «Текст» (*.txt), а обработки обычно пишут файл с разделителем — точкой с запятой или табуляцией.

Главное правило: не открывайте такой файл двойным щелчком — Excel сам выберет кодировку и разделитель и часто ошибётся. Импортируйте его.

В Excel 2016 и новее:

  1. Создайте пустую книгу.
  2. Откройте вкладку Данные → Из текстового/CSV-файла.
  3. Выберите файл.
  4. В поле «Источник файла» укажите 1251: Кириллица (Windows). Если буквы всё ещё нечитаемые — 866: Кириллица (DOS).
  5. В поле «Разделитель» выберите тот, что в файле: точка с запятой, табуляция или пробел.
  6. Нажмите «Загрузить».

В более старом Excel то же делает мастер текстов: Данные → Получение внешних данных → Из текста. На первом шаге там выбирается «Формат файла» — это и есть кодировка.

Колонки с числами, датами и кодами

При импорте у каждой колонки можно задать тип. Это решает три частые проблемы:

  • 🔢 коды номенклатуры и счетов вроде 00045 теряют нули — задайте колонке тип «Текст»;
  • 📅 даты 01.03.05 превращаются в непонятные числа — тип «Дата» в формате ДМГ;
  • 💰 суммы с пробелами-разделителями 12 345,00 не считаются — об этом в разделе ошибок.

Способ 4. Прочитать файлы DBF напрямую конвертером

Файловая база 1С 7.7 хранится в каталоге с таблицами .dbf. Их можно открыть без запуска 1С: LibreOffice Calc, просмотрщиками DBF или конвертерами DBF → XLSX. Способ выручает, когда 1С не запускается, а данные нужны.

Как это сделать в LibreOffice Calc (бесплатно):

  1. Скопируйте нужный .dbf в отдельную папку. С рабочими файлами базы не работайте.
  2. Откройте копию через Файл → Открыть в LibreOffice Calc.
  3. В окне выбора кодировки укажите «Кириллица (DOS/OS2-866/Русская)». Не помогло — «Кириллица (Windows-1251)».
  4. Сохраните как .xlsx.

Никогда не сохраняйте изменения обратно в .dbf базы и не открывайте файлы, пока в базе работают пользователи. Испорченную таблицу придётся восстанавливать из резервной копии.

Главная трудность — имена. Таблицы называются вроде SC84.DBF, колонки — SP101, SP102. Что за ними стоит, записано в файле описания базы 1Cv7.DD в том же каталоге. Это обычный текстовый файл: найдите в нём номер таблицы и прочитайте, какой справочник или реквизит ему соответствует.

Ещё ограничения прямого чтения:

  • 🔗 ссылки на другие справочники хранятся внутренними кодами, а не названиями;
  • 🧮 остатки и обороты по регистрам и бухгалтерии в «сыром» виде не готовы к анализу;
  • 🖥 SQL-версия 7.7 хранит данные в Microsoft SQL Server, там .dbf нет — данные берут запросом в самой СУБД.

Для справочников способ рабочий. Для отчётности — нет: остатки надёжнее получить отчётом из 1С и сохранить способом 1.

Региональные настройки Windows для 1С 7.7

Если 1С 7.7 стоит на современной Windows, первым делом проверьте язык программ без Юникода. Без этого кириллица ломается в буфере обмена, в текстовых файлах, а иногда и в самом окне 1С.

В Windows 10 и 11:

  1. Откройте Панель управления: нажмите Win+R, введите intl.cpl, Enter.
  2. Перейдите на вкладку «Дополнительно».
  3. В блоке «Язык программ, не поддерживающих Юникод» нажмите «Изменить язык системы».
  4. Выберите «Русский (Россия)».
  5. Перезагрузите компьютер.

В этом же окне есть флажок «Бета-версия: использовать Юникод (UTF-8) для поддержки языка во всем мире». Для 1С 7.7 его нужно снять: с ним кириллица в старых программах превращается в мусор.

На вкладке «Форматы» → «Дополнительные параметры» стоит проверить ещё два поля:

ПараметрЧто выставитьНа что влияет
Разделитель целой и дробной части, (запятая)Распознаёт ли Excel суммы из 1С как числа
Разделитель элементов списка; (точка с запятой)Как Excel разбивает CSV по колонкам

Выгрузка в Excel внешней обработкой через OLE

Когда одну и ту же таблицу выгружают каждый месяц, руками это надоедает. В 1С 7.7 есть внешние обработки — файлы .ert, которые открываются через Файл → Открыть и не требуют менять конфигурацию. Обработка через OLE запускает Excel и заполняет ячейки напрямую.

Пример: выгрузка кода и наименования номенклатуры в новую книгу. Код размещают в модуле формы обработки, в процедуре, которую вызывает кнопка «Выполнить».

Процедура Выполнить()
    Попытка
        Excel = СоздатьОбъект("Excel.Application");
    Исключение
        Предупреждение("Не удалось запустить Excel: " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;

    Книга = Excel.Workbooks.Add();
    Лист = Книга.Worksheets(1);
    Лист.Cells(1, 1).Value = "Код";
    Лист.Cells(1, 2).Value = "Наименование";

    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.ВыбратьЭлементы();
    Стр = 1;
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        Если Спр.ЭтоГруппа() = 1 Тогда
            Продолжить;
        КонецЕсли;
        Стр = Стр + 1;
        Лист.Cells(Стр, 1).NumberFormat = "@";
        Лист.Cells(Стр, 1).Value = Спр.Код;
        Лист.Cells(Стр, 2).Value = Спр.Наименование;
    КонецЦикла;

    Лист.Columns(2).AutoFit();
    Excel.Visible = 1;
КонецПроцедуры

Что важно в этом коде:

  • NumberFormat = "@" ставится до записи значения — иначе код 00045 превратится в число 45;
  • в ячейки сумм передавайте число, а не строку, тогда в Excel они сразу суммируются;
  • Excel.Visible = 1 в конце показывает книгу — пользователь сам решит, куда её сохранить.

Когда OLE медленный

Запись ячейка за ячейкой занимает заметное время: на 20–30 тысячах строк выгрузка тянется минутами. Быстрее записать текстовый файл объектом Текст (СоздатьОбъект("Текст"), метод ДобавитьСтроку для каждой строки, затем Записать) и открыть его в Excel импортом из способа 3.

Ошибки при выгрузке из 1С 7.7 в Excel и как их убрать

Диагностика: выберите симптом

Частые вопросы

Можно ли из 1С 7.7 сразу получить файл .xlsx?
Нет, платформа пишет только старый .xls. Откройте его в Excel и пересохраните в .xlsx.
Сохранится ли расшифровка отчёта в Excel?
Нет. В Excel попадут только значения и оформление, двойной щелчок по сумме ничего не откроет. Для анализа деталей сформируйте нужный отчёт отдельно.
Работает ли 1С 7.7 с Excel на Windows 11?
Да, если Excel установлен и язык программ без Юникода — русский. Обработки через OLE запускают ту версию Excel, что стоит в системе.
Можно ли выгрузить данные, если 1С 7.7 не запускается?
Для файловой базы — да, читая копии .dbf конвертером с кодировкой DOS-866. Названия колонок расшифровывают по файлу 1Cv7.DD.
Почему в Excel пропали нули в начале кодов?
Excel принял код за число. При импорте задайте колонке тип «Текст», а в OLE-обработке — формат ячейки @ до записи значения.