Перенос таблицы Excel в 1С 8.3: от разовой вставки до импорта по расписанию
Содержание
Чтобы вставить данные из Excel
в 1С 8.3, откройте нужный документ или справочник и нажмите над таблицей кнопку Загрузить. Откроется форма загрузки данных из файла: в неё вставляют строки из Excel через Ctrl+V или выбирают сам файл .xlsx, затем сопоставляют колонки и строки и подтверждают загрузку. Так работают БП 3.0, УТ 11 и другие типовые конфигурации на Библиотеке стандартных подсистем.
Способ выбирают по задаче. Разовый список товаров в накладную — встроенная кнопка. Справочник на тысячи позиций со сложными реквизитами — универсальная обработка загрузки из табличного документа. Ежедневный прайс от поставщика — своя обработка с запуском по расписанию. Правила конвертации (КД 2.0 / КД 3.0) нужны, когда данные идут между базами 1С, а Excel лишь одно из звеньев.
| Способ | Когда подходит | Что нужно |
|---|---|---|
Кнопка Загрузить в документе | Товары и услуги в накладную, счёт, заказ | Права пользователя на документ |
Загрузить в списке справочника | Новая номенклатура, контрагенты | Права на добавление элементов |
Универсальная обработка .epf | Любой справочник, табличная часть, регистр сведений | Право открывать внешние обработки |
| Своя обработка по расписанию | Регулярные файлы одного формата | Программист 1С, доступ сервера к папке |
| Правила КД 2.0 / КД 3.0 | Поток между базами 1С | Настроенный обмен |
Как подготовить файл Excel к загрузке в 1С
Большая часть неудачных загрузок решается ещё в Excel. 1С читает таблицу буквально: лишний пробел в артикуле — и товар не найдётся.
Приведите файл к виду «одна строка — одна запись»:
- Оставьте одну строку заголовков в самом верху. Шапку документа, логотип, итоги и подписи удалите.
- Разъедините объединённые ячейки. В Excel выделите таблицу и снимите объединение на вкладке «Главная».
- Уберите пустые строки внутри таблицы. Многие механизмы считают пустую строку концом данных.
- Удалите лишние пробелы: функция
=СЖПРОБЕЛЫ(A2)в соседнем столбце, затем «Вставить как значения». - Проверьте числа. Значения с зелёным треугольником в углу хранятся как текст. Количество и цену переведите в числовой формат, разделитель дробной части — запятая.
- Коды с ведущими нулями (артикул
00125, ИНН, КПП, БИК) держите в текстовом формате. Иначе Excel превратит0274062111в274062111. - Даты приведите к одному формату
ДД.ММ.ГГГГ. - Единицы измерения пишите так же, как в справочнике 1С: если там «шт», то не «шт.» и не «штука».
Добавьте в файл столбец с ключом поиска — артикулом или кодом. Сопоставление по наименованию ломается от одной лишней точки, по артикулу — почти никогда.
Сохраните файл в .xlsx. Старый .xls 1С тоже читает, но с .xlsx меньше проблем с кодировкой и длинными таблицами. Файл с паролем на открытие платформа не прочитает — снимите защиту.
Встроенная загрузка из Excel: документы и справочники
В современных типовых конфигурациях отдельная программа не нужна. Механизм «Загрузка данных из файла» встроен в БСП и подключён к основным документам и спискам.
В табличную часть документа
Пример для БП 3.0, документ поступления товаров:
- Откройте
Покупки → Поступление (акты, накладные, УПД)и создайте документ. Заполните поставщика, договор и склад. - На вкладке
Товарынажмите кнопкуЗагрузитьв командной панели таблицы. - В открывшейся форме есть шаблон с колонками. Скопируйте в Excel строки без заголовков, кликните в первую ячейку шаблона и нажмите
Ctrl+V. Либо выберите команду загрузки из файла и укажите.xlsx. - Нажмите
Далее. Программа покажет, какие строки сопоставлены с номенклатурой, а какие нет. - Несопоставленные строки сопоставьте вручную выбором из справочника или разрешите создать новые элементы.
- Нажмите
Загрузить. Строки попадут в документ, суммы пересчитаются. - Проверьте итог документа с итогом исходного файла и только потом проводите.
Так же загружают товары в Продажи → Реализация (акты, накладные, УПД), счета покупателям и заказы. В УТ 11 кнопка есть в заказах клиентов и поставщикам, в документах поступления и реализации.
В справочник номенклатуры или контрагентов
- Откройте список:
Справочники → Номенклатура(в БП 3.0) илиНСИ и администрирование → НСИ → Номенклатура(в УТ 11). - В командной панели списка нажмите
Загрузить. Если кнопки не видно, она в менюЕщё. - Выберите, куда загружать, вставьте данные или укажите файл.
- На шаге сопоставления 1С ищет существующие элементы. Найденные будут обновлены, ненайденные — созданы.
- Проверьте отчёт о результатах: сколько создано, обновлено и пропущено.
Загрузка в справочник создаёт элементы сразу, без черновика. Перед первой загрузкой большого файла сделайте резервную копию базы. Откатить тысячу новых карточек вручную долго.
Универсальные табличные документы: внешняя обработка и открытие Excel в 1С
Открыть Excel прямо в 1С
Платформа 8.3 умеет открывать .xlsx, .xls и .ods как табличный документ. Через Главное меню (≡) → Файл → Открыть выберите файл — он откроется в окне 1С. Это удобно, когда Excel на компьютере не установлен: таблицу можно просмотреть, поправить и скопировать область в форму загрузки.
Обработка «Загрузка данных из табличного документа»
Когда встроенной кнопки нет или нужно загрузить нестандартный объект, используют универсальную обработку ЗагрузкаДанныхИзТабличногоДокумента.epf. Её распространяют с материалами ИТС; для 8.3 берите версию для управляемых форм.
Порядок работы:
- Откройте обработку через
Файл → Открыть. Платформа покажет предупреждение безопасности о внешнем файле — подтвердите, если файл получен из надёжного источника. - Выберите режим загрузки: в справочник, в табличную часть объекта или в регистр сведений.
- Укажите вид объекта, например справочник «Номенклатура».
- Вставьте данные на вкладку с табличным документом или откройте файл. Первую строку данных укажите так, чтобы заголовки не попали в загрузку.
- На вкладке настройки для каждого реквизита задайте номер колонки или значение по умолчанию. Для ссылочных реквизитов выберите, как искать: по коду, по наименованию или по реквизиту.
- Отметьте ключевое поле, по которому обработка ищет существующие элементы. Без него каждая загрузка создаёт дубли.
- Запустите проверку (контроль заполнения): обработка подсветит строки, где значение не найдено.
- Исправьте ошибки и загрузите данные.
Чтобы открыть внешнюю обработку, у пользователя должно быть право на интерактивное открытие внешних обработок. Если его нет, обработку регистрируют администратором в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки — для этого файл должен поддерживать регистрацию.
Настройки сопоставления колонок можно сохранить в файл и использовать при следующей загрузке файла того же формата.
Правила конвертации КД 2.0 и КД 3.0: когда они нужны при импорте из Excel
«Конвертация данных» — инструмент для обмена между базами 1С, а не для чтения Excel. Напрямую .xlsx правила не загружают: КД 2.0 работает с файлами обмена XML, КД 3.0 — с форматом EnterpriseData.
КД имеет смысл, если Excel — только первый шаг длинного маршрута:
- 📦 данные из таблиц сначала загружают в промежуточную или старую базу, а затем переносят в рабочую по правилам обмена;
- 🔁 справочники при переходе с другой конфигурации переносят обменом, а Excel используют только для дозагрузки того, чего в старой базе не было;
- 🏢 несколько баз холдинга синхронизируются по EnterpriseData, а таблица Excel заводит данные в одну из них.
Для КД 2.0 разработчик создаёт правила в отдельной конфигурации «Конвертация данных», выгружает их в файл и подключает к обработке универсального обмена. В КД 3.0 правила превращаются в модуль менеджера обмена внутри конфигурации.
Для разовой или ежемесячной загрузки одной таблицы КД избыточна. Настройка правил займёт больше времени, чем сама загрузка встроенной кнопкой.
Ошибки при загрузке данных из Excel в 1С и как их исправить
Отдельно о единицах измерения и ставках НДС. Если в файле стоит значение, которого нет в справочнике 1С, форма загрузки оставит поле пустым. Документ при этом запишется, а ошибка всплывёт при проведении или в книге покупок. После загрузки отсортируйте табличную часть по этим колонкам — пустые значения окажутся вверху.
Автоматизация регулярной загрузки данных из Excel
Если один и тот же файл приходит каждый день или неделю, ручная загрузка превращается в рутину. Решение — обработка, которая сама читает файл и записывает данные.
Как устроена своя обработка
Платформа читает Excel через объект ТабличныйДокумент — Excel на компьютере или сервере для этого не нужен. Пример: прочитать прайс поставщика, найти номенклатуру по артикулу и собрать таблицу цен.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("\\fileserver\obmen\price.xlsx", СпособЧтенияЗначенийТабличногоДокумента.Текст);
Цены = Новый ТаблицаЗначений;
Цены.Колонки.Добавить("Номенклатура");
Цены.Колонки.Добавить("Цена");
НеНайдено = Новый Массив;
// Строка 1 — заголовки, данные начинаются со строки 2
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Артикул = СокрЛП(ТабДок.Область(НомерСтроки, 1).Текст);
Если ПустаяСтрока(Артикул) Тогда
Продолжить;
КонецЕсли;
ТекстЦены = ТабДок.Область(НомерСтроки, 3).Текст;
ТекстЦены = СтрЗаменить(ТекстЦены, " ", "");
ТекстЦены = СтрЗаменить(ТекстЦены, Символы.НПП, "");
ТекстЦены = СтрЗаменить(ТекстЦены, ".", ",");
Попытка
Цена = Число(ТекстЦены);
Исключение
НеНайдено.Добавить(Артикул);
Продолжить;
КонецПопытки;
Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
Если Номенклатура.Пустая() Тогда
НеНайдено.Добавить(Артикул);
Продолжить;
КонецЕсли;
НоваяСтрока = Цены.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.Цена = Цена;
КонецЦикла;
Дальше таблица Цены заполняет документ «Установка цен номенклатуры», а массив НеНайдено уходит в журнал или письмо ответственному. Запись документа программист добавляет под свою конфигурацию — реквизиты табличной части отличаются в БП и УТ.
Как запустить по расписанию
- ⏰ Дополнительная обработка БСП. Обработку регистрируют в разделе дополнительных отчетов и обработок, а для её серверной команды включают расписание. Конфигурацию снимать с поддержки не нужно.
- 🧩 Расширение конфигурации с регламентным заданием — когда логика сложная и должна жить в базе.
- 📁 Папка обмена. Поставщик или другая система кладёт файл в сетевую папку, задание забирает его и переносит в архив с датой.
Регламентное задание в клиент-серверной базе выполняется на сервере 1С от имени служебной учётной записи (часто USR1CV8). Путь к файлу указывайте сетевой (\\server\share\...), а этой учётной записи дайте права на чтение и запись в папку. Диск C: пользователя сервер не видит.
Старые обработки открывали файл через COM-объект Excel.Application. На сервере так делать не стоит: нужен установленный Excel, процессы зависают, а при обновлении Office всё ломается. Чтение через ТабличныйДокумент надёжнее.