Перенос листа из Excel в 1С 8.3: от буфера обмена до своей обработки

· 10 мин

Содержание

Лист Excel переносят в 1С тремя путями. Чтобы просто посмотреть или распечатать данные, откройте файл через Главное меню → Файл → Открыть: платформа 1С 8.3 читает .xlsx и .xls как табличный документ. Чтобы данные попали в справочник или документ, выделите строки в Excel, скопируйте Ctrl+C и вставьте Ctrl+V в форму загрузки из файла — она есть в типовых конфигурациях на базе БСП.

Третий путь — внешняя обработка. Её берут, когда типовой загрузки нет, лист нестандартный или переносить нужно регулярно. Ниже — все три способа, подготовка файла и разбор ошибок, из-за которых строки не загружаются.

1. Подготовка листа Excel к копированию в 1С

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

Что сделать с листом до копирования:

  • 🧹 Одна строка — одна запись. Уберите объединённые ячейки, промежуточные итоги, пустые строки-разделители и «шапку» из нескольких строк. Заголовки колонок — ровно в одной строке.
  • 🔢 Формулы → значения. Скопируйте лист и вставьте его на новый лист через «Специальную вставку → Значения». Иначе в 1С может прийти не число, а текст формулы или ошибка #ЗНАЧ!.
  • 🏷️ Артикулы, ИНН, коды — как текст. Excel превращает 0012345 в 12345, а длинный ИНН — в 7,70E+09. Поставьте колонкам формат «Текстовый» до ввода данных или проверьте их глазами.
  • ␣ Лишние пробелы. Неразрывные пробелы и пробелы в конце строки ломают поиск по наименованию. Функция =СЖПРОБЕЛЫ() убирает обычные, неразрывные заменяйте через «Найти и заменить».
  • 📅 Даты и числа в одном формате. Дата — настоящая дата Excel, а не текст «01.10.2026г.». В суммах — без «руб.» и без разделителей тысяч в виде точки.
  • 📄 Один лист — один файл. Если в книге несколько листов, а загружать нужно не первый, сохраните нужный лист отдельной книгой. Так вы точно знаете, что именно прочитает 1С.

Добавьте в Excel служебную колонку с номером строки. Когда 1С сообщит об ошибке в строке 148, вы быстро найдёте её в исходнике, даже если лист отсортирован иначе.

Последний шаг подготовки — резервная копия базы, если загружаете в справочник сотни позиций. Массовую загрузку сначала проверьте в копии базы. Отменить создание 500 лишних элементов номенклатуры можно только ручным удалением.

2. Как открыть лист Excel в 1С как табличный документ

Самый простой случай: нужно увидеть таблицу внутри 1С, сравнить с отчётом или скопировать часть ячеек.

  1. Нажмите кнопку главного меню (значок с тремя полосками в левом верхнем углу).
  2. Выберите Файл → Открыть.
  3. В поле типа файлов укажите «Лист Excel» или «Все файлы» и выберите книгу.
  4. Файл откроется отдельным окном как табличный документ.

Дальше с ним работают как с любым отчётом 1С: выделить диапазон, скопировать, сохранить в формате .mxl или обратно в .xlsx, распечатать.

Открытый табличный документ — это просто картинка с данными. В справочники и документы он ничего не записывает. Для загрузки нужен способ из следующих разделов.

Обратная задача: скопировать лист из 1С в Excel

Иногда под «скопировать лист» понимают выгрузку отчёта. Есть два варианта:

СпособКак сделатьКогда подходит
Сохранить файломВ отчёте нажмите кнопку сохранения (дискета) и выберите тип «Лист Excel» (.xlsx)Нужен весь отчёт с оформлением
Через буферЩёлкните в отчёт, Ctrl+A, Ctrl+C, затем Ctrl+V в ExcelНужна часть таблицы или быстрый перенос

При копировании через буфер Excel иногда получает числа как текст. Выделите колонку и примените «Данные → Текст по столбцам» с готовыми настройками — значения станут числами.

3. Копирование строк листа через буфер обмена в форму загрузки

Это основной способ для типовых конфигураций: 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:Комплексная автоматизация 2 и других, построенных на библиотеке стандартных подсистем. Механизм один и тот же, отличается только место команды.

Где искать команду:

  • В списке справочника (например, «Номенклатура») — кнопка «Загрузить» на панели списка или в меню «Ещё».
  • В табличной части документа (например, «Товары» в поступлении) — кнопка «Загрузить» или «Загрузить из файла» над таблицей; в некоторых формах она в меню «Ещё».

Порядок действий:

  1. Откройте форму загрузки. Она покажет пустую таблицу-шаблон с колонками, которые ожидает 1С.
  2. В Excel выделите диапазон с данными без строки заголовков.
  3. Скопируйте Ctrl+C.
  4. В 1С щёлкните в первую ячейку первой колонки шаблона и нажмите Ctrl+V.
  5. Проверьте, что колонки встали на свои места: наименование под наименованием, количество под количеством.
  6. Нажмите «Далее» — 1С перейдёт к сопоставлению данных с существующими элементами.
  7. Просмотрите результат сопоставления и завершите загрузку.

Вместо вставки через буфер в той же форме можно загрузить файл целиком — поддерживаются форматы Excel, OpenDocument, .mxl и .csv. Но вставка удобнее: вы сами решаете, какие строки и колонки переносить.

Если порядок колонок в вашем листе не совпадает с шаблоном, не переставляйте колонки в 1С. Быстрее переставить их в Excel или скопировать по одной колонке.

4. Сопоставление колонок и типов данных при переносе листа

В Excel всё — текст и числа. В 1С каждое поле имеет тип: строка, число, дата или ссылка на элемент справочника. Задача загрузки — превратить «Шт» из ячейки в ссылку на единицу измерения «шт», а «ООО Ромашка» — в ссылку на контрагента.

Как 1С ищет соответствие для ссылочных полей:

  • 🔍 По коду или артикулу — самый надёжный вариант, совпадение однозначное.
  • 📝 По наименованию — работает, если в базе нет двух элементов с одним именем.
  • 🧾 По ИНН — для контрагентов; учтите, что у обособленных подразделений ИНН совпадает с головной организацией.

Пример сопоставления для загрузки товаров в документ:

Сопоставление полей
Артикул→Номенклатура (поиск по артикулу)
Наименование товара→Номенклатура (поиск, если артикул пуст)
Ед. изм.→Единица измерения (справочник)
Кол-во→Количество (число)
Цена без НДС→Цена (число)
Ставка→Ставка НДС (перечисление)

Типовые ловушки на этом шаге:

Поле в ExcelЧто пойдёт не такКак исправить
1 250,50 с неразрывным пробелом1С не распознает числоУбрать пробелы в Excel
20%Не совпадёт со ставкой НДСПривести к виду ставки, как в 1С
Дата текстом 01.10.26Год прочитается неоднозначноФормат даты с четырьмя цифрами года
Наименование с двойным пробеломЭлемент не найдётся, создастся дубль=СЖПРОБЕЛЫ() перед копированием

Если 1С предлагает создать новые элементы для строк без совпадения, сначала посмотрите на их число. Двести «новых» товаров при загрузке накладной на двести строк почти всегда означают ошибку в колонке поиска, а не новый ассортимент.

5. Универсальная обработка: загрузка листа в любой справочник или документ

Когда в форме нет команды «Загрузить» или нужно заполнить нестандартный объект, используют внешнюю обработку «Загрузка данных из табличного документа». Её распространяли вместе с дисками ИТС; есть версии для обычных и для управляемых форм. Берите вариант для управляемых форм — он работает в интерфейсе «Такси».

Как запустить:

  1. Откройте файл обработки через Главное меню → Файл → Открыть.
  2. Подтвердите предупреждение безопасности: платформа спрашивает разрешение на открытие внешних файлов.
  3. Если открыть не даёт — у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор базы.

Что настроить внутри:

  • Режим загрузки — в справочник, в табличную часть документа или в регистр сведений .
  • Объект — какой справочник или какой документ и какая его табличная часть.
  • Колонки — для каждого реквизита указывают номер колонки листа или фиксированное значение.
  • Поле поиска — отметка у реквизита, по которому обработка ищет существующий элемент. Найден — элемент обновится, не найден — создастся новый.

Сам лист вставляют на вкладку с табличным документом: так же, Ctrl+C в Excel и Ctrl+V в обработке, или командой открытия файла.

Режим «обновлять найденные» перезаписывает реквизиты у существующих элементов. Если в колонке листа пусто, обработка может стереть заполненное значение в базе. Перед загрузкой в справочник с поиском по коду сделайте копию базы.

Где сохранять обработку для постоянной работы: в БП 3.0, УТ 11 и КА 2 её подключают как дополнительную через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Учтите, что универсальная обработка с ИТС не содержит регистрационных данных для этого механизма, поэтому так подключают только обработки, написанные под него.

6. Своя обработка: как прочитать лист Excel кодом

Если один и тот же лист приходит каждую неделю (прайс поставщика, выгрузка с маркетплейса), выгоднее один раз написать обработку. Платформа 8.3 читает Excel сама, без запуска Excel на компьютере: метод Прочитать у объекта ТабличныйДокумент.

Пример для файловой базы или случая, когда файл доступен серверу по пути. Обработка читает лист, начиная со второй строки, и собирает данные в таблицу значений:

&НаСервере
Функция ПрочитатьЛист(ПутьКФайлу)

	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Прочитать(ПутьКФайлу, СпособЧтенияЗначенийТабличногоДокумента.Текст);

	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("Артикул");
	Результат.Колонки.Добавить("Наименование");
	Результат.Колонки.Добавить("Количество");

	Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

		Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
		Если ПустаяСтрока(Артикул) Тогда
			Продолжить; // пропускаем пустые строки в конце листа
		КонецЕсли;

		ТекстКоличества = ТабДок.Область(НомерСтроки, 3).Текст;
		ТекстКоличества = СтрЗаменить(ТекстКоличества, " ", "");
		ТекстКоличества = СтрЗаменить(ТекстКоличества, Символы.НПП, "");
		ТекстКоличества = СтрЗаменить(ТекстКоличества, ",", ".");

		Строка = Результат.Добавить();
		Строка.Артикул = Артикул;
		Строка.Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2).Текст);

		Попытка
			Строка.Количество = Число(ТекстКоличества);
		Исключение
			Сообщить(СтрШаблон("Строка %1: количество ""%2"" не число",
				Формат(НомерСтроки, "ЧГ=0"), ТекстКоличества));
			Строка.Количество = 0;
		КонецПопытки;

	КонецЦикла;

	Возврат Результат;

КонецФункции

Что учесть:

  • 🖥️ Клиент-сервер. Файл лежит на компьютере пользователя, а код выполняется на сервере 1С. Файл сначала передают на сервер через временное хранилище (ПоместитьФайлНаСервер или НачатьПомещениеФайлаНаСервер), сохраняют во временный файл и только потом читают.
  • 📏 ВысотаТаблицы бывает больше, чем данных. Если в Excel ниже таблицы когда-то было форматирование, пустые строки могут попасть в чтение. Поэтому в примере проверка на пустой артикул.
  • 📑 Первый лист. Метод Прочитать заполняет один табличный документ, поэтому держите нужные данные на первом листе книги.
  • 🧩 Поиск ссылок. Найденный артикул превращают в ссылку запросом к справочнику, а не перебором в цикле: на тысяче строк разница в скорости заметна.

Режим СпособЧтенияЗначенийТабличногоДокумента.Текст возвращает то, что видно в ячейке. Это удобно для артикулов с ведущими нулями: они не потеряются.

7. Как проверить результат загрузки и найти ошибки

После загрузки сверьте три вещи: число строк, итоговые суммы и созданные элементы.

  • 🔢 Строки. В Excel отфильтруйте пустые и посчитайте записи. В 1С посмотрите число строк в табличной части или новых элементов в справочнике.
  • 💰 Суммы. Итог колонки «Сумма» в Excel должен совпасть с итогом документа. Расхождение в копейки обычно даёт округление цены.
  • 🆕 Новые элементы. Отберите справочник по дате создания или откройте группу, куда шла загрузка. Неожиданно созданные элементы — признак того, что поиск не сработал.

Форма загрузки БСП перед записью показывает, какие строки сопоставлены с существующими элементами, а какие нет. Отфильтруйте несопоставленные и разберите их до загрузки, а не после. Универсальная обработка пишет сообщения в окно служебных сообщений с номером строки.

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

Если ошибочно загружен документ — его можно просто удалить пометкой и перезагрузить. С элементами справочников сложнее: на них уже могут ссылаться документы. Помечайте лишние элементы на удаление и запускайте удаление помеченных объектов, программа сама покажет, что на них ссылается.

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

Можно ли вставить лист Excel прямо в табличную часть документа без формы загрузки?
Нет. Обычная табличная часть не принимает многострочную вставку из буфера. Нужна команда загрузки, внешняя обработка или ручной ввод.
Нужен ли установленный Excel, чтобы 1С открыла .xlsx?
Нет. Платформа 8.3 читает файлы Excel самостоятельно. Excel нужен только для подготовки данных.
Сколько строк можно загрузить за один раз?
Жёсткого предела у формы нет, но на нескольких тысячах строк сопоставление идёт заметно дольше. Большой прайс удобнее грузить частями по 1000–2000 строк.
Как загрузить данные с другого листа книги, а не с первого?
Самый надёжный путь — сохранить нужный лист отдельной книгой или переставить его первым и сохранить файл.
Можно ли загрузить цены из листа сразу в документ установки цен?
Да, если в табличной части документа есть команда загрузки. Иначе используйте универсальную обработку в режиме загрузки в табличную часть.