Импорт таблицы Excel в 1С: справочники, документы и регулярная загрузка
Содержание
Загрузить Excel
в 1С 8.3 можно тремя способами. В типовых конфигурациях на БСП (Бухгалтерия 3.0, УТ 11, ERP) номенклатуру и строки документов загружают встроенной командой «Загрузить» прямо из списка или табличной части. Для нестандартных случаев берут внешнюю обработку «Загрузка данных из табличного документа». А если файл приходит каждую неделю, загрузку автоматизируют кодом на встроенном языке через ТабличныйДокумент.Прочитать().
Какой бы способ вы ни выбрали, успех на 80% решает подготовка файла. Кривой Excel даёт дубли в справочниках, пустые реквизиты и суммы, разъехавшиеся на копейки. Поэтому начнём с таблицы, а потом перейдём к самой загрузке данных в 1С.
Подготовка таблицы Excel перед импортом в 1С
1С читает файл как сетку ячеек. Она не понимает, где у вас «шапка для начальника», а где данные. Приведите таблицу к простому виду.
Структура листа:
- 📄 Одна строка заголовков, данные сразу под ней. Без пустых строк сверху, без итогов внизу.
- 🧱 Никаких объединённых ячеек. Объединение ломает нумерацию колонок, и данные съезжают.
- 📑 Один лист — один вид данных. Если в книге несколько листов, загрузка обычно берёт первый. Нужный лист перенесите в начало или сохраните отдельным файлом.
- 🔍 Уберите фильтры, скрытые строки и колонки. Скрытая строка всё равно загрузится.
Значения в ячейках:
- 🔢 Числа — числами. Формат «1 200,00» с неразрывным пробелом Excel часто хранит как текст. Проверка простая: число прижато к правому краю ячейки, текст — к левому.
- 🧮 Формулы замените значениями:
Копировать → Специальная вставка → Значения. Ссылки на другие книги при чтении превратятся в ошибки. - 🏷️ ИНН, КПП, артикулы, штрихкоды — в текстовом формате. Иначе Excel срежет ведущий ноль, и ИНН
0274...станет девятизначным. Штрихкод из 13 цифр превратится в4,6E+12. - 📅 Даты — в одном формате
ДД.ММ.ГГГГ, без слов «г.» и времени. - ✂️ Уберите пробелы в начале и конце строк. Для Excel это функция
СЖПРОБЕЛЫ(). Для 1С «Гвоздь » и «Гвоздь» — два разных товара. - 📏 Единицы измерения и ставки НДС пишите так, как они названы в справочниках 1С: «шт», «кг», «20%», «Без НДС».
Лучшая колонка для поиска — артикул или код, а не наименование. Наименования у поставщика и у вас почти никогда не совпадают символ в символ. Если артикулов нет, заведите их в 1С до загрузки, иначе вместо сопоставления получите новые элементы.
Формат файла. Платформа 8.3 читает .xlsx и .xls напрямую, плюс собственный формат .mxl. CSV тоже открывается, но с ним чаще бывают проблемы с кодировкой и разделителем. Если сомневаетесь, сохраните файл как «Книга Excel (*.xlsx)».
Проверьте файл заранее: откройте его в 1С через Главное меню → Файл → Открыть. Он откроется как табличный документ. Если там всё читается ровно — колонки на месте, числа без мусора, — загрузка пройдёт без сюрпризов.
Встроенная загрузка данных из Excel в 1С 8.3
В Бухгалтерии 3.0 и других конфигурациях на БСП есть помощник загрузки данных из файла. Внешние обработки для него не нужны, права администратора тоже.
Загрузка номенклатуры в справочник
- Откройте
Справочники → Товары и услуги → Номенклатура. - Встаньте в группу, куда должны попасть новые позиции.
- Нажмите «Загрузить» в командной панели списка. Если кнопки не видно, она в меню «Ещё».
- Помощник покажет пустую таблицу с колонками-реквизитами справочника. Скопируйте данные из Excel (
Ctrl+C) и вставьте в первую ячейку таблицы (Ctrl+V). Либо загрузите файл кнопкой загрузки из файла в этом же окне. - Нажмите «Далее». Программа сопоставит строки с существующими элементами и покажет статус каждой: найдена, будет создана, есть неоднозначность.
- Разберите неоднозначные строки вручную, выбрав нужный элемент.
- Нажмите «Загрузить данные». В конце помощник покажет отчёт: сколько создано, сколько обновлено, сколько пропущено.
Заголовки колонок помощник подбирает сам, если они совпадают с названиями реквизитов: «Наименование», «Артикул», «Единица». Остальные колонки сопоставьте вручную в шапке таблицы.
Загрузка строк в документ
Так же загружаются табличные части документов: поступление товаров, реализация, заказ поставщику , инвентаризация. Откройте документ, перейдите на вкладку «Товары» и нажмите «Загрузить» над табличной частью. Порядок тот же: вставили данные, сопоставили номенклатуру, перенесли строки.
Это главный приём, когда поставщик присылает счёт в Excel на 300 позиций. Ничего не набираете руками: вставили, проверили сопоставление, провели.
После загрузки строк сверьте итог документа с итогом файла поставщика. Расхождение в несколько копеек обычно значит, что в Excel были цены с тремя-четырьмя знаками после запятой, а 1С округлила их до двух.
Обработка «Загрузка данных из табличного документа»
Встроенного помощника хватает не всегда. Он работает только там, где разработчики конфигурации его подключили. А загрузить нужно бывает что угодно: контрагентов с договорами, цены в регистр сведений , адреса, характеристики.
Для таких задач фирма 1С распространяла через ИТС универсальную внешнюю обработку
«Загрузка данных из табличного документа» (файл ЗагрузкаДанныхИзТабличногоДокумента.epf). Она загружает данные в три вида объектов:
| Режим | Куда грузит | Пример задачи |
|---|---|---|
| Справочник | Элементы справочника | Контрагенты, сотрудники, склады |
| Табличная часть | Строки документа или элемента | Товары в документе, состав комплекта |
| Регистр сведений | Записи регистра | Цены, курсы, штрихкоды |
Для Бухгалтерии 3.0 и других конфигураций в интерфейсе «Такси» берите вариант обработки на управляемых формах. Версия на обычных формах откроется только в толстом клиенте.
Как запустить обработку
Есть два пути:
- Разово:
Главное меню → Файл → Открыть, выбрать файл.epf. Нужно право на интерактивное открытие внешних обработок. Обычно оно есть только у роли «Полные права». - Постоянно:
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Включите флажок использования, добавьте обработку из файла и назначьте, кому она доступна.
При открытии платформа покажет предупреждение о безопасности: внешний файл может выполнять любой код. Запускайте только обработки из надёжного источника. Скачанная с форума «улучшенная» версия — плохая идея для рабочей базы.
Перед первой загрузкой в рабочую базу сделайте резервную копию или обкатайте настройки на копии базы. Обработка пишет данные сразу, кнопки «отменить всё» в ней нет.
Сопоставление колонок и типов данных при загрузке
Это самая тонкая часть импорта. Универсальная обработка показывает список реквизитов объекта, и для каждого вы задаёте, откуда брать значение.
Режимы для каждого реквизита
- Искать — значение берётся из колонки файла. Если реквизит ссылочный (единица, контрагент, вид номенклатуры), 1С ищет в справочнике элемент с таким наименованием или кодом.
- Устанавливать — одно фиксированное значение для всех строк. Например, вид номенклатуры «Товары» или ставка НДС «20%».
- Вычислять — выражение на встроенном языке. Пригодится, чтобы склеить две колонки или убрать лишние символы.
Для каждого реквизита в режиме «Искать» укажите номер колонки. Нумерация идёт с 1 и считается по файлу, а не по порядку реквизитов. Если в Excel перед артикулом есть пустая колонка, её тоже нужно учесть.
Поле поиска: от него зависят дубли
Флажком «Поле поиска» отмечают реквизит, по которому обработка решает: обновить существующий элемент или создать новый.
| Поле поиска | Что получится |
|---|---|
| Артикул или код | Надёжно: совпадения однозначны |
| ИНН (для контрагентов) | Надёжно, если у всех заполнен и нет обособленных подразделений |
| Наименование | Рискованно: любой лишний пробел создаёт дубль |
| Ничего не отмечено | Каждая строка создаёт новый элемент |
Для контрагентов с филиалами ищите по паре ИНН и КПП: один ИНН у головной организации и всех её подразделений.
Типы данных
- Число. Если в колонке есть текст или пробелы-разделители, 1С запишет ноль. Вычистите колонку в Excel.
- Дата. Ячейки должны быть датой в Excel, а не строкой «15 марта».
- Булево. Обработка ждёт «Да/Нет» или «Истина/Ложь». Значения «+», «есть», «1» замените заранее.
- Ссылка. Значение должно совпадать с наименованием или кодом элемента в справочнике. «шт.» с точкой и «шт» без неё — разные значения.
- Перечисление. Пишите представление значения так, как его видно в 1С.
Настроенное сопоставление сохраните в файл через команду сохранения настроек. В следующий раз загрузите настройки и не настраивайте колонки заново.
Перед загрузкой запустите контроль заполнения. Обработка подсветит строки, где не нашлось ссылочное значение или не распозналось число. Исправьте их в файле, а не в 1С после загрузки: так проще и быстрее.
Ctrl+H и задайте числовой формат. Проверьте разделитель дробной части: нужна запятая.ТЕКСТ().Регулярная загрузка из Excel: автоматизация
Если прайс поставщика или выгрузка с маркетплейса приходит каждый день, ручная настройка помощника съедает время. Здесь два уровня автоматизации.
Первый уровень — сохранённые настройки. В универсальной обработке настройки колонок хранятся в файле. Сотрудник открывает обработку, загружает настройку, выбирает новый Excel и жмёт «Загрузить». Пять минут вместо получаса.
Второй уровень — своя обработка с кодом. Программист пишет внешнюю обработку под конкретный формат файла. Табличный документ платформы 8.3 сам читает .xlsx, без Excel на компьютере и без COM-объектов. Пример загрузки номенклатуры по артикулу:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
// строка 1 — заголовки, данные со второй
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
Наименование = СокрЛП(ТабДок.Область(НомерСтроки, 2, НомерСтроки, 2).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Ссылка.Пустая() Тогда
Объект = Справочники.Номенклатура.СоздатьЭлемент();
Объект.Артикул = Артикул;
Иначе
Объект = Ссылка.ПолучитьОбъект();
КонецЕсли;
Объект.Наименование = Наименование;
Объект.Записать();
КонецЦикла;
В реальной базе к этому коду добавляют заполнение обязательных реквизитов. В Бухгалтерии 3.0 у новой номенклатуры должны быть вид номенклатуры и единица измерения, иначе элемент не запишется. Ещё стоит вести журнал: какие строки пропущены и почему.
Загрузка по расписанию. Обработку регистрируют как дополнительную в разделе Администрирование → Печатные формы, отчеты и обработки и настраивают для её команды расписание. Тогда загрузка идёт на сервере без участия пользователя.
При запуске на сервере файл читает служба 1С, а не пользователь. Путь C:\Users\Иванов\Desktop\прайс.xlsx сервер не увидит. Кладите файл в сетевую папку и дайте доступ учётной записи, от которой работает сервер 1С (по умолчанию USR1CV8).
Когда Excel — не лучший путь
Excel удобен для разовых и небольших загрузок. Но для некоторых данных есть штатные механизмы, и они надёжнее:
| Данные | Чем загружать вместо Excel |
|---|---|
| Банковская выписка | Обмен с клиент-банком в формате 1CClientBankExchange или прямой обмен с банком |
| Документы от поставщика | ЭДО: накладная и счёт-фактура приходят в 1С уже со строками |
| Данные из другой базы 1С | Синхронизация данных или конвертация, а не выгрузка через Excel |
| Тысячи строк ежедневно | Обмен через HTTP-сервис или API, а не файлы |
Через Excel эти данные загрузить тоже можно. Но вы теряете связи между объектами и тратите время на сопоставление, которое обмен делает сам.