Перенос таблицы из Excel в 1С 8.3: от подготовки файла до проверки результата
Содержание
Чтобы загрузить Excel
в 1С 8.3, откройте нужный документ или список справочника и нажмите кнопку Загрузить над табличной частью. Дальше выберите файл .xlsx или вставьте строки через буфер обмена, сопоставьте колонки и подтвердите перенос. Так работают современные типовые конфигурации: 1С:Бухгалтерия 3.0, Управление торговлей 11, Комплексная автоматизация 2 и ERP.
Если такой кнопки нет — в старом релизе, в самописной или нетиповой базе — используют внешнюю обработку «Загрузка данных из табличного документа» с диска ИТС. Для регулярной загрузки одних и тех же файлов (прайс поставщика, выгрузка с маркетплейса) пишут свою обработку.
| Способ | Когда выбирать | Что учесть |
|---|---|---|
| Кнопка «Загрузить» в документе | Накладная, счёт, заказ от поставщика в Excel | Строки только добавляются в табличную часть, сам документ создаёте вы |
| Загрузка в список справочника | Первичное заполнение номенклатуры, контрагентов | Решите, обновлять ли найденные элементы или только создавать новые |
| Внешняя обработка с ИТС | Нет встроенной загрузки, нужен перенос в регистр или в реквизиты, которых нет в стандартной форме | Нужны права на открытие внешних обработок; работа требует аккуратности |
| Своя обработка (код) | Один и тот же формат файла приходит постоянно | Разовая разработка, потом загрузка в один клик |
1. Подготовка файла Excel к загрузке в 1С
Неудачная загрузка чаще упирается не в 1С, а в саму таблицу. Перед переносом приведите файл к простому виду: один лист, одна строка шапки, дальше только данные.
Структура листа
- 📄 Шапка — ровно одна строка. Двухэтажные заголовки и объединённые ячейки 1С прочитает неправильно: данные съедут на колонку.
- 🧹 Уберите итоговые строки «Всего», подписи, логотипы и пустые строки внутри таблицы. Пустая строка в середине часто воспринимается как конец данных.
- 👁 Раскройте скрытые строки и столбцы и удалите автофильтр. Скрытая строка всё равно загрузится.
- 📑 Если в книге несколько листов, нужный поставьте первым или сохраните его отдельным файлом.
Значения в ячейках
- 🔢 Формулы замените значениями:
Ctrl+C→ «Специальная вставка» → «Значения». Ссылки на другие книги после открытия на другом компьютере превращаются в ошибки. - ➗ Количество и цены — числами, без пробелов-разделителей, без «руб.» и «шт.» в ячейке. Число вида
1 250,00, введённое как текст, часто превращается в 0. - 🏷 Артикулы, ИНН, КПП, коды и штрихкоды — в текстовом формате ячейки. Иначе Excel срежет ведущие нули (
00125→125), а 12-значный ИНН индивидуального предпринимателя покажет как7,70708E+11. - ✂️ Уберите лишние пробелы в начале и конце: функция
СЖПРОБЕЛЫ()в соседнем столбце, затем вставка значениями. - 📏 Единицы измерения пишите так же, как они названы в справочнике 1С: «шт» и «шт.» для программы — разные строки.
Формат файла
Сохраните книгу в .xlsx. Старый .xls тоже читается, но с ним чаще бывают сюрпризы с кодировкой и датами. Перед загрузкой закройте файл в Excel: открытая книга заблокирована, и 1С не сможет её прочитать.
Добавьте в таблицу колонку «Артикул», даже если поставщик прислал только наименования. Поиск по артикулу точнее, чем по названию, где «Бумага А4 Снегурочка» и «Бумага офисная А4 “Снегурочка”» — два разных товара.
2. Как загрузить файл Excel в документ или справочник 1С
Загрузка в табличную часть документа
Типичный случай — поставщик прислал накладную в Excel, и её строки нужно перенести в поступление.
- Создайте документ, например в БП 3.0:
Покупки → Поступление (акты, накладные, УПД)→ Поступление → Товары (накладная, УПД). - Заполните шапку: контрагент, договор, склад, дата.
- Над табличной частью «Товары» нажмите Загрузить.
- Откроется форма загрузки с пустой таблицей. Здесь два варианта:
- выделите строки в Excel, скопируйте
Ctrl+Cи вставьте в эту таблицуCtrl+V; - или нажмите кнопку выбора файла и укажите
.xlsx.
- выделите строки в Excel, скопируйте
- Проверьте, что колонки встали на свои места (подробнее — в следующем разделе), и нажмите Далее.
- Посмотрите итог сопоставления: найденные товары отмечены, ненайденные выделены отдельно. Решите, что делать с ненайденными, и нажмите Загрузить или Готово.
- Строки появятся в документе. Сверьте итоговую сумму с суммой в Excel и только после этого проводите.
Копирование через буфер обмена удобнее, чем выбор файла: можно взять только нужный диапазон без шапки поставщика и подписей.
В УТ 11 и КА 2 кнопка называется так же и стоит над табличными частями заказов, поступлений, реализаций, установки цен. Логика формы та же.
Загрузка в справочник целиком
Для первичного наполнения номенклатуры или контрагентов откройте список справочника, например Справочники → Номенклатура, и найдите команду Загрузить на командной панели списка (в части релизов она спрятана в меню Ещё). Мастер предложит:
- Выбрать, в какие реквизиты попадут колонки.
- Заполнить таблицу из файла или из буфера.
- Указать, по какому полю искать существующие элементы.
- Решить судьбу найденных: обновить их реквизиты или оставить как есть.
Режим «обновлять существующие» перезапишет реквизиты у найденных элементов. Если в Excel пустая колонка «Вид номенклатуры», а она включена в загрузку, пустое значение может затереть заполненное. Отключайте колонки, которые не собираетесь менять.
3. Сопоставление колонок Excel с реквизитами 1С
Это ключевой шаг. 1С не знает, что в вашей третьей колонке цена, а в пятой — НДС. Связь задаёте вы.
Как устроено сопоставление
В форме загрузки у каждой колонки есть заголовок с реквизитом 1С. Если шапка в Excel совпадает с названием реквизита, программа подставит его сама. Если нет — щёлкните по заголовку и выберите нужный реквизит из списка. Лишние колонки (например, «Примечание поставщика») отключите, чтобы они не мешали.
Пример типового сопоставления для накладной:
По какому полю искать товар
| Поле поиска | Точность | Когда подходит |
|---|---|---|
| Штрихкод | Высокая | Розница, товары с заведёнными штрихкодами |
| Артикул | Высокая | Артикулы в 1С совпадают с артикулами поставщика |
| Наименование | Низкая | Справочник маленький, названия строго одинаковые |
| Код 1С | Высокая | Файл ранее выгружен из этой же базы |
При поиске по наименованию сравнение идёт по строке целиком. Лишний пробел, другая кавычка или буква «ё» вместо «е» — и товар не найдётся.
Что делать с ненайденными строками
Форма покажет их отдельно. Варианты:
- ✅ Сопоставить вручную — выбрать товар из справочника. Подходит, если ненайденных немного.
- ➕ Создать новые элементы — программа заведёт карточки с данными из файла. Удобно, но опасно: из-за опечатки в названии появится дубль существующего товара.
- ⏭ Пропустить — строка не попадёт в документ. Её придётся добавить руками.
Перед массовым созданием новых элементов прогоните 10–20 строк и посмотрите, что получилось. Дубли номенклатуры потом придётся объединять, а это долго и с риском перепутать остатки.
4. Почему Excel не загружается в 1С и как это исправить
Если загрузка прошла не так, как ждали, ищите причину по симптому.
Как откатить неудачную загрузку
- В документе: выделите загруженные строки и удалите их, документ не проводите, пока не сверите сумму.
- Если уже провели: отмените проведение, исправьте строки, проведите снова.
- Лишние элементы справочника: пометьте на удаление, затем удалите через
Администрирование → Обслуживание → Удаление помеченных объектов. Программа не даст удалить элемент, на который ссылаются документы, и покажет эти ссылки.
5. Автоматизация загрузки из Excel: внешние обработки и код
Универсальная обработка с ИТС
На диске ИТС и на сайте поддержки много лет лежит обработка «Загрузка данных из табличного документа» (файл ЗагрузкаДанныхИзТабличногоДокумента.epf). Она умеет загружать в справочники, табличные части и регистры сведений, а для каждой колонки задаётся реквизит и способ поиска.
Как открыть: меню (кнопка с тремя полосками в левом верхнем углу) → Файл → Открыть → выбрать .epf. Если при открытии появляется отказ по безопасности, администратору нужно дать пользователю право на открытие внешних обработок или включить для него это право в профиле групп доступа.
Работайте с ней сначала в копии базы. Обработка пишет данные напрямую и не спрашивает подтверждения на каждую строку.
Своя обработка для повторяющихся файлов
Если каждую неделю приходит прайс одного и того же поставщика, проще один раз написать обработку под его формат. Платформа читает .xlsx в табличный документ без установленного Excel — через метод Прочитать(). Пример серверной процедуры, которая проходит по строкам и забирает значения трёх колонок:
&НаСервере
Процедура ЗагрузитьПрайсНаСервере(АдресФайла)
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
// Строка 1 — шапка, данные со второй строки
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Стр = Формат(НомерСтроки, "ЧГ=0");
Артикул = СокрЛП(ТабДок.Область("R" + Стр + "C1").Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
Наименование = СокрЛП(ТабДок.Область("R" + Стр + "C2").Текст);
ЦенаТекстом = СтрЗаменить(ТабДок.Область("R" + Стр + "C3").Текст, " ", "");
ЦенаТекстом = СтрЗаменить(ЦенаТекстом, ",", ".");
Цена = Число(ЦенаТекстом);
// Здесь поиск номенклатуры по артикулу и запись цены
Сообщить(СтрШаблон("%1 | %2 | %3", Артикул, Наименование, Цена));
КонецЦикла;
УдалитьФайлы(ИмяВременногоФайла);
КонецПроцедуры
На клиенте файл выбирают диалогом и помещают во временное хранилище, а на сервер передают адрес. Так код работает и в файловой, и в клиент-серверной базе, где у сервера нет доступа к диску пользователя.
Число() вызовет исключение, если в ячейке окажется текст вроде «по запросу». В рабочей обработке оберните преобразование в Попытка … Исключение и выводите номер проблемной строки.
Почему не COM-объект Excel
Старые обработки открывают Excel через Новый COMОбъект("Excel.Application"). Этот способ требует установленного Excel на том компьютере, где выполняется код, работает медленно и в клиент-серверной базе ломается: на сервере 1С Excel обычно не установлен. Чтение через табличный документ этих проблем не имеет.
Обработку можно встроить в меню
Готовую обработку регистрируют как дополнительную: Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. После этого она появляется в разделе программы, и пользователям не нужно искать файл .epf на диске.
6. Чем загружать Excel в разные конфигурации 1С
Механизм загрузки во всех современных типовых решениях на управляемых формах одинаковый — он входит в общую библиотеку, на которой они построены. Различается то, куда обычно грузят данные.
| Конфигурация | Что чаще всего загружают из Excel | Чем |
|---|---|---|
| Бухгалтерия 3.0 | Строки поступлений и реализаций, номенклатура, контрагенты | Кнопка «Загрузить» в документе и в списке справочника |
| Управление торговлей 11, КА 2, ERP | Заказы клиентов и поставщикам, прайсы, установка цен номенклатуры | Кнопка «Загрузить» в табличных частях, загрузка в справочники |
| Самописные и старые конфигурации на обычных формах | Любые данные | Обработка «Загрузка данных из табличного документа» в толстом клиенте |
Начальные остатки удобнее переносить не в справочник, а сразу в документы ввода остатков: у них тоже есть табличная часть с загрузкой. Так вы получите и карточки номенклатуры, и количество на складе за один проход.
Банковские выписки из Excel не грузят: для них есть обмен с клиент-банком в текстовом формате 1CClientBankExchange или прямая интеграция с банком.