Как перенести таблицу из Excel в базу 1С:Предприятие 8.3
Содержание
Загрузить документ
Excel в 1С:Предприятие 8.3 можно тремя способами: встроенной командой Загрузить в списке справочника или в табличной части документа, внешней обработкой «Загрузка данных из табличного документа» или через правила обмена в формате XML. Для типовых задач — номенклатура, контрагенты, строки накладной — обычно хватает первого способа, и программировать ничего не нужно.
Обработка нужна, когда встроенной команды нет или грузить надо в нестандартный объект: регистр сведений , дополнительный реквизит, табличную часть редкого документа. XML-обмен и собственный код — для больших и регулярных потоков данных.
Подготовка файла Excel перед загрузкой в 1С
Половина ошибок при импорте рождается ещё в Excel. Платформа 8.3 читает файл в табличный документ «как есть»: объединённые ячейки, пробелы и текст вместо чисел она переносит без исправлений.
Приведите файл к виду «одна строка — один объект»:
- 📄 Одна строка заголовков. Шапку из нескольких уровней, логотип и реквизиты организации над таблицей удалите.
- 🧱 Без объединённых ячеек. Объединение ломает нумерацию колонок: значение окажется только в первой ячейке.
- 🔢 Числа — числами. Цена
1 250,00 руб.с пробелом и буквами загрузится как строка или не загрузится вовсе. Нужно1250,00. - 🧮 Формулы — в значения. Скопируйте столбец и вставьте через «Специальную вставку → Значения».
- 🆔 ИНН, КПП, артикулы с ведущими нулями — текстом. Иначе Excel превратит
0274062111в274062111, и поиск контрагента не сработает. - 📅 Даты — в формате даты, а не строкой
12.03без года. - 🧹 Лишние пробелы уберите функцией
СЖПРОБЕЛЫ()во вспомогательном столбце. - 📑 Данные — на первом листе. Остальные листы удобнее удалить или вынести в отдельный файл.
Пример правильно подготовленной таблицы для загрузки номенклатуры:
| Артикул | Наименование | Ед. изм. (код) | Цена | Ставка НДС |
|---|---|---|---|---|
| 0045-12 | Болт М8х40 оцинкованный | 796 | 12,50 | 20% |
| 0045-13 | Гайка М8 оцинкованная | 796 | 3,20 | 20% |
| 0101-01 | Лента упаковочная 48 мм | 796 | 85,00 | 20% |
Каждая колонка — один реквизит, каждая строка — один товар, никаких итогов внизу. Строку «Итого» в конце файла удалите: иначе 1С попробует создать товар с наименованием «Итого».
Сохраните файл в формате .xlsx. Платформа 8.3 открывает его своими средствами, установленный Microsoft Excel на компьютере для этого не нужен.
Заранее решите, по какому полю 1С будет искать уже существующие элементы. Для номенклатуры это обычно артикул, для контрагентов — ИНН. Наименование — худший ключ: «Болт М8» и «Болт М8» с двумя пробелами для программы разные товары.
Встроенная загрузка Excel в справочники и документы
В типовых конфигурациях на Библиотеке стандартных подсистем (БП 3.0, УТ 11, КА 2, ERP) есть общий механизм загрузки данных из файла. Он не требует внешних обработок и прав на их открытие.
Где искать команду:
| Куда грузим | Где команда |
|---|---|
| Номенклатура | список справочника, кнопка Загрузить на командной панели или меню Ещё |
| Контрагенты, другие справочники | список справочника, меню Ещё (если загрузка для справочника предусмотрена) |
| Строки поступления, реализации, счёта | табличная часть «Товары» внутри документа, кнопка Загрузить над таблицей |
Порядок работы одинаковый:
- Нажмите
Загрузить. Откроется форма-шаблон с колонками, которые 1С умеет заполнять. - Скопируйте диапазон из Excel и вставьте его в шаблон через
Ctrl+Vлибо загрузите файл кнопкой выбора файла в этой же форме. - Проверьте, что колонки встали на свои места. Лишние колонки шаблона оставьте пустыми.
- Нажмите
Далее. Программа сопоставит строки с существующими элементами и покажет результат: найдено, будет создано, не сопоставлено. - Несопоставленные строки поправьте вручную — выберите нужный элемент прямо в строке или разрешите создание нового.
- Нажмите кнопку завершения загрузки и проверьте результат в списке.
В табличной части документа механизм ещё и подставляет количество и цену. Накладная на 300 строк от поставщика заполняется за пару минут вместо часа ручного ввода.
При загрузке в документ товары, которых нет в справочнике, могут быть созданы автоматически. Если поставщик называет товар иначе, чем вы, в базе появятся дубли. Перед загрузкой сопоставьте спорные позиции вручную.
Обработка «Загрузка данных из табличного документа»
Когда встроенной команды нет, используют универсальную внешнюю обработку
загрузки из табличного документа. Её версия для управляемых форм распространяется с дисками ИТС. Файл обработки имеет расширение .epf.
Как открыть обработку
- Запустите 1С в режиме «Предприятие» под пользователем с полными правами.
- Откройте файл через
Главное меню → Файл → Открыть. - Платформа покажет предупреждение о безопасности. Открывайте только обработку из надёжного источника и подтвердите запуск.
Если пункт открытия недоступен, у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор базы в настройках групп доступа.
Чтобы обработка была под рукой у всех, подключите её как дополнительную: Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Тогда права на открытие файлов пользователям не понадобятся.
Что выбрать в шапке
- Режим загрузки: в справочник, в табличную часть или в регистр сведений.
- Вид объекта: конкретный справочник, документ или регистр.
- Первая строка данных: номер строки, с которой начинаются данные. При одной строке заголовков ставят
2.
Дальше таблицу из Excel открывают в обработке через файл или вставляют в её табличный документ копированием. На вкладке настроек появляется список реквизитов выбранного объекта — его и нужно связать с колонками файла.
Сопоставление колонок и типов данных при импорте
Для каждого реквизита задают три вещи: загружать ли его, откуда брать значение и как искать ссылку.
Номер колонки
Отметьте флажком реквизиты, которые нужно заполнить, и укажите номер колонки в файле. Колонки считаются слева направо: A — 1, B — 2, F — 6. Один и тот же номер можно указать для двух реквизитов, например наименование и полное наименование номенклатуры.
Поиск по ссылочным полям
Реквизиты-ссылки (единица измерения, вид номенклатуры, ставка НДС, группа) нельзя загрузить текстом. Обработка ищет по значению из ячейки элемент в связанном справочнике. Для каждого такого реквизита выберите поле поиска: наименование, код или другой реквизит.
| Реквизит | Чем лучше искать | Почему |
|---|---|---|
| Единица измерения | код (796 для штуки) | наименования пишут по-разному: «шт», «шт.», «штука» |
| Контрагент | ИНН | уникален, не зависит от кавычек и формы собственности |
| Номенклатура | артикул | наименования часто дублируются |
| Группа справочника | наименование | групп немного, их легко проверить |
Ключевой реквизит для справочника
При загрузке в справочник задайте поле, по которому обработка решает, обновить существующий элемент или создать новый. Без ключа каждый запуск создаёт копии всех строк.
Значение по умолчанию
Если колонки в файле нет, а реквизит обязателен, задайте постоянное значение. Например, всем 500 загружаемым позициям — вид номенклатуры «Товар» и ставку НДС из шапки.
Готовую настройку сохраните в файл. В следующий раз файл того же поставщика загружается без повторного сопоставления.
Анализ протокола загрузки и разбор ошибок
Перед записью запустите контроль заполнения. Обработка проверит каждую ячейку и подсветит строки, которые не удастся загрузить. Только после чистого контроля нажимайте загрузку.
Перед первой массовой загрузкой сделайте резервную копию базы — откатить тысячи созданных элементов вручную тяжело. Ещё безопаснее сначала прогнать файл на копии базы.
После загрузки проверьте результат выборочно: откройте 3–5 элементов из начала, середины и конца файла. Для номенклатуры сверьте число новых элементов с числом строк файла. Проще всего грузить в отдельную новую группу: тогда количество элементов в ней сразу видно, а неудачную загрузку легко найти и пометить на удаление целиком.
Универсальный обмен данными в формате XML
Обработка «Универсальный обмен данными в формате XML» входит в типовые конфигурации на БСП. Она не читает Excel напрямую — она загружает XML-файл по правилам обмена. Эти правила создают в конфигурации «Конвертация данных».
Когда такой путь оправдан:
- 🔁 данные приходят из другой учётной системы, и Excel — лишь промежуточная выгрузка;
- 🧩 нужно загрузить связанные объекты разом: контрагентов, договоры и документы с проводками;
- 📦 объём — десятки тысяч строк, и важна повторяемость без ручного сопоставления.
Схема работы: таблицу Excel сначала загружают в промежуточную базу или конвертируют в XML внешним скриптом, затем в рабочей базе открывают обработку обмена и указывают файл данных. Обработка доступна через Функции для технического специалиста (команда включается в Сервис и настройки → Параметры).
Правила обмена пишет специалист, знающий обе конфигурации. Чужие правила от другого релиза могут записать данные не в те реквизиты. Первый прогон — только на копии базы.
Для разовой загрузки прайса или накладной этот способ избыточен. Он окупается при переносе данных между базами и регулярных выгрузках.
Как автоматизировать регулярную загрузку файлов Excel
Если файл одного формата приходит каждый день (прайс поставщика, остатки склада, заявки с сайта), сопоставлять колонки руками нет смысла. Варианты от простого к сложному:
| Способ | Когда подходит | Риски |
|---|---|---|
| Сохранённая настройка обработки | 1–2 раза в неделю, формат стабилен | ручной запуск, зависит от человека |
| Дополнительная обработка с кнопкой | файл грузит бухгалтер, нужна одна кнопка | при смене колонок у поставщика нужна доработка |
| Регламентное задание | ежедневно, файл кладут в общую папку | ошибки видны только в журнале регистрации |
Для регламентного задания пишут небольшую процедуру, которая читает файл в табличный документ и обходит строки. Пример чтения:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Стр = Формат(НомерСтроки, "ЧГ=0");
Артикул = СокрЛП(ТабДок.Область("R" + Стр + "C1").Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Наименование = СокрЛП(ТабДок.Область("R" + Стр + "C2").Текст);
ЦенаТекст = СтрЗаменить(ТабДок.Область("R" + Стр + "C3").Текст, " ", "");
// поиск номенклатуры по артикулу, запись цены
КонецЦикла;
Здесь строка 1 — заголовки, поэтому цикл начинается со второй. Пустые строки пропускаются, пробелы из цены вырезаются до преобразования в число.
На что смотреть при автоматизации:
- В клиент-серверном варианте регламентное задание выполняется на сервере 1С. Файл должен лежать в папке, доступной пользователю, под которым работает служба сервера 1С.
- Обработанный файл переносите в архивную папку, иначе он загрузится повторно.
- Ошибки пишите в журнал регистрации с понятным текстом: номер строки и значение, которое не нашлось.
- Проверяйте заголовки первой строки. Если поставщик поменял порядок колонок, задание должно остановиться, а не записать цену в количество.
Для файлов от разных поставщиков удобнее хранить номера колонок в настройках, например в регистре сведений, а не в коде. Новый формат тогда подключается без программиста.