Перенос листа из Excel в 1С 8.3: от буфера обмена до своей обработки
Содержание
Лист 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С, сравнить с отчётом или скопировать часть ячеек.
- Нажмите кнопку главного меню (значок с тремя полосками в левом верхнем углу).
- Выберите
Файл → Открыть. - В поле типа файлов укажите «Лист Excel» или «Все файлы» и выберите книгу.
- Файл откроется отдельным окном как табличный документ.
Дальше с ним работают как с любым отчётом 1С: выделить диапазон, скопировать, сохранить в формате .mxl или обратно в .xlsx, распечатать.
Открытый табличный документ — это просто картинка с данными. В справочники и документы он ничего не записывает. Для загрузки нужен способ из следующих разделов.
Обратная задача: скопировать лист из 1С в Excel
Иногда под «скопировать лист» понимают выгрузку отчёта. Есть два варианта:
| Способ | Как сделать | Когда подходит |
|---|---|---|
| Сохранить файлом | В отчёте нажмите кнопку сохранения (дискета) и выберите тип «Лист Excel» (.xlsx) | Нужен весь отчёт с оформлением |
| Через буфер | Щёлкните в отчёт, Ctrl+A, Ctrl+C, затем Ctrl+V в Excel | Нужна часть таблицы или быстрый перенос |
При копировании через буфер Excel иногда получает числа как текст. Выделите колонку и примените «Данные → Текст по столбцам» с готовыми настройками — значения станут числами.
3. Копирование строк листа через буфер обмена в форму загрузки
Это основной способ для типовых конфигураций: 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:Комплексная автоматизация 2 и других, построенных на библиотеке стандартных подсистем. Механизм один и тот же, отличается только место команды.
Где искать команду:
- В списке справочника (например, «Номенклатура») — кнопка «Загрузить» на панели списка или в меню «Ещё».
- В табличной части документа (например, «Товары» в поступлении) — кнопка «Загрузить» или «Загрузить из файла» над таблицей; в некоторых формах она в меню «Ещё».
Порядок действий:
- Откройте форму загрузки. Она покажет пустую таблицу-шаблон с колонками, которые ожидает 1С.
- В Excel выделите диапазон с данными без строки заголовков.
- Скопируйте
Ctrl+C. - В 1С щёлкните в первую ячейку первой колонки шаблона и нажмите
Ctrl+V. - Проверьте, что колонки встали на свои места: наименование под наименованием, количество под количеством.
- Нажмите «Далее» — 1С перейдёт к сопоставлению данных с существующими элементами.
- Просмотрите результат сопоставления и завершите загрузку.
Вместо вставки через буфер в той же форме можно загрузить файл целиком — поддерживаются форматы Excel, OpenDocument, .mxl и .csv. Но вставка удобнее: вы сами решаете, какие строки и колонки переносить.
Если порядок колонок в вашем листе не совпадает с шаблоном, не переставляйте колонки в 1С. Быстрее переставить их в Excel или скопировать по одной колонке.
4. Сопоставление колонок и типов данных при переносе листа
В Excel всё — текст и числа. В 1С каждое поле имеет тип: строка, число, дата или ссылка на элемент справочника. Задача загрузки — превратить «Шт» из ячейки в ссылку на единицу измерения «шт», а «ООО Ромашка» — в ссылку на контрагента.
Как 1С ищет соответствие для ссылочных полей:
- 🔍 По коду или артикулу — самый надёжный вариант, совпадение однозначное.
- 📝 По наименованию — работает, если в базе нет двух элементов с одним именем.
- 🧾 По ИНН — для контрагентов; учтите, что у обособленных подразделений ИНН совпадает с головной организацией.
Пример сопоставления для загрузки товаров в документ:
Типовые ловушки на этом шаге:
| Поле в Excel | Что пойдёт не так | Как исправить |
|---|---|---|
1 250,50 с неразрывным пробелом | 1С не распознает число | Убрать пробелы в Excel |
20% | Не совпадёт со ставкой НДС | Привести к виду ставки, как в 1С |
Дата текстом 01.10.26 | Год прочитается неоднозначно | Формат даты с четырьмя цифрами года |
| Наименование с двойным пробелом | Элемент не найдётся, создастся дубль | =СЖПРОБЕЛЫ() перед копированием |
Если 1С предлагает создать новые элементы для строк без совпадения, сначала посмотрите на их число. Двести «новых» товаров при загрузке накладной на двести строк почти всегда означают ошибку в колонке поиска, а не новый ассортимент.
5. Универсальная обработка: загрузка листа в любой справочник или документ
Когда в форме нет команды «Загрузить» или нужно заполнить нестандартный объект, используют внешнюю обработку «Загрузка данных из табличного документа». Её распространяли вместе с дисками ИТС; есть версии для обычных и для управляемых форм. Берите вариант для управляемых форм — он работает в интерфейсе «Такси».
Как запустить:
- Откройте файл обработки через
Главное меню → Файл → Открыть. - Подтвердите предупреждение безопасности: платформа спрашивает разрешение на открытие внешних файлов.
- Если открыть не даёт — у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор базы.
Что настроить внутри:
- Режим загрузки — в справочник, в табличную часть документа или в регистр сведений .
- Объект — какой справочник или какой документ и какая его табличная часть.
- Колонки — для каждого реквизита указывают номер колонки листа или фиксированное значение.
- Поле поиска — отметка у реквизита, по которому обработка ищет существующий элемент. Найден — элемент обновится, не найден — создастся новый.
Сам лист вставляют на вкладку с табличным документом: так же, 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 должен совпасть с итогом документа. Расхождение в копейки обычно даёт округление цены.
- 🆕 Новые элементы. Отберите справочник по дате создания или откройте группу, куда шла загрузка. Неожиданно созданные элементы — признак того, что поиск не сработал.
Форма загрузки БСП перед записью показывает, какие строки сопоставлены с существующими элементами, а какие нет. Отфильтруйте несопоставленные и разберите их до загрузки, а не после. Универсальная обработка пишет сообщения в окно служебных сообщений с номером строки.
Если ошибочно загружен документ — его можно просто удалить пометкой и перезагрузить. С элементами справочников сложнее: на них уже могут ссылаться документы. Помечайте лишние элементы на удаление и запускайте удаление помеченных объектов, программа сама покажет, что на них ссылается.