Файлы Excel и 1С 8.3: просмотр, импорт, выгрузка по расписанию
Содержание
Открыть файл Excel в 1С 8.3 можно без установленного Microsoft Excel: Главное меню → Файл → Открыть (или Ctrl+O), выберите файл *.xlsx или *.xls — он откроется как табличный документ 1С. Чтобы выгрузить данные из 1С в Excel, сформируйте отчёт или список и сохраните его через значок дискеты в формате «Лист Excel». Для импорта данных из Excel в 1С используют кнопку Загрузить в табличной части документа, загрузку в справочник или внешнюю обработку
.
У каждого из трёх путей свои ограничения: что теряется при открытии, как не наплодить дублей при импорте и почему выгрузку по расписанию не стоит строить на COM-объекте Excel.
Как 1С работает с таблицами Excel
Платформа 1С:Предприятие 8.3 умеет сама читать и записывать файлы Excel. Для этого есть объект «табличный документ» — тот же, в котором вы видите отчёты и печатные формы. Офисный пакет на компьютере для этого не нужен.
Что важно знать заранее:
- 📄 Форматы. Платформа читает и сохраняет
xlsx,xlsиods. Старые файлы Excel 95 и файлы с поломанной структурой могут не открыться. - 🧮 Формулы. При открытии 1С берёт вычисленные значения, а не сами формулы. Формулы после пересохранения из 1С не сохраняются.
- 🎨 Оформление. Шрифты, заливка, границы и объединённые ячейки переносятся в целом корректно. Диаграммы, сводные таблицы, макросы и условное форматирование — нет.
- 📑 Листы. Если в книге несколько листов, ориентируйтесь на первый лист: именно его берут большинство обработок загрузки. Нужные данные лучше перенести на первый лист заранее.
Отсюда три сценария работы, и у каждого свой инструмент:
| Задача | Чем делается | Нужен программист |
|---|---|---|
| Посмотреть файл Excel внутри 1С | Файл → Открыть | Нет |
| Выгрузить отчёт, список, печатную форму | Сохранение табличного документа | Нет |
| Загрузить данные из Excel в базу | Кнопка «Загрузить», обработка, код | Иногда |
| Выгружать файл регулярно и без участия человека | Рассылка отчётов или регламентное задание | Для регламентного задания — да |
Как открыть файл Excel в 1С для просмотра
Самый простой случай — нужно только посмотреть таблицу, а Excel на рабочем месте нет. Например, на терминальном сервере, где офис не ставили.
- Нажмите кнопку главного меню (значок с тремя полосками в левом верхнем углу окна).
- Выберите
Файл → Открыть. - В поле типа файлов укажите «Все файлы» или «Лист Excel», найдите файл и нажмите «Открыть».
- Файл откроется в новой вкладке как табличный документ.
В открытом документе работает всё, что и в отчётах 1С: поиск Ctrl+F, выделение диапазона с подсчётом суммы в нижней части окна, копирование в буфер, печать.
Отредактированный файл можно сохранить обратно: Главное меню → Файл → Сохранить как, тип — лист Excel. Учтите ограничения из первого раздела: формулы и диаграммы пропадут.
Если нужно сравнить две выгрузки, в том же меню Файл есть команда сравнения файлов. Она подсвечивает различающиеся ячейки двух табличных документов — удобно, когда бухгалтер присылает «исправленную» версию реестра.
Выгрузка данных из 1С в файл Excel
Почти любой экран 1С с таблицей можно превратить в файл Excel. Различается только первый шаг.
Отчёты
- Сформируйте отчёт (например, оборотно-сальдовую ведомость).
- На командной панели отчёта нажмите значок дискеты «Сохранить».
- В поле типа файла выберите «Лист Excel 2007-…» (
*.xlsx). - Укажите папку и имя файла.
Если значка нет на панели, команда сохранения есть в меню Еще.
Списки справочников и журналов документов
У списков нет кнопки «Сохранить», поэтому сначала таблицу выводят в табличный документ:
- Откройте список, например
Справочники → Контрагенты. - Настройте отбор и колонки, которые нужны в файле.
- Выберите
Еще → Вывести список. - В окне вывода отметьте колонки и нажмите «ОК».
- В появившемся табличном документе:
Главное меню → Файл → Сохранить как→ лист Excel.
Печатные формы
Накладную, счёт или акт откройте командой «Печать». В форме предварительного просмотра есть кнопка «Сохранить»: выберите формат xlsx и папку. Там же можно сразу отправить файл по почте.
Быстрый способ через буфер обмена
Выделите в отчёте нужный диапазон мышью, нажмите Ctrl+C и вставьте в Excel Ctrl+V. Подходит для пары десятков строк. Для больших таблиц надёжнее сохранить файл
: при копировании числа иногда попадают в Excel как текст, и итоги перестают считаться.
Сумма в выгрузке не сходится с отчётом? Проверьте, не стоит ли в настройках отчёта вывод в тысячах рублей или округление. В Excel уйдут ровно те значения, которые вы видите на экране.
Импорт данных из Excel в 1С:Предприятие
Загрузка — самая востребованная и самая рискованная часть. Ошибочный импорт создаёт дубли номенклатуры и контрагентов, которые потом приходится чистить вручную.
Перед массовой загрузкой в рабочую базу сделайте её резервную копию или проверьте загрузку на копии базы.
В табличную часть документа
Так заполняют поступление товаров по счёту поставщика или реализацию по заказу из Excel. В Бухгалтерии предприятия 3.0 и Управлении торговлей 11:
- Откройте документ, например «Поступление (акт, накладная, УПД)».
- Над табличной частью «Товары» нажмите
Загрузить. - В открывшейся форме загрузки скопируйте строки из Excel и вставьте их в таблицу формы или выберите файл.
- Сопоставьте колонки: какая колонка — номенклатура, какая — количество, цена, сумма.
- Программа покажет, какие строки найдены в справочнике, а какие нет. Для ненайденных можно выбрать существующую позицию или создать новую.
- Нажмите кнопку переноса данных в документ.
Поиск номенклатуры идёт по наименованию, артикулу или штрихкоду. Чем точнее совпадение в файле, тем меньше ручного сопоставления.
В справочник
Номенклатуру, контрагентов и цены в типовых конфигурациях загружают из формы списка: в командной панели справочника Номенклатура есть команда загрузки (обычно в меню Еще или кнопкой Загрузить). Механизм тот же: вставить таблицу, сопоставить колонки, проверить найденное, перенести.
Универсальной обработкой
Для объектов, у которых нет встроенной загрузки, используют внешнюю обработку «Загрузка данных из табличного документа». Её открывают через Главное меню → Файл → Открыть как файл *.epf.
В обработке задают:
- 📌 вид объекта: справочник, документ, регистр сведений ;
- 🔑 поле поиска — по нему 1С решает, обновить существующий элемент или создать новый;
- 📍 номер колонки файла для каждого реквизита;
- ⚙️ режим: только обновлять найденное или ещё и создавать новое.
Внешние обработки запускаются только у пользователей с правом на открытие внешних отчётов и обработок. Без него будет сообщение о нарушении прав доступа.
Программно: пример кода
Если загрузка регулярная и формат файла постоянный, проще написать свою обработку. Платформа читает Excel в табличный документ, а дальше значения берутся по адресу ячейки.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла); // xlsx, xls или ods
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл // в первой строке заголовки
СтрокаR = "R" + Формат(НомерСтроки, "ЧГ=0");
Артикул = СокрЛП(ТабДок.Область(СтрокаR + "C1").Текст);
Количество = Число(ТабДок.Область(СтрокаR + "C3").Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
// здесь поиск номенклатуры по артикулу и заполнение строки документа
КонецЦикла;
Формат(..., "ЧГ=0") убирает пробел-разделитель тысяч: без него на строке 1000 адрес ячейки превратится в R1 000C1, и обработка упадёт.
Число() вызовет ошибку, если в ячейке текст или пробел-разделитель. Для «грязных» файлов оберните преобразование в Попытка … Исключение и записывайте номера проблемных строк в журнал.
Подготовка файла и сопоставление колонок
Большинство ошибок загрузки рождается в самом файле Excel, а не в 1С. Пять минут подготовки сэкономят ручную чистку базы.
Как подготовить таблицу:
- 🧹 Одна строка заголовков, данные сразу под ней. Без объединённых ячеек, пустых строк-разделителей и промежуточных итогов.
- 🔢 Числа — числами. Уберите пробелы между разрядами, слово «руб.», проверьте десятичный разделитель.
- 📅 Даты — в формате даты Excel, а не текстом вида
01.10.25г.. - 🔤 Наименования без лишних пробелов в начале и конце. В Excel их убирает функция
СЖПРОБЕЛЫ. - 🆔 Ключ поиска заполнен в каждой строке: артикул, ИНН контрагента, код.
Пример сопоставления колонок при загрузке номенклатуры:
Правило выбора ключа поиска простое: берите поле, которое уникально и в файле, и в базе. Поиск по наименованию — последний вариант: «Болт М8» и «Болт М8» с двойным пробелом для 1С разные позиции.
После загрузки проверьте результат:
- откройте справочник и отсортируйте по дате создания — новые элементы окажутся рядом;
- сравните количество строк в файле и в документе;
- сверьте итоговую сумму документа с суммой в Excel.
Автоматическая выгрузка в Excel по расписанию
Когда руководителю каждый понедельник нужен один и тот же отчёт в Excel, делать его руками не обязательно.
Без программиста: рассылка отчётов
В Бухгалтерии предприятия 3.0 и других конфигурациях на БСП есть механизм рассылки отчётов: Администрирование → Печатные формы, отчеты и обработки → Рассылки отчетов. В рассылке указывают:
- какой отчёт и с какими настройками формировать;
- формат вложения —
xlsx; - получателей и способ доставки: электронная почта или сетевая папка;
- расписание — например, по понедельникам в 8:00.
Для работы по расписанию в файловой базе должен быть кто-то, кто держит базу открытой, либо база должна работать в клиент-серверном варианте, где регламентные задания выполняет сервер 1С.
С программистом: регламентное задание
Если нужна нестандартная выгрузка (например, остатки в фиксированном формате для маркетплейса), её оформляют регламентным заданием в расширении конфигурации. Типовую конфигурацию при этом не снимают с поддержки.
Запись файла на сервере делается без Excel:
ТабДок.Записать("\\fileserver\obmen\ostatki.xlsx", ТипФайлаТабличногоДокумента.XLSX);
Путь должен быть доступен учётной записи, под которой работает служба сервера 1С, а не пользователю, который настраивал задание.
Не используйте на сервере COM-объект Excel.Application. Он требует установленного офиса, оставляет зависшие процессы EXCEL.EXE и плохо работает от имени службы. Встроенный табличный документ решает ту же задачу надёжнее.
Ошибки при открытии и загрузке Excel
Типовые ситуации и что с ними делать:
Ещё одна частая причина медленной работы — огромные файлы. Таблица на 50–100 тысяч строк читается в табличный документ заметно дольше, чем на тысячу, и при загрузке на клиенте может упереться в память. Большие объёмы режьте на части или загружайте серверной обработкой.