Импорт таблицы Excel в базу 1С 8.3: от подготовки файла до проверки результата
Содержание
Чтобы загрузить xlsx в 1С 8.3, откройте нужный список или документ (например, справочник «Номенклатура» или табличную часть поступления), нажмите команду Загрузить и укажите файл либо вставьте данные из Excel через буфер обмена. Дальше 1С сама предложит сопоставить колонки файла с реквизитами и покажет, какие строки найдены в базе, а какие нет.
Если встроенной команды в нужном месте нет, используют внешнюю обработку загрузки из табличного документа или пишут свою на встроенном языке. Платформа 8.3 читает форматы xlsx, xls, ods и mxl без установленного Excel.
Что сделать с файлом Excel до загрузки
Половина проблем при импорте возникает не в 1С, а в самом файле. Пять минут на чистку таблицы избавят от разбора сотни «не найденных» строк.
📌 Структура листа:
- одна строка заголовков в самом верху, без объединённых ячеек над ней;
- одна строка — один объект (товар, контрагент, позиция документа);
- никаких промежуточных итогов, пустых строк-разделителей и подписей внизу;
- в книге оставьте один лист с данными — так меньше шансов, что программа прочитает не тот.
📌 Значения в ячейках:
- формулы замените значениями:
Копировать → Специальная вставка → Значения; - числа должны быть числами, а не текстом. Признак текста — зелёный треугольник в углу ячейки или выравнивание по левому краю;
- уберите неразрывные пробелы в суммах вида
1 250,00— частая причина ошибки преобразования; - артикулы и коды с ведущими нулями (
00125) храните как текст, иначе Excel превратит их в125; - даты приведите к одному формату
ДД.ММ.ГГГГ.
📌 Ключ для поиска. Решите заранее, по какому полю 1С будет искать существующие объекты: артикул, код, ИНН, штрихкод или наименование. Наименование — самый ненадёжный вариант: лишний пробел или кавычка дают новый дубль.
Добавьте в Excel служебную колонку с формулой =СЖПРОБЕЛЫ(A2) для наименований и артикулов, а потом вставьте результат значениями на место исходной колонки. Двойные и концевые пробелы — главный источник дублей при загрузке.
Встроенная загрузка xlsx в 1С через команду «Загрузить»
В типовых конфигурациях на БСП (Бухгалтерия 3.0, Управление торговлей 11, Комплексная автоматизация, ERP) есть универсальный механизм «Загрузка данных из файла». Он открывается из списков справочников и из табличных частей документов.
Где найти команду
| Куда загружаем | Где команда |
|---|---|
| Справочник «Номенклатура» | Справочники → Товары и услуги → Номенклатура, кнопка Загрузить над списком |
| Товары в документ поступления или реализации | Табличная часть «Товары» документа, кнопка Загрузить над таблицей |
| Справочник «Контрагенты» | Список контрагентов, меню Ещё |
Путь меню выше — для Бухгалтерии 3.0. В УТ 11 и КА справочник номенклатуры находится в разделе НСИ и администрирование, но сама команда и форма загрузки те же.
Порядок работы
- Нажмите
Загрузить. Откроется форма с пустой таблицей, колонки которой соответствуют реквизитам объекта. - Выберите способ: загрузить из файла (команда выбора файла в форме) или скопировать ячейки из Excel и вставить в таблицу формы сочетанием
Ctrl+V. - Укажите, какая колонка файла какому реквизиту соответствует. Если заголовки в Excel совпадают с названиями реквизитов, сопоставление часто подставляется само.
- Нажмите
Далее. Программа ищет каждую строку в базе по выбранному ключу и показывает результат сопоставления. - Просмотрите строки, которые не нашлись. Для справочников обычно можно выбрать: создать новые элементы или пропустить. Для документа ненайденную номенклатуру выбирают вручную прямо в таблице.
- Завершите загрузку. Элементы справочника запишутся в базу, строки документа появятся в табличной части — документ останется незаписанным, пока вы его не проведёте.
При загрузке справочника с флажком «создавать новые» сначала прогоните 5–10 строк, проверьте, как заполнились реквизиты, и только потом загружайте весь файл. Удалять сотни ошибочных элементов из базы намного дольше, чем повторить пробу.
Копирование ячеек из Excel через буфер обмена
Самый быстрый способ для разовой задачи — 30 строк накладной от поставщика или список новых позиций. Файл даже не нужно сохранять.
Куда вставка работает
- В форму «Загрузка данных из файла». Выделите в Excel диапазон без заголовков, нажмите
Ctrl+C, в форме загрузки встаньте в первую ячейку таблицы и нажмитеCtrl+V. Колонки лягут в том порядке, в каком вы их выделили, поэтому заранее расставьте их в Excel под порядок колонок формы. - В одну ячейку 1С. Обычная вставка значения в поле: наименование, ИНН, сумма.
Куда вставка не работает
Прямо в табличную часть документа диапазон из Excel не вставится: 1С примет только значение одной ячейки, а не таблицу. Для нескольких строк используйте кнопку Загрузить у этой табличной части — она и есть «вставка с сопоставлением».
Если колонок в Excel больше, чем в форме, скройте лишние или скопируйте нужные на отдельный лист. Вставка «через одну колонку» сдвигает данные, и цена попадает в количество.
Внешняя обработка загрузки из табличного документа
Когда команды Загрузить нет — в старых релизах, отраслевых и самописных конфигурациях — выручает внешняя обработка «Загрузка данных из табличного документа». Её файл ЗагрузкаДанныхИзТабличногоДокумента.epf распространяется для пользователей с подпиской на поддержку. Обработка умеет загружать в справочники, табличные части документов и регистры сведений.
Как открыть
Есть два варианта:
- Разово:
Главное меню (☰) → Файл → Открыть, выбрать файл.epf. Нужно право на интерактивное открытие внешних обработок; без него программа выдаст сообщение о нарушении прав доступа. - Постоянно: зарегистрировать в разделе
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки(функциональность включается флажком в том же разделе). Тогда обработка доступна пользователям без права открывать произвольные файлы.
Как пользоваться
- Выберите режим: загрузка в справочник, в табличную часть или в регистр сведений.
- Укажите объект-приёмник — например, справочник «Номенклатура» или документ и его табличную часть.
- Откройте файл xlsx или вставьте данные на вкладку с табличным документом.
- В настройке реквизитов отметьте, какие загружать, задайте номер колонки для каждого и выберите поле поиска.
- Для реквизитов, которых нет в файле, задайте значение по умолчанию — например, одну ставку НДС для всех строк.
- Запустите контроль заполнения. Ошибочные ячейки подсвечиваются, а в примечании видно, почему значение не подошло.
- Загрузите данные.
Внешняя обработка пишет данные в базу напрямую, в обход части проверок типовой формы. Перед первой загрузкой сделайте резервную копию базы: в файловом варианте — выгрузку .dt через Конфигуратор или копию каталога базы при закрытой программе, в клиент-серверном — средствами СУБД.
Сравнение способов
| Способ | Когда подходит | Риски |
|---|---|---|
Команда Загрузить в типовой | Справочники и табличные части, где команда есть | Минимальные: работают проверки конфигурации |
| Вставка через буфер | Разовая загрузка до нескольких сотен строк | Сдвиг колонок при неаккуратном выделении |
| Внешняя обработка | Нет встроенной команды, регистры сведений, нетиповые объекты | Запись в обход проверок, нужны права |
| Своя обработка на встроенном языке | Регулярная загрузка файлов одного формата | Нужен программист, поддержка при обновлении |
Ошибки при импорте Excel в 1С и что с ними делать
Отдельно про даты. Если в Excel дата хранится как число (например, 45567), а в 1С приходит пустое значение, задайте колонке в Excel формат «Дата» и пересохраните файл. Обратная ситуация — дата текстом с точками в американском порядке — исправляется только в самом файле.
Проблемную загрузку удобно разбирать на файле из 3 строк: одна заведомо правильная, одна с подозрительным значением, одна с новым элементом. Так сразу видно, на какой колонке ломается сопоставление.
Регулярная загрузка xlsx: автоматизация и своя обработка
Если каждую неделю приходит прайс поставщика или выгрузка с маркетплейса в одном и том же формате, ручное сопоставление колонок быстро надоедает. Здесь два пути.
1. Сохранённые настройки. Внешняя обработка загрузки умеет сохранять настройку колонок в файл и восстанавливать её. Для повторяющегося формата это закрывает задачу без программиста.
2. Своя обработка. Программист пишет обработку под конкретный файл: она сама находит колонки, ищет товары по артикулу и создаёт документ. Платформа читает xlsx в табличный документ без Excel на компьютере. Пример чтения на сервере:
&НаСервереБезКонтекста
Функция ПрочитатьФайлExcel(АдресФайла)
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
ПолучитьИзВременногоХранилища(АдресФайла).Записать(ИмяВременногоФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Результат = Новый Массив;
// Первая строка - заголовки, данные со второй
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1, НомерСтроки, 1).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
ТекстКоличества = СтрЗаменить(ТабДок.Область(НомерСтроки, 3, НомерСтроки, 3).Текст, " ", "");
Строка = Новый Структура("Артикул, Количество", Артикул, ТекстКоличества);
Результат.Добавить(Строка);
КонецЦикла;
УдалитьФайлы(ИмяВременногоФайла);
Возврат Результат;
КонецФункции
На клиенте файл помещают во временное хранилище (например, через НачатьПомещениеФайлаНаСервер) и передают в функцию адрес. Текст количества дальше превращают в число с проверкой, а артикул ищут в справочнике номенклатуры запросом.
📌 Что ещё стоит заложить в свою обработку:
- проверку заголовков: если поставщик переставил колонки, обработка должна остановиться с понятным сообщением, а не загрузить цены в количество;
- журнал результата: сколько строк загружено, какие артикулы не найдены;
- режим «только проверить» без записи в базу.
Встречается старый способ через COM-объект Excel.Application. Он требует установленного Excel на той машине, где выполняется код, и на сервере 1С работает нестабильно. Для новых разработок чтение через табличный документ надёжнее.
Свою обработку подключают так же, как внешнюю: через «Дополнительные отчеты и обработки». Так её не придётся переносить при обновлении типовой конфигурации.
Как проверить, что данные загрузились правильно
Загрузка закончилась без ошибок — это ещё не значит, что всё легло верно. Проверка занимает пару минут.
- 🔍 Количество. Число строк в файле (без заголовка) должно совпасть с числом созданных элементов или строк документа.
- 🔍 Суммы. Итог по колонке «Сумма» в Excel сравните с итогом табличной части документа. Расхождение на копейки обычно означает округление цены, на крупную сумму — пропущенные строки.
- 🔍 Выборочно 3–5 строк. Откройте карточки: единица измерения, ставка НДС, вид номенклатуры, группа.
- 🔍 Дубли. Отсортируйте список номенклатуры по наименованию и посмотрите на элементы, созданные сегодня.
Если что-то пошло не так в документе, проще не проводить его и удалить строки, чем исправлять по одной. Для справочников ошибочные элементы отмечают на удаление, а окончательное удаление выполняет администратор в Администрирование → Обслуживание → Удаление помеченных объектов.