Импорт данных из Excel в справочник 1С

26.05.25

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

Предлагаю пример модуля, реализующего загрузку данных из Excel-файла (.xls | .xlsx) в справочники 1С. Код состоит из двух процедур: одна запускается на клиенте и инициирует выбор файла, вторая выполняется на сервере и обрабатывает импортированные данные.

Представленный модуль реализует механизм импорта данных из Excel-документа в информационную базу 1С:Предприятие. В качестве примера используется справочник, содержащий сведения об автомобилях (категория (например грузовой/легковой), марка авто и государственный номер, закрепленный за авто), доставленных на штрафстоянку.

Процедура "ЗагрузитьДанные"

На клиентской стороне открывается диалог выбора файла:

  • Разрешается выбрать только один файл.
  • Поддерживаются расширения *.xls, *.xlsx.
  • После выбора файл передаётся на сервер для обработки.

Процедура "ЗагрузитьДанныеНаСервере" 

На серверной стороне:

  • Открывается выбранный Excel-файл как табличный документ.
  • Цикл по строкам таблицы (параметр в цикле выбирайте исходя из положения данных в табличном документе, в моем случае данные хранятся со второй строки).
  • Для каждой строки извлекаются значения, а также проверяется наличие элементов в соответствующих справочниках.
  • При отсутствии элемента — создаётся новый.
  • Если автомобиль с указанным номером уже существует — пользователь уведомляется об этом.


Исходные коды:

&НаКлиенте
Процедура ЗагрузитьДанные(Команда)
    ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ВыборФайла.МножественныйВыбор = Ложь;
    ВыборФайла.Фильтр = "Табличные документы (*.xls, *.xlsx) | *.xls;*.xlsx";
    ВыборФайла.Показать(Новый ОписаниеОповещения("ЗагрузитьДанныеНаСервере", ЭтотОбъект, Новый Структура));
КонецПроцедуры

 

&НаСервере
Процедура ЗагрузитьДанныеНаСервере(Результат, ДопПараметр) Экспорт
    Если Не (Результат = Неопределено) Тогда
        СсылкаНаФайл = Результат[0];    
    Иначе
        Сообщить("Файл не выбран!");
        Возврат;
    КонецЕсли;
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Прочитать(СсылкаНаФайл);
    
    Для Строка = 2 По ТабДок.ВысотаТаблицы Цикл
        ДанныеАвтомобиля = ТабДок.Область(Строка,3).Текст;
        Если Справочники.Автопарк.НайтиПоКоду(ДанныеАвтомобиля, Истина) = Справочники.Автопарк.ПустаяСсылка() Тогда
            ЭлементАвтопарка = Справочники.Автопарк.СоздатьЭлемент();
            ЭлементАвтопарка.Код = ДанныеАвтомобиля;
            
            КатегорияАвто = ТабДок.Область(Строка,1).Текст;
            Если Справочники.Категории.НайтиПоНаименованию(КатегорияАвто, Истина) = Справочники.Категории.ПустаяСсылка() Тогда
                 ЭлементКатегория = Справочники.Категории.СоздатьЭлемент();
                 ЭлементКатегория.Наименование = КатегорияАвто;
                 ЭлементКатегория.Записать();
                 Сообщить("Добавлена новая категория: "+ЭлементКатегория.Наименование);
            КонецЕсли;
            ЭлементАвтопарка.Категория = Справочники.Категории.НайтиПоНаименованию(КатегорияАвто, Истина);
            
            МаркаАвто = ТабДок.Область(Строка,2).Текст;
            Если Справочники.Марки.НайтиПоНаименованию(МаркаАвто, Истина) = Справочники.Марки.ПустаяСсылка() Тогда
                 ЭлементМарка = Справочники.Марки.СоздатьЭлемент();
                 ЭлементМарка.Наименование = МаркаАвто;
                 ЭлементМарка.Записать();
                 Сообщить("Добавлена новая марка: "+ЭлементМарка.Наименование);
            КонецЕсли;
            ЭлементАвтопарка.Марка = Справочники.Марки.НайтиПоНаименованию(МаркаАвто, Истина);
            
            ЭлементАвтопарка.Записать();
            Сообщить("Добавлен автомобиль: "+ЭлементАвтопарка.Код);
        Иначе
            Сообщить("Автомобиль с номером : "+ДанныеАвтомобиля+" уже существует!");
        КонецЕсли;    
    КонецЦикла;
КонецПроцедуры

 

импорт Excel

См. также

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 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С:КА 2, 1С:ERP Управление предприятием.

5400 руб.

12.08.2021    39310    448    69    

182

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 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 форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 13.05.2025, версия 9.11 - 1010)

18000 руб.

20.11.2015    161693    402    386    

529

SALE! 10%

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

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

8000 7200 руб.

09.11.2016    248227    1139    916    

1059

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

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» из отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

6000 руб.

09.12.2020    27490    283    1    

137

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

Обработки загрузки данных о продажах WildBerries предназначены для следующих конфигураций: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 3.0; Розница, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3

6000 руб.

11.12.2019    60254    1031    3    

265

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

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

11100 руб.

29.10.2014    219894    674    528    

463
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ViktorVoron 26.05.25 18:13 Сейчас в теме
Спасибо за прекрасный гайд!
Я тут недавно сделал валидацию данных с последующей записью результатов в MS Word!
Может быть, кому пригодится.
Вот обработка команды:
Прикрепленные файлы:
Smirnov666; +1 Ответить
2. ViktorVoron 26.05.25 22:31 Сейчас в теме
Вот получение строки ещё
Прикрепленные файлы:
Smirnov666; +1 Ответить
3. MaxS 3005 27.05.25 06:51 Сейчас в теме
Странный код. 4 запроса в цикле, сообщить серверу. Это можно использовать для личных нужд, но не годится для обучающей статьи. Разве что если добавить сноску «Как не надо делать».

Платформа 1С позволяет из файла получить таблицу значений, которую можно задействовать в одном запросе к данным, а потом разбирать результат запроса.
Либо оставить код как есть, но добавить кеширование. Например, если в файле 1000 строк одной марки, зачем 1000 раз делать запрос к ИБ, если можно создать соответствие «Наименование, Ссылка». Ищем в соответствии, если не найдено, ищем в ИБ и результат помещаем в соответствие.
ivnik; CyberCerber; CITRUM; ixijixi; elegam; +5 Ответить
Оставьте свое сообщение