Загрузка данных из Excel в 1С при миграции с зарубежных ERP: маппинг вместо кода

10.03.26

Интеграция - Загрузка и выгрузка в Excel

О подходах к загрузке данных из Excel в 1С при миграции. Сравнение ручной разработки обработок и универсальных инструментов. Описание веб-интерфейса для настройки маппинга полей и генерации обработок загрузки.

Введение

Миграция с зарубежных ERP-систем на 1С уже давно является распространенной задачей. Выгрузить данные в Excel из большинства таких систем несложно - для этого есть стандартные инструменты. Загрузить эти данные в 1С тоже можно - но здесь начинается работа.

Между Excel-файлом от аналитика и готовыми данными в 1С стоит либо программист с обработкой, либо универсальный инструмент загрузки. Разберём, почему оба варианта часто неудобны, и как можно сделать иначе.


Как обычно решают задачу загрузки

Вариант 1. Написать обработку под задачу

Классический путь: аналитик готовит маппинг (соответствие полей) в таблице - какая колонка Excel соответствует какому реквизиту 1С. Программист читает этот маппинг и пишет обработку загрузки (.epf) вручную.

Проблема не в том, что это сложно. Проблема в том, что это трудоемко и повторяется для каждого типа документа, каждого справочника, каждого нового формата выгрузки. Типовой проект миграции может включать десятки таких объектов. Каждый объект - это отдельная задача: изучение структуры, написание кода загрузки, настройка маппинга, обработка табличных частей, поиск ссылочных объектов. И отдельный цикл правок после тестирования.

Отдельная боль - итерации. Типы данных не совпали. Табличная часть заполняется не так. Условие записи строки не учли. Каждое такое замечание - возврат к программисту, правка кода, повторное тестирование. На один объект может уйти несколько дней работы, а на весь проект - недели.

Вариант 2. Универсальная обработка загрузки

Универсальные обработки для загрузки из Excel в 1С существуют, их немало - в том числе на Инфостарт. Но у большинства из них общая черта: интерфейс настройки находится внутри 1С - в табличном документе или форме обработки.

 

 

Это создаёт несколько неудобств:

  • Интерфейс табличного документа и обработки плохо масштабируется при большом количестве реквизитов и табличных частей
  • Настройки сложно версионировать, передавать, воспроизводить на другой базе
  • Визуализация маппинга, как правило, минимальная - трудно окинуть взглядом всю конфигурацию загрузки целиком

Альтернативный подход: веб-интерфейс для настройки маппинга

Столкнувшись с описанными болями на практике, мы задались вопросом: а что если аналитик всё равно составляет маппинг - так почему бы не дать ему инструмент, в котором это делать удобнее и который сразу превращает этот маппинг в готовую обработку?

Так появилась идея вынести настройку загрузки за пределы 1С - в браузер. Аналитик или консультант настраивает маппинг в веб-интерфейсе, не открывая платформу. На выходе получает готовую .epf обработку, которую достаточно запустить в 1С.

Программист в этой цепочке нужен только для нестандартных случаев.

Ниже описана механика такого подхода на примере инструмента ObjectFlow.

 


Как это работает

Шаг 1. Загрузка метаданных

Для настройки маппинга инструменту нужно знать структуру конфигурации 1С: какие объекты есть, какие у них реквизиты, какие типы данных. Это делается через выгрузку XML с метаданными загружаемого объекта.

После загрузки в интерфейсе появляется дерево объекта конфигурации: реквизиты и табличные части.

 

Шаг 2. Загрузка Excel-файла

Загружается файл Excel, который будет использоваться как источник данных. Инструмент читает структуру: листы, колонки, первые строки для предпросмотра. Для каждой колонки определяется тип значений - строка, число, дата - что помогает корректно настроить маппинг и избежать ошибок преобразования типов при загрузке в 1С.

 

 

Шаг 3. Настройка маппинга

Основной экран - таблица маппинга. Каждая строка - это правило: откуда берётся значение и куда оно идёт.

Для каждого реквизита можно выбрать один из трёх способов заполнения:

  • Из файла - значение берётся из указанной колонки Excel. Для ссылочных реквизитов (Номенклатура, Контрагент и т.д.) можно настроить поиск объекта в базе по одному или нескольким свойствам, либо задать значение напрямую - если нужно записать строку как есть без поиска
  • Фиксированное значение - одно значение для всех строк (например, вид операции, организация)
  • Алгоритм - произвольный код на встроенном языке 1С, если логика заполнения нестандартная

Два результата на выходе

Экспорт маппинга в Word

Первый результат настройки - документ Word с описанием всего маппинга. По сути это готовое техническое задание на загрузку: какой объект загружается, какие колонки Excel куда идут, какие условия применяются. Такой документ удобно согласовывать с заказчиком, передавать в команду или хранить как проектную документацию.

 

 

Генерация обработки .epf

Но останавливаться на документации не хотелось. Раз маппинг уже полностью описан в структурированном виде - логичный следующий шаг: генерировать из него готовую обработку автоматически. Так появилась возможность получить на выходе файл .epf, который достаточно открыть в 1С и запустить загрузку.

Ниже - возможности, которые доступны при настройке маппинга и влияют на логику генерируемой обработки.


Возможности настройки маппинга

Заполнение примитивных типов

Для реквизитов примитивных типов (строка, число, дата, булево) доступно несколько способов заполнения:

  • Прямое копирование из файла - значение берётся напрямую из указанной колонки Excel с автоматическим преобразованием типа. Инструмент определяет тип колонки при загрузке файла и корректно преобразует значения при записи в 1С.
  • Заполнение значений перечислений - для реквизитов типа перечисление можно указать колонку Excel, из которой будет браться наименование значения перечисления. Инструмент автоматически находит соответствующее значение в метаданных и устанавливает его в объект.

 



 

Группировка строк Excel

В выгрузках данные часто организованы так, что несколько строк Excel относятся к одному объекту 1С. Например, все строки с одним номером документа - это один документ с несколькими строками табличной части. Без группировки каждая строка будет создавать отдельный объект, что приводит к дублированию.

Можно указать колонку-идентификатор - инструмент сгруппирует строки с одинаковым значением и создаст из них один объект 1С.

 

 

Несколько табличных частей

Сложность возникает когда документ имеет несколько табличных частей, а данные для всех них находятся в одном Excel-листе. В обработке написанной вручную нужно явно описывать логику: какие колонки относятся к какой ТЧ, в каком порядке заполнять, как не перепутать строки. При визуальной настройке маппинга каждая ТЧ описывается отдельно - инструмент сам разбирает строки по нужным табличным частям при генерации обработки.

Условная запись строк ТЧ

Не всегда нужно записывать строку в табличную часть. Например, строку в табличной части нужно создавать только если в Excel заполнены соответствующие колонки.

Для каждой ТЧ можно настроить условие: записывать строку только если заполнены определённые колонки (логика «все» или «хотя бы одна»).

 

 

Поиск существующих объектов

При загрузке ссылочных реквизитов (Номенклатура, Контрагент, Склад и т.д.) нужно не просто записать строку, а найти объект в базе 1С. Доступно несколько способов поиска:

  • Поиск по GUID - если в Excel-файле хранятся уникальные идентификаторы объектов из исходной базы 1С, можно выполнить точный поиск по GUID. Это самый быстрый и надёжный способ, когда идентификаторы сохранены при выгрузке.
  • Поиск по наименованию - поиск объекта по значению реквизита (Наименование, Код и т.д.). Подходит для большинства сценариев миграции, когда в файле есть текстовые идентификаторы объектов.
  • Поиск по нескольким свойствам - можно настроить поиск одновременно по нескольким реквизитам. Например, искать номенклатуру одновременно по Наименованию и Артикулу, что повышает точность поиска и снижает риск ошибок при совпадении наименований.

 

 

Режим обновления

Загрузка может работать в двух режимах: создавать новые объекты или обновлять существующие. Для обновления указываются поля поиска - по каким реквизитам искать существующую запись.

Очистка ТЧ перед заполнением

При обновлении документов можно указать, нужно ли очищать табличную часть перед добавлением новых строк.

Режим ОбменДанными.Загрузка

При записи объектов в 1С можно включить режим ОбменДанными.Загрузка = Истина. В этом режиме платформа пропускает обработчики событий и большинство проверок. Это ускоряет загрузку больших объёмов и позволяет обойти бизнес-логику конфигурации, которая может мешать при первоначальном заполнении базы.

Транзакция

Можно включить загрузку в транзакции - тогда при возникновении ошибки на любом объекте все изменения в рамках сеанса загрузки будут отменены. Это гарантирует целостность данных: либо загрузилось всё, либо ничего не изменилось.

Обязательные поля и режим записи объекта

Платформа 1С при записи объекта проверяет заполнение обязательных реквизитов. Если в загружаемых данных какие-то поля не заполнены, запись завершится ошибкой. Для каждого реквизита можно настроить условие проверки: всегда проверять заполненность, не проверять совсем, или проверять только если значение заполнено в Excel. Это позволяет гибко управлять валидацией при загрузке - например, не требовать обязательных полей при первичном заполнении базы.

Режим записи объекта

Можно выбрать кто инициирует запись объекта в базу:

  • Автоматически - обработка сама записывает объект после заполнения всех реквизитов
  • В коде алгоритма - запись выполняется вручную внутри произвольного алгоритма. Это нужно когда перед записью требуется нестандартная логика: дополнительные проверки, создание связанных объектов, условная запись в зависимости от данных

Произвольные алгоритмы

Произвольный код на встроенном языке 1С можно использовать в двух местах.

На уровне реквизита - алгоритм выполняется для каждой строки Excel и вычисляет значение конкретного поля. Имеет доступ к текущим значениям из файла. Подходит для вычисляемых значений, преобразования форматов, условной логики заполнения.

Перед записью объекта - общий алгоритм, который выполняется после того как все реквизиты заполнены, но до записи в базу. Здесь можно дополнительно проверить или скорректировать объект целиком, установить значения которые зависят от нескольких реквизитов сразу, или полностью отменить запись конкретной строки.

 


Результат

После настройки маппинга генерируется файл .epf - стандартная внешняя обработка 1С. Её можно открыть в любой базе нужной конфигурации, указать Excel-файл и запустить загрузку.

Сам файл конфигурации маппинга сохраняется в формате JSON - его можно передать коллеге, положить в систему контроля версий, использовать повторно при следующей загрузке.

Предварительный просмотр результата

Перед запуском полной загрузки в сгенерированной обработке доступна функция предварительного просмотра. Она позволяет:

  • Загрузить несколько первых строк из Excel-файла (например, первые 10-20 записей)
  • Выполнить обработку этих строк без записи в базу
  • Просмотреть результат заполнения всех реквизитов и табличных частей
  • Проверить корректность поиска ссылочных объектов
  • Увидеть возможные ошибки и предупреждения

Это помогает быстро проверить правильность настройки маппинга без риска загрузить некорректные данные в базу. Если что-то не так - можно вернуться в веб-интерфейс, скорректировать настройки и сгенерировать обработку заново.

 


Итог

Описанный набор возможностей закрывает большую часть типовых задач загрузки при миграции: группировка, несколько ТЧ, условная запись, поиск ссылочных объектов, произвольные алгоритмы, управление транзакцией и режимом записи - это то, что в ручной разработке занимает основной объём работы.

Если в конкретном объекте встречается что-то нестандартное, программист дорабатывает уже готовую обработку точечно - вместо того чтобы писать её с нуля. Экономия времени на проекте с десятками объектов получается весьма ощутимой.


Выводы

Задача загрузки данных из Excel в 1С кажется простой только на первый взгляд. На практике она складывается из множества деталей: типы данных, ссылочные объекты, табличные части, условия записи, режимы работы платформы. Каждую из этих деталей в ручной разработке нужно явно описывать в коде.

Подход с визуальным маппингом меняет не технологию - он меняет роли. Аналитик перестаёт быть посредником который объясняет программисту что нужно сделать. Он сам описывает правила в понятном интерфейсе, сам получает документ для согласования, сам видит результат. Программист подключается точечно, там где действительно нужна нестандартная логика.

Интересно и то, что маппинг в JSON-формате сам по себе становится артефактом проекта - его можно хранить, версионировать, передавать. Это несколько меняет отношение к загрузке данных: из разовой задачи она превращается в воспроизводимый процесс.

Насколько такой подход приживётся в реальных проектах - покажет практика. Но направление, как кажется, правильное: меньше рутинного кода, больше декларативного описания намерений.


Исходный код и примеры

Примеры настройки для типовых задач (ввод остатков, загрузка документов с несколькими ТЧ, обновление существующих объектов) опубликованы в репозитории github.com/mountlyru/objectflow.

Вступайте в нашу телеграмм-группу Инфостарт

загрузка данных Excel миграция ERP маппинг обработка загрузки конфигурация 1С табличные части справочники документы автоматизация визуальный маппинг генерация обработок импорт данных настройка маппинга загрузка справочников загрузка документов миграция данных загрузка из Excel в 1С

См. также

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко, Каспи в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP.

5490 руб.

12.08.2021    44839    553    71    

215

SALE! 15%

Загрузка и выгрузка в Excel Оптовая торговля Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл эксель, документ 1С и нажимаете кнопку "Загрузить"

8000 руб.

09.11.2016    269698    1190    950    

1107

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    229970    739    528    

492

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 12.12.2025, версия 9.3.1 - 10.6.1)

20740 руб.

20.11.2015    172399    426    396    

542

WEB-интеграция Загрузка и выгрузка в Excel Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять товары в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически синхронизирует ваш каталог. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    2030    6    0    

7
Для отправки сообщения требуется регистрация/авторизация