Как перенести таблицу Excel в справочники и документы 1С 8.3
Содержание
Чтобы выгрузить в 1С данные из Excel, не нужны программисты: в типовых конфигурациях на 8.3 есть встроенная загрузка. В списке номенклатуры или контрагентов откройте Ещё → Загрузить, вставьте таблицу из Excel, сопоставьте колонки и нажмите «Далее». Для товаров в накладной есть такая же команда над табличной частью.
Если встроенной загрузки мало (нужны регистры, нестандартные реквизиты, ежедневный импорт), берут универсальную обработку или пишут свою. Инструкция по импорту идёт от простого способа к сложному: сначала подготовка файла, затем встроенная загрузка, обработки и автоматизация.
Как подготовить файл Excel перед импортом в 1С
Большинство сбоев загрузки заложено в самом файле: лишние пробелы, текст вместо чисел, объединённые ячейки. Чистая таблица — это меньше дублей в базе.
Структура таблицы
- 📌 Одна строка заголовков — сразу над данными. Шапку с логотипом, реквизитами и датой удалите.
- 📌 Одна строка — одна позиция. Без промежуточных итогов, пустых строк и строк-разделителей вроде «Канцтовары:».
- 📌 Без объединённых ячеек. Объединение ломает адресацию: 1С видит значение только в первой ячейке.
- 📌 Одна колонка — один реквизит. «Артикул + название» в одной ячейке разделите через
Данные → Текст по столбцам. - 📌 Один лист. Загрузчик читает первый лист или тот, что вы выберете. Лишние листы лучше убрать.
Форматы значений
| Что в колонке | Как подготовить | Чем грозит небрежность |
|---|---|---|
| ИНН, КПП, ОГРН, коды | Формат «Текстовый» | ИНН из 10 цифр с ведущим нулём превратится в 9 цифр |
| Артикулы | Текст, без пробелов по краям | А-101 и А-101 станут разными товарами |
| Цены, количество | Число, без символа валюты и пробелов-разделителей | Сумма загрузится нулём или текстом |
| Даты | Формат даты, не текст | 01.02 превратится в 1 февраля текущего года или в число |
| Единицы измерения | Как в классификаторе 1С: «шт», «кг» | Создадутся новые единицы-дубли |
| Ставка НДС | Единообразно: «20%», «Без НДС» | Строки останутся без ставки |
Лишние пробелы убирает формула =СЖПРОБЕЛЫ(A2). Неразрывные пробелы из выгрузок банков и маркетплейсов — =ПОДСТАВИТЬ(A2;СИМВОЛ(160);""). После формулы скопируйте колонку и вставьте как значения.
Формат файла
Платформа 8.3 сама читает xlsx, xls и ods и открывает их как табличный документ: Главное меню → Файл → Открыть. Excel на компьютере для этого не нужен. Если файл не открывается, пересохраните его в Excel как «Книга Excel (.xlsx)» и закройте перед загрузкой: открытый файл бывает заблокирован.
Встроенная загрузка из Excel в справочники и документы 1С
В конфигурациях на Библиотеке стандартных подсистем (БП 3.0, УТ 11, КА 2, ERP, УНФ) работает общий механизм «Загрузка данных из файла». Он вызывается из списков справочников и из табличных частей документов.
Где находится команда
| Куда загружаем | БП 3.0 | УТ 11 |
|---|---|---|
| Номенклатура | Справочники → Товары и услуги → Номенклатура → Ещё → Загрузить | НСИ и администрирование → НСИ → Номенклатура → Ещё → Загрузить |
| Контрагенты | Справочники → Покупки и продажи → Контрагенты → Ещё → Загрузить | НСИ и администрирование → НСИ → Партнёры / Контрагенты → Ещё |
| Товары в поступлении | Документ поступления → закладка «Товары» → кнопка «Загрузить» | Документ приобретения → табличная часть «Товары» → Ещё |
| Товары в реализации | Документ реализации → закладка «Товары» → кнопка «Загрузить» | Документ реализации → табличная часть → Ещё |
В отдельных релизах команда стоит прямо на панели списка, а не в «Ещё». Если её нет ни там, ни там — проверьте права пользователя: загрузку видят те, кому разрешено добавлять элементы справочника.
Порядок действий для справочника
- Откройте список номенклатуры и выберите
Ещё → Загрузить. - Откроется форма с пустой таблицей. Её колонки — реквизиты справочника: наименование, артикул, единица, ставка НДС, вид номенклатуры.
- Скопируйте диапазон в Excel (без строки заголовков или с ней — зависит от формы, смотрите подсказку над таблицей) и вставьте в таблицу 1С через
Ctrl+V. - Если колонки в Excel идут в другом порядке, переставьте их или настройте соответствие (об этом в следующем разделе).
- Нажмите «Далее». Программа сравнит строки с тем, что уже есть в базе.
- Просмотрите результат: какие позиции найдены, какие будут созданы, где есть неоднозначность. Исправьте спорные строки и подтвердите загрузку.
Вместо копирования можно загрузить сам файл: в форме есть команда выбора файла с диска. Копирование удобнее, когда нужна часть строк.
Загрузка товаров в документ
В накладной поступления порядок короче: «Загрузить» над табличной частью → вставка таблицы → сопоставление номенклатуры → перенос в документ. Цены и суммы пересчитываются по правилам документа, ставка НДС берётся из карточки товара, если в файле её нет.
Товары, которых нет в справочнике, при загрузке в документ не появятся сами. Программа предложит выбрать позицию вручную или пропустить строку. Сначала загрузите номенклатуру, затем документы.
Сопоставление колонок Excel с реквизитами 1С
Сопоставление решает две задачи: какая колонка файла ложится в какой реквизит и по какому полю искать существующие элементы.
Колонки → реквизиты
Заголовки в файле не обязаны совпадать с именами реквизитов. Важно только, чтобы в каждой колонке лежал один тип данных.
Поле поиска — главная настройка
От поля поиска зависит, обновит загрузка старые карточки или наплодит дублей.
- 🔑 Артикул — лучший выбор для товаров, если артикулы в базе заполнены и уникальны.
- 🔑 ИНН (+КПП) — для контрагентов. ИНН без КПП найдёт головную организацию, но не различит обособленные подразделения.
- 🔑 Наименование — только для небольших справочников. «Бумага А4 SvetoCopy» и «Бумага А4 Svetocopy» для 1С разные.
- 🔑 Штрихкод — для розницы и складов, где штрихкоды заведены в базе.
Перед большой загрузкой выгрузите текущий справочник в Excel (Ещё → Вывести список, затем сохранить) и сверьте поле поиска формулой ВПР. Так вы заранее увидите, сколько строк найдётся, а сколько создастся заново.
Значения ссылочных реквизитов
Единица измерения, ставка НДС, вид номенклатуры — это ссылки на другие справочники. Загрузчик ищет их по представлению: в файле «шт» — в базе должна быть единица с таким же наименованием. Если строки 1С не узнала, она оставит поле пустым или подставит значение по умолчанию. Значения по умолчанию для пустых колонок можно задать прямо в форме загрузки.
Универсальная обработка «Загрузка данных из табличного документа»
Когда встроенной команды нет или нужно загрузить то, что она не умеет, используют внешнюю обработку ЗагрузкаДанныхИзТабличногоДокумента.epf. Она распространяется на дисках ИТС среди стандартных обработок, есть версия для управляемых форм.
Что умеет
- 📂 загружать в справочники, табличные части документов и регистры сведений;
- 📂 читать данные из файла
xls,xlsx,mxlили из вставленной таблицы; - 📂 для каждого реквизита задавать режим: искать в базе, устанавливать константу или вычислять выражением;
- 📂 сохранять настройки в файл, чтобы не настраивать заново каждый раз.
Как запустить
- Сделайте резервную копию базы или загрузите сначала в копию.
- Откройте обработку:
Главное меню → Файл → Открытьи выберите.epf. Программа может показать предупреждение безопасности — для своих проверенных файлов его подтверждают. - Выберите режим загрузки (справочник, табличная часть, регистр) и конкретный объект.
- На закладке с данными откройте файл или вставьте таблицу. Укажите номер первой строки с данными.
- На закладке настроек для каждого реквизита отметьте, загружать ли его, номер колонки и поле поиска.
- Запустите контроль заполнения: обработка подсветит строки, где не нашлись ссылки.
- Нажмите «Загрузить».
Права на открытие внешних обработок дают не всем. Если пункт открытия файла недоступен или обработка не запускается, попросите администратора базы добавить её в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
Автоматизация регулярной загрузки из Excel через внешнюю обработку
Если файл приходит каждый день (прайс поставщика, остатки со склада, заказы из маркетплейса), ручная загрузка превращается в рутину. Её автоматизируют своей обработкой.
Минимальный код чтения файла
Платформа читает Excel в объект ТабличныйДокумент, дальше значения берутся по ячейкам. Пример: обновление цен поставщика в регистре по артикулу. Колонка 1 — артикул, колонка 2 — цена, данные со второй строки.
&НаСервере
Процедура ЗагрузитьПрайс(ИмяФайла)
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
ЦенаТекстом = ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст;
ЦенаТекстом = СтрЗаменить(СтрЗаменить(ЦенаТекстом, " ", ""), Символы.НПП, "");
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Номенклатура.Пустая() Тогда
Сообщить(СтрШаблон("Строка %1: артикул %2 не найден", Формат(НомерСтроки, "ЧГ=0"), Артикул));
Продолжить;
КонецЕсли;
Попытка
Цена = Число(ЦенаТекстом);
Исключение
Сообщить(СтрШаблон("Строка %1: цена «%2» не число", Формат(НомерСтроки, "ЧГ=0"), ЦенаТекстом));
Продолжить;
КонецПопытки;
// здесь запись цены в регистр или документ установки цен
// по правилам вашей конфигурации
КонецЦикла;
КонецПроцедуры
Код не останавливается на первой плохой строке: он пишет сообщение с номером строки и идёт дальше. Для ежедневного импорта это важнее скорости.
Запись цен в БП 3.0 и УТ 11 устроена по-разному (разные документы и регистры). Последний шаг пишите под свою конфигурацию через документ установки цен, а не прямой записью в регистр: так останется история изменений.
Как запускать без участия человека
- ⏱ Дополнительная обработка с расписанием. В БСП-конфигурациях обработку регистрируют в
Дополнительные отчеты и обработкии в карточке команды задают расписание. Нужна серверная команда, а файл должен лежать в папке, доступной серверу 1С. - ⏱ Планировщик Windows + параметр запуска. Задача запускает
1cv8.exe ENTERPRISE /F"D:\Bases\Trade" /N"Robot" /P"..." /Execute"D:\Load\price.epf". Обработка при открытии загружает файл и закрывает сеанс. Для этого заведите отдельного пользователя с минимальными правами. - ⏱ Расширение конфигурации с регламентным заданием — самый надёжный вариант для клиент-серверной базы, не теряется при обновлении типовой.
В файловой базе фоновые и регламентные задания выполняются, только пока в базе работает хотя бы один клиентский сеанс. Для гарантированного ночного импорта в файловой базе используйте планировщик Windows.
Ошибки при импорте из Excel и что с ними делать
Если загрузка прошла с ошибками
Не загружайте файл повторно поверх. Сначала разберитесь, что уже попало в базу:
- Отберите список справочника по дате создания или автору — так видны новые элементы.
- Лишнее пометьте на удаление. Удаление помеченных выполняется отдельно и проверяет ссылки.
- Если загрузка шла в документы — отмените проведение и удалите созданные документы.
- Исправьте файл и повторите на нескольких строках, прежде чем грузить всё.
Для массовой загрузки в рабочую базу сделайте резервную копию заранее. Откат копии быстрее, чем ручная чистка тысячи дублей.
Какой способ импорта выбрать
| Способ | Когда подходит | Ограничения и риски |
|---|---|---|
| Встроенная «Загрузка данных из файла» | Номенклатура, контрагенты, товары в документах; разовая загрузка до нескольких тысяч строк | Только объекты, где есть команда; набор реквизитов ограничен формой |
| Универсальная обработка из ИТС | Регистры сведений, нестандартные реквизиты, сложные правила поиска | Нужны права на внешние обработки; легко ошибиться с режимом поиска |
| Своя внешняя обработка | Ежедневный файл одного формата, своя логика проверок | Нужен программист; при смене формата файла код правят |
| Расширение с регламентным заданием | Регулярный импорт в клиент-серверной базе без участия человека | Самая дорогая разработка; нужен сервер и доступная ему папка |
| Ручной ввод | До 20–30 строк | Медленно и с опечатками |