Как перенести таблицу из Excel в справочник или документ 1С
Содержание
Загрузить данные из Excel
в 1С 8.3 проще всего встроенной командой «Загрузить»: она есть в списках справочников (номенклатура, контрагенты) и над табличными частями документов в БП 3.0, УТ 11 и других конфигурациях на БСП. Таблицу вставляют через буфер обмена или открывают файлом .xlsx, затем сопоставляют колонки с полями 1С и загружают.
Типичная ситуация: поставщик прислал накладную на 300 строк в Excel, а набивать её руками — полдня. Или при переходе с другой программы нужно перенести в 1С справочник из 2 000 товаров. Ниже — порядок, который работает и для импорта справочника, и для загрузки таблицы в документ.
Подготовка таблицы Excel перед импортом в 1С
Большинство сбоев при загрузке возникает не в 1С, а в самом файле. Пять минут чистки экономят повторную загрузку и удаление дублей.
Что сделать с таблицей:
- 🧹 Одна строка заголовков. Шапку накладной, логотип, подписи и итоговую строку «Всего» уберите. Данные начинаются сразу под заголовками.
- 🔗 Без объединённых ячеек. Объединение сдвигает колонки при чтении. Снимите его в выпадающем списке кнопки «Объединить и поместить в центре» на вкладке «Главная».
- 🔢 Значения вместо формул. Скопируйте диапазон и вставьте как «Значения». Формулы со ссылками на другие листы при чтении могут дать пустые ячейки.
- 🆔 ИНН, КПП, коды и артикулы — текстом. Числовой формат съедает ведущие нули: ИНН
0274062111превращается в274062111, и 1С не найдёт контрагента. - ✂️ Лишние пробелы. Функция
=СЖПРОБЕЛЫ(A2)убирает пробелы по краям. Неразрывный пробел (часто приходит из выгрузок сайтов) убирают заменой через Ctrl+H. - 📏 Числа как числа. Цена
1 250,50с пробелом-разделителем разрядов, сохранённая как текст, иногда читается как ноль. Приведите колонку к числовому формату. - 📦 Единицы измерения. Значения вроде «шт», «кг», «упак» должны совпадать с тем, что уже есть в классификаторе единиц измерения базы.
Если в файле несколько листов, оставьте нужный лист первым или скопируйте данные в новую книгу. Так меньше шансов загрузить не тот лист.
Если файл пришёл в CSV
CSV из русского Excel обычно сохраняется в кодировке Windows-1251 с точкой с запятой в качестве разделителя. Выгрузки с сайтов и маркетплейсов чаще приходят в UTF-8 с запятой. Если после открытия в 1С вместо букв видны «кракозябры» или вся строка попала в одну колонку — откройте файл в Excel через импорт текста, укажите кодировку и разделитель, а затем сохраните как .xlsx. Дальше работайте уже с ним.
Отдельно продумайте ключ поиска — колонку, по которой 1С будет понимать, что строка Excel и элемент базы — одно и то же. Для товаров это артикул или код, для контрагентов — ИНН. Наименование годится хуже всего: «Болт М8х40» и «Болт М8 х 40» для программы разные товары.
Где в 1С открыть загрузку из файла Excel
Встроенный механизм есть в типовых конфигурациях на базе БСП (БП 3.0, УТ 11, КА 2, ERP, УНФ). Отдельная обработка не нужна.
| Что загружаем | Где команда |
|---|---|
| Номенклатура, контрагенты и другие справочники | Список справочника → кнопка Загрузить в командной панели |
| Товары в документ поступления или реализации | Табличная часть «Товары» → кнопка Загрузить над таблицей |
| Остатки при вводе начальных данных | Табличная часть документа ввода остатков → та же кнопка |
В части релизов кнопка спрятана в меню Ещё командной панели. Если её не видно ни там, ни там — проверьте права: загрузка требует права на добавление элементов справочника или изменение документа.
Порядок запуска:
- Откройте нужный список или документ.
- Нажмите
Загрузить. Откроется форма с пустой таблицей-шаблоном: её колонки — это поля, которые 1С умеет заполнить. - Выберите источник данных:
- вставка из буфера — выделите диапазон в Excel без заголовков, нажмите Ctrl+C, щёлкните в первую ячейку шаблона и нажмите Ctrl+V;
- файл — команда загрузки из файла в форме, выбор
.xlsx,.xls,.csvили.ods.
Вставка через буфер — самый надёжный путь. Excel отдаёт уже отображаемые значения, и проблемы с форматами ячеек почти исчезают. Для таблиц до нескольких тысяч строк это оптимальный вариант.
Для документа начинайте загрузку из уже созданного документа с заполненной шапкой: организация, контрагент, склад, договор. Строки табличной части подтягивают значения шапки, например ставку НДС и счёт учёта.
Сопоставление колонок Excel с полями 1С
После вставки или открытия файла нужно, чтобы каждая колонка Excel попала в правильное поле. В шаблоне колонки 1С идут в своём порядке, и он редко совпадает с порядком в файле поставщика.
Два способа:
- Переставить колонки в Excel под порядок шаблона и вставить заново. Быстро, если колонок 4–6.
- Указать соответствие в форме загрузки, если она предлагает выбор колонки файла для каждого поля. При загрузке файла это обычно так.
Пример сопоставления для загрузки товаров в поступление:
Дальше 1С ищет каждый товар или контрагента в базе. Поиск идёт по полям, которые вы заполнили: если указан артикул — сначала по нему, затем по наименованию. Поэтому колонку артикула или ИНН стоит заполнять всегда, даже если она кажется лишней.
Результат сопоставления делится на группы:
- ✅ сопоставлено — элемент найден однозначно;
- 🆕 новые — в базе нет подходящего элемента, при загрузке он будет создан (для справочника) или строка останется пустой (для документа);
- ⚠️ неоднозначные — найдено несколько подходящих элементов, выбор за вами.
Неоднозначные строки разберите вручную: откройте строку и выберите правильный элемент из предложенных. Если таких строк сотни, проблема в базе — в ней дубли, и сначала стоит их объединить.
Отбор строк: как загрузить только нужное
Загружать весь прайс на 5 000 позиций ради 40 товаров не стоит. Отберите строки до загрузки — в 1С это делать неудобнее.
Способы отбора:
- Автофильтр в Excel. Включите фильтр (Ctrl+Shift+L), отберите строки, выделите диапазон и скопируйте. Excel копирует только видимые строки отфильтрованного диапазона, скрытые в буфер не попадут.
- Отдельный лист. Для повторяющихся загрузок заведите лист «Для 1С», куда формулами собираются нужные строки, а перед загрузкой копируйте его значениями.
- Удаление в шаблоне. После вставки лишние строки можно удалить прямо в таблице формы загрузки: выделить и нажать Delete. Подходит, если лишних строк немного.
Для справочников отключите создание новых элементов, если загружаете только цены или реквизиты к существующим позициям. Иначе каждая строка с опечаткой в артикуле превратится в новый товар, и потом их придётся помечать на удаление.
| Задача | Как отбирать | Риск |
|---|---|---|
| Дозагрузить несколько товаров из прайса | Автофильтр в Excel | Скопировать заголовок вместе с данными |
| Регулярная загрузка накладных | Лист-шаблон с формулами | Формулы вместо значений |
| Убрать 5–10 строк | Удаление в форме загрузки | Удалить нужную строку |
Ошибки при загрузке данных из Excel и как их читать
После нажатия на загрузку 1С показывает итог: сколько элементов создано, сколько обновлено, сколько строк пропущено. Пропущенные строки — главное, что нужно проверить.
Перед первой массовой загрузкой в справочник сделайте резервную копию базы или проверьте процесс на копии. Отменить загрузку одной кнопкой нельзя: созданные элементы придётся удалять вручную через пометку на удаление.
После загрузки в документ сверьте итоговую сумму табличной части с итогом в файле поставщика. Расхождение в копейки обычно даёт округление: цена в Excel с четырьмя знаками после запятой, а в 1С — с двумя. Тогда загружайте колонку «Сумма», а не пересчитывайте её по цене.
Ещё две проверки для документа: колонка «% НДС» (если поставщик работает без НДС, а в карточках товаров указана ставка 20 %, строки получат лишний налог) и счета учёта на закладке с товарами. Счета подставляются из настроек учёта номенклатуры, и для новых товаров они могут оказаться не теми, что вы ждёте.
Внешняя обработка для нестандартной загрузки из Excel
Встроенной команды не хватает, когда нужно заполнить регистр сведений , нетиповой реквизит или загрузить данные в конфигурацию без БСП. Тогда используют внешнюю обработку .
Универсальная обработка «Загрузка данных из табличного документа»
Это обработка ЗагрузкаДанныхИзТабличногоДокумента.epf, которую фирма 1С распространяет для своих конфигураций; есть вариант для управляемых форм. Открывают её через главное меню: Файл → Открыть.
Ключевые настройки:
- Режим загрузки: в справочник, в табличную часть объекта или в регистр сведений.
- Первая строка данных — номер строки, с которой начинаются данные (обычно 2, если первая — заголовки).
- Ручная нумерация колонок — позволяет указать для каждого реквизита номер колонки файла, а не подстраивать файл под обработку.
- Для каждого реквизита — режим: «Искать» (ключ поиска, как артикул), «Устанавливать» (записать значение из колонки) или «Вычислять» (значение по выражению на встроенном языке).
- Не создавать новых элементов — защита от дублей при обновлении реквизитов.
Перед загрузкой обработка показывает таблицу с результатом поиска, а кнопка контроля заполнения подсвечивает строки с ошибками. Загружайте только после того, как контроль прошёл без замечаний.
При открытии внешней обработки платформа предупреждает о небезопасном действии. Это защита от опасных действий. Открывайте только файлы из надёжного источника и проверяйте их на копии базы.
Своя обработка: чтение .xlsx кодом
Платформа 8.3 читает .xlsx в табличный документ без установленного Excel. Это надёжнее старого способа через COM-объект Excel.Application, который требует Excel на компьютере и падает на сервере. Минимальный пример чтения файла построчно:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
ТекстЦены = ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст;
ТекстЦены = СтрЗаменить(ТекстЦены, Символы.НПП, "");
ТекстЦены = СтрЗаменить(СтрЗаменить(ТекстЦены, " ", ""), ",", ".");
Попытка
Цена = Число(ТекстЦены);
Исключение
Цена = 0;
КонецПопытки;
Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Товар.Пустая() Тогда
Сообщить("Строка " + Формат(НомерСтроки, "ЧГ=0") + ": не найден артикул " + Артикул);
КонецЕсли;
КонецЦикла;
Цикл начинается со второй строки, чтобы пропустить заголовки. Пустые строки пропускаются, неразрывные пробелы и разделители разрядов вычищаются до преобразования в число. Номер строки в сообщении форматируется через Формат(..., "ЧГ=0"), иначе строка 1250 выведется как «1 250».
Для регулярной загрузки от одного поставщика такую обработку стоит оформить как дополнительную обработку и подключить через Администрирование → Печатные формы, отчёты и обработки. Тогда бухгалтер запускает её из нужного документа, не открывая файл .epf каждый раз.