Отчёты и справочники 1С 7.7 в таблице Excel: как перенести данные без кракозябр
Содержание
Быстрее всего выгрузить данные из 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С показывает в виде таблицы: оборотно-сальдовая ведомость, карточка счёта, остатки ТМЦ, печатные формы документов.
- Сформируйте отчёт как обычно, чтобы открылось окно с таблицей.
- Щёлкните в любую ячейку таблицы — окно должно стать активным.
- Откройте
Файл → Сохранить как. - В поле «Тип файла» выберите формат Excel (
*.xls). - Укажите папку и имя файла латиницей или кириллицей — без разницы, но без символов
/ \ : * ?. - Откройте файл в Excel.
Что переносится хорошо: значения ячеек, объединения, шрифты, рамки, ширина колонок. Что переносится плохо: расшифровки (двойной щелчок по сумме в Excel ничего не откроет), картинки, иногда — сложные объединения в шапке.
Формат .xls старый: не больше 65 536 строк и 256 колонок на лист. Большая карточка счёта за год может обрезаться. Делите период или используйте текстовую выгрузку (способ 3).
После открытия в новом Excel сразу пересохраните файл в .xlsx через Файл → Сохранить как — так снимутся ограничения старого формата, и файл станет меньше.
Если в списке форматов нет Excel
В ранних релизах платформы 7.7 запись в .xls была недоступна. Тогда сохраните таблицу в HTML (*.htm) и откройте этот файл в Excel: таблица разложится по ячейкам. Ещё лучше — обновить платформу
до последнего релиза 7.7, если дистрибутив есть у вашего администратора.
Способ 2. Скопировать таблицу через буфер обмена
Когда нужна не вся ведомость, а кусок — 20 строк остатков или колонка сумм, — проще скопировать.
- В окне отчёта 1С выделите мышью нужный диапазон ячеек. Для всей таблицы щёлкните в левый верхний угол и с зажатым Shift — в правый нижний.
- Нажмите
Ctrl+C. - В Excel встаньте в ячейку
A1и нажмитеCtrl+V.
Если оформление «поехало», вставьте как текст: правой кнопкой в Excel → «Специальная вставка» → «Текст» или «Текст в кодировке Юникод». Значения лягут по колонкам без рамок и объединений.
Тот же приём работает для журналов документов и списков справочников, но не везде: в некоторых формах 1С 7.7 копируется только одна строка или одно значение. Для полного списка справочника переходите к способу 4.
Вместо русского текста вставились знаки вопроса — это не ошибка 1С, а язык системы. Исправление — в разделе про региональные настройки ниже.
Способ 3. Выгрузить в текстовый файл и импортировать в Excel
Текстовая выгрузка нужна, когда строк много или файл потом обрабатывают другой программой. Таблицу отчёта можно сохранить в текст тем же Файл → Сохранить как с типом «Текст» (*.txt), а обработки обычно пишут файл с разделителем — точкой с запятой или табуляцией.
Главное правило: не открывайте такой файл двойным щелчком — Excel сам выберет кодировку и разделитель и часто ошибётся. Импортируйте его.
В Excel 2016 и новее:
- Создайте пустую книгу.
- Откройте вкладку
Данные → Из текстового/CSV-файла. - Выберите файл.
- В поле «Источник файла» укажите
1251: Кириллица (Windows). Если буквы всё ещё нечитаемые —866: Кириллица (DOS). - В поле «Разделитель» выберите тот, что в файле: точка с запятой, табуляция или пробел.
- Нажмите «Загрузить».
В более старом Excel то же делает мастер текстов: Данные → Получение внешних данных → Из текста. На первом шаге там выбирается «Формат файла» — это и есть кодировка.
Колонки с числами, датами и кодами
При импорте у каждой колонки можно задать тип. Это решает три частые проблемы:
- 🔢 коды номенклатуры и счетов вроде
00045теряют нули — задайте колонке тип «Текст»; - 📅 даты
01.03.05превращаются в непонятные числа — тип «Дата» в формате ДМГ; - 💰 суммы с пробелами-разделителями
12 345,00не считаются — об этом в разделе ошибок.
Способ 4. Прочитать файлы DBF напрямую конвертером
Файловая база 1С 7.7 хранится в каталоге с таблицами .dbf. Их можно открыть без запуска 1С: LibreOffice Calc, просмотрщиками DBF или конвертерами DBF → XLSX. Способ выручает, когда 1С не запускается, а данные нужны.
Как это сделать в LibreOffice Calc (бесплатно):
- Скопируйте нужный
.dbfв отдельную папку. С рабочими файлами базы не работайте. - Откройте копию через
Файл → Открытьв LibreOffice Calc. - В окне выбора кодировки укажите «Кириллица (DOS/OS2-866/Русская)». Не помогло — «Кириллица (Windows-1251)».
- Сохраните как
.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:
- Откройте Панель управления: нажмите
Win+R, введитеintl.cpl, Enter. - Перейдите на вкладку «Дополнительно».
- В блоке «Язык программ, не поддерживающих Юникод» нажмите «Изменить язык системы».
- Выберите «Русский (Россия)».
- Перезагрузите компьютер.
В этом же окне есть флажок «Бета-версия: использовать Юникод (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 и как их убрать
Ctrl+H, в поле «Найти» введите пробел (для неразрывного — Alt+0160 на цифровой клавиатуре), «Заменить на» оставьте пустым, «Заменить все». Затем Данные → Текст по столбцам → Готово.intl.cpl и перезагрузите компьютер..xls. Нажмите «Да» и пересохраните в .xlsx.Данные → Из текстового/CSV-файла с явным разделителем.Частые вопросы
Можно ли из 1С 7.7 сразу получить файл .xlsx?
.xls. Откройте его в Excel и пересохраните в .xlsx.Сохранится ли расшифровка отчёта в Excel?
Работает ли 1С 7.7 с Excel на Windows 11?
Можно ли выгрузить данные, если 1С 7.7 не запускается?
.dbf конвертером с кодировкой DOS-866. Названия колонок расшифровывают по файлу 1Cv7.DD.Почему в Excel пропали нули в начале кодов?
@ до записи значения.