Как выгрузить данные из 1С 7.7 в Excel

· 9 мин

Содержание

Готовый отчёт из 1С 7.7 уходит в Excel за полминуты: откройте его, нажмите «Сохранить копию» (иконка дискеты в окне отчёта или пункт меню «Файл») и выберите тип файла *.xls. Для справочников, журналов и больших массивов строк быстрее текстовый файл или короткая процедура на встроенном языке, которая сама заполняет книгу Excel через OLE.

Семёрка давно не развивается, но на ней до сих пор живут склады, мелкая торговля и архивные базы. Данные оттуда нужно вытаскивать при переходе на 8.3, для сверок и для налогового архива. Ниже три способа от простого к сложному, работа с табличным документом и разбор типичных сбоев.

Что проверить до выгрузки

Пять минут подготовки спасают от «пустого» файла и зависшей базы.

  • 📌 Версия Excel. Семёрка писалась под старые форматы. Файл .xls откроется в любом современном Excel, а вот прямая работа через OLE зависит от того, что установлено на компьютере.
  • 📌 Режим запуска. Для выгрузки хватает «Предприятия» или «Конфигуратора» под пользователем с правом чтения нужных объектов. Для макроса нужен «Конфигуратор».
  • 📌 Монопольный доступ не нужен. Читать данные можно в обычном режиме, даже если в базе работают другие.
  • 📌 Свободное место. Журнал документов за несколько лет в текстовом виде легко занимает сотни мегабайт.
  • 📌 Папка назначения. Выбирайте короткий путь без кириллицы, например C:\export\. Старые компоненты спотыкаются на длинных путях.

Перед любыми экспериментами с кодом в конфигураторе сделайте копию каталога базы. Встроенный язык позволяет случайно записать лишнее, и откатить это будет нечем.

Перед выгрузкой
Выполнено: 0 / 5

Способ первый: сохранить готовый отчёт без программирования

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

Как это делается

  1. Откройте отчёт и сформируйте его за нужный период и с нужными отборами.
  2. Дождитесь, пока в окне появится готовая таблица.
  3. В меню «Файл» выберите «Сохранить копию» (в зависимости от сборки пункт может называться «Сохранить как»). Тот же пункт есть на панели окна отчёта.
  4. В списке «Тип файла» укажите формат Excel (*.xls).
  5. Задайте имя и папку, нажмите «Сохранить».

Рядом в списке обычно есть формат самой семёрки (*.mxl), текстовый (*.txt), *.dbf и *.html. Для Excel нужен именно xls.

Копирование через буфер обмена

Если нужен кусок таблицы, а не весь отчёт, выделите ячейки мышью, нажмите Ctrl+C и вставьте в открытую книгу Excel через Ctrl+V. Числа обычно приходят как числа. Даты и коды могут прийти текстом, их придётся привести вручную.

Чего ждать от результата

ЧтоКак приходит в Excel
Объединённые ячейки шапкиСохраняются, мешают сортировке и фильтру
Числа с разделителямиЧаще числа, но иногда текст с неразрывным пробелом
Цвета и рамкиПереносятся почти без потерь
Расшифровки (ссылки на документы)Теряются: остаётся только значение
Скрытые колонкиМогут оказаться видимыми

Если файл нужен для дальнейшей обработки формулами и сводными, перед сохранением уберите из отчёта лишние итоги и группировки. Плоская таблица без объединений в Excel гораздо удобнее.

Способ второй: текстовый файл и импорт в Excel

Когда строк много, а оформление не важно, текстовая выгрузка надёжнее. Excel не запоминает форматирование семёрки и не тормозит на десятках тысяч строк.

Через сохранение отчёта

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

Через код: объект «Текст»

Для справочников и журналов удобнее собрать файл программно. В 1С 7.7 для этого есть объект «Текст»:

Процедура ВыгрузитьСправочник()
    Т = СоздатьОбъект("Текст");
    Т.ДобавитьСтроку("Код" + Символ(9) + "Наименование");
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        Т.ДобавитьСтроку(Спр.Код + Символ(9) + Спр.Наименование);
    КонецЦикла;
    Т.Записать("C:\export\nomenklatura.txt");
КонецПроцедуры

Здесь Символ(9) — табуляция. Имя справочника в вашей базе может отличаться, подставьте своё. Код сработает в обработке или в модуле формы.

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

Какую кодировку ждать

Текстовые файлы из семёрки чаще всего получаются в кодировке Windows-1251. Excel нормально читает её в мастере импорта, если выбрать «Кириллица (Windows)». Если вместо русских букв видны «кракозябры», просто смените кодировку в мастере, переписывать файл не нужно.

Способ третий: прямая запись в Excel через OLE

Макрос открывает Excel, создаёт книгу и записывает значения в ячейки. Результат сразу готовая книга. Подходит, когда выгрузку надо повторять каждый день или кнопкой из формы.

Минимальный пример

Процедура ВыгрузитьВExcel()
    Excel = СоздатьОбъект("Excel.Application");
    Excel.Workbooks.Add();
    Лист = Excel.ActiveSheet;
    Лист.Cells(1, 1).Value = "Код";
    Лист.Cells(1, 2).Value = "Наименование";
    Строка = 2;
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        Лист.Cells(Строка, 1).Value = Спр.Код;
        Лист.Cells(Строка, 2).Value = Спр.Наименование;
        Строка = Строка + 1;
    КонецЦикла;
    Excel.Visible = 1;
КонецПроцедуры

Для сохранения сразу на диск вместо показа добавьте перед завершением вызов метода SaveAs у книги и закройте приложение командой Quit. Тогда Excel не останется висеть в памяти.

Как не получить часовую выгрузку

Запись по одной ячейке через OLE медленная: каждое обращение это межпроцессный вызов. На 50 тысячах строк по 6 колонок это 300 тысяч обращений, и выгрузка занимает десятки минут.

Ускорение:

  1. Отключите перерисовку: Excel.ScreenUpdating = 0.
  2. Не форматируйте ячейки в цикле. Задайте формат целой колонке один раз.
  3. Для больших объёмов не пишите в Excel напрямую. Соберите текстовый файл (способ второй) и откройте его в Excel.
Какой способ выбрать?

Работа с табличным документом

Любой отчёт семёрки это табличный документ: сетка ячеек с текстом, числами и оформлением. От того, как он построен, зависит результат выгрузки.

Откуда берётся таблица

  • 🧾 Печатная форма. Строится по макету с областями «Шапка», «Строка», «Подвал». Оформление богатое, структура сложная.
  • 📊 Отчёт по запросу. Данные выводятся строка за строкой. Такие отчёты в Excel ложатся лучше всего.
  • 📂 Расшифровка. Двойной щелчок по ячейке открывает документ. В файл расшифровка не попадает.

Три приёма перед сохранением

  1. Уберите группировки и промежуточные итоги. Они превратятся в строки с пропусками.
  2. Разверните иерархию. Если вывод идёт деревом, переключитесь на «Без иерархии», чтобы у каждой строки были все поля.
  3. Выведите нужные колонки отдельно. Удобнее выгрузить 8 нужных полей, чем потом убирать 20 лишних.

Если нужно «собрать» таблицу самому

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

Отчёт, который «не выгружается» из-за сложной шапки, часто проще пересобрать: те же данные плоской таблицей, одна строка на документ.

Если выгрузка не получилась

Сначала определите симптом, потом ищите причину.

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

Выгрузка идёт очень долго

Если Excel «думает» минутами, причина почти всегда в записи по одной ячейке. Перейдите на текстовую выгрузку или отключите перерисовку, как описано выше. Проверьте также, что книга Excel не открыта на другом мониторе: диалог с вопросом может ждать нажатия, а вы его не видите.

Теряются ведущие нули и длинные коды

Артикул 000123 в Excel станет числом 123, а штрихкод из 13 цифр превратится в запись вида 4.6E+12. Перед импортом текстового файла в мастере задайте этим колонкам формат «Текстовый».

Проверка результата и мини-кейс

Выгрузка без сверки не считается готовой. Минимум три проверки:

  • ✅ Количество строк. Сравните число элементов справочника в 1С и строк в Excel. Расхождение на одну строку — это обычно заголовок.
  • ✅ Контрольная сумма. Сложите колонку с суммами в Excel и сравните с итогом отчёта в 1С. Копейки не должны расходиться.
  • ✅ Выборочный просмотр. Откройте 5-10 случайных строк и сверьте с карточками в программе.

Пример из практики

Небольшая оптовая фирма уходит с семёрки на 8.3. В базе 4 200 позиций номенклатуры и остатки на трёх складах. Бухгалтер сохранил оборотную ведомость по складам в xls (способ первый), а справочник выгрузил текстовым файлом (способ второй) за один запуск процедуры: 4 200 строк записались меньше чем за минуту. Через OLE эта же выгрузка по ячейкам заняла бы заметно дольше.

Результат: два файла, которые остаётся только привести к формату загрузки новой программы. Контроль простой: 4 200 строк в файле, остатки в ведомости совпали с итогом по складам.

Что делать с выгрузкой дальше

Для переноса в 8.3 данные из Excel обычно загружают обработкой «Загрузка данных из табличного документа» или аналогичной. Столбцы файла должны идти в порядке, который ждёт обработка, а в ячейках не должно быть объединений. Если файл нужен только для архива, сохраните его вместе с исходным отчётом и датой формирования в названии.

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

Можно ли выгрузить из 1С 7.7 сразу в формат xlsx?
Напрямую нет, семёрка пишет xls. Откройте файл в Excel и сохраните как .xlsx, это занимает секунды.
Как выгрузить из 1С 7.7 справочник целиком?
Через процедуру с объектом «Текст» или через OLE: выбираете элементы справочника, в цикле записываете нужные реквизиты. Печатная форма списка для этого хуже, она выводит только видимые колонки.
Нужен ли установленный Excel на сервере или на каждом компьютере?
Для сохранения в xls через меню Excel не требуется. Для макроса с Excel.Application он должен быть установлен на том компьютере, где запускается выгрузка.
Почему при сохранении в Excel пропадает оформление?
Часть стилей семёрки не имеет аналогов в Excel. Рамки и шрифты переносятся, а нестандартные заливки и вертикальное выравнивание иногда меняются. Для чистых данных используйте плоскую таблицу.
Можно ли выгрузить данные, если 1С 7.7 не запускается на новом компьютере?
Да. Скопируйте каталог базы на компьютер, где семёрка работает, и выгрузите там. Либо сделайте выгрузку заранее на старом компьютере в текстовый файл.