[ШАБЛОН] Загрузка данных из Excel

04.04.23

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
[ШАБЛОН] Загрузка данных из Excel :
.epf 7,11Kb
11
11 Скачать (1 SM) Купить за 1 850 руб.

Обработка запускается как внешняя из пользовательского режима.

Выбирается путь к файлу Excel (*.xlsx;*.xls;) и происходит загрузка данных из файла по этому пути. Как таковой загрузки никаких данных тут не происходит, и обработка строк условная. 

Все тесты производились на платформе 8.3.20.1914, однако код отработает на любой из 8.2, 8.3.
 

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

 &НаКлиенте
Процедура ПутьКФайлу(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт   //Процедура обрабатывает результат выбора файла пользователем
    ДиалогОткрытияФайла = ДополнительныеПараметры.ДиалогОткрытияФайла;
    Если ВыбранныеФайлы <> Неопределено Тогда
        Объект.ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
    Иначе
        ПоказатьПредупреждение(Неопределено,"Файл не выбран!");
    КонецЕсли;
КонецПроцедуры  


&НаКлиенте
Процедура Загрузить(Команда)
    Если Объект.ПутьКФайлу = "" Тогда
        Сообщ = Новый СообщениеПользователю;
        Сообщ.Текст = "Выберите файл!";
        Сообщ.Сообщить();
    Иначе
        Эксель = Новый COMОбъект("Excel.Application");
        КнигаЭксель = Эксель.Workbooks.Open(Объект.ПутьКФайлу);
        Лист1 = Книгаэксель.WorkSheets(1);
        п = 2;    
        Пока п < 13 Цикл
            СтруктураДанных = Новый Структура;
            СтруктураДанных.Вставить("Артикул", СокрЛП(Лист1.Cells(п,1).value));      
            СтруктураДанных.Вставить("Наименование",СокрЛП(Лист1.Cells(п,2).value));
            СтруктураДанных.Вставить("Количество",СокрЛП(Лист1.Cells(п,3).value)); 
            СтруктураДанных.Вставить("ЕдиницаИзмерения",СокрЛП(Лист1.Cells(п,4).value));
            СтруктураДанных.Вставить("Тип",СокрЛП(Лист1.Cells(п,5).value));
            СтруктураДанных.Вставить("Цена",СокрЛП(Лист1.Cells(п,6).value));
            СтруктураДанных.Вставить("ГОСТ",СокрЛП(Лист1.Cells(п,7).value));
            
            ЗагрузкаНаСервере(СтруктураДанных);
            п = п+1;
        КонецЦикла;
        Сообщ = Новый СообщениеПользователю;
        Сообщ.Текст = "Данные были успешно загружены!"; 
        Сообщ.Сообщить();
        Эксель.Application.Quit();
    КонецЕсли;    
КонецПроцедуры


&НаСервере
Процедура ЗагрузкаНаСервере(СтруктураДанных)
        
    Если Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СтруктураДанных.ЕдиницаИзмерения) = Справочники.ЕдиницыИзмерения.ПустаяСсылка() Тогда
        ДобЕдиницы = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
        ДобЕдиницы.Наименование = СтруктураДанных.ЕдиницаИзмерения;   
        ДобЕдиницы.Записать();
    КонецЕсли;  
    
    Если Справочники.ТипыДеталей.НайтиПоНаименованию(СтруктураДанных.Тип) = Справочники.ТипыДеталей.ПустаяСсылка() Тогда
        ДобТипаД = Справочники.ТипыДеталей.СоздатьЭлемент();
        ДобТипаД.Наименование = СтруктураДанных.Тип;
        ДобТипаД.Записать();
    КонецЕсли;
        
    Если Справочники.ГОСТы.НайтиПоНаименованию(СтруктураДанных.ГОСТ) = Справочники.ГОСТы.ПустаяСсылка() Тогда
        ДобГост = Справочники.ГОСТы.СоздатьЭлемент();
        ДобГост.Наименование = СтруктураДанных.ГОСТ;
        ДобГост.Записать();
    КонецЕсли; 
    
    
        //детали и все все

    Если Справочники.Детали.НайтиПоНаименованию(СтруктураДанных.Наименование) = Справочники.Детали.ПустаяСсылка() Тогда
        ДобДетали = Справочники.Детали.СоздатьЭлемент();  
        ДобДетали.Артикул = СтруктураДанных.Артикул;
        ДобДетали.Наименование = СтруктураДанных.Наименование; 
        ДобДетали.Количество = СтруктураДанных.Количество;
        ДобДетали.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(СтруктураДанных.ЕдиницаИзмерения);
        ДобДетали.Тип = Справочники.ТипыДеталей.НайтиПоНаименованию(СтруктураДанных.Тип);
        ДобДетали.Цена = СтруктураДанных.Цена;
        ДобДетали.ГОСТ = Справочники.ГОСТы.НайтиПоНаименованию(СтруктураДанных.ГОСТ);
        ДобДетали.Записать();
    КонецЕсли; 
КонецПроцедуры // ЗагрузкаНаСервере()

 

загрузка иксель загрузка

См. также

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 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С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    234105    1062    898    

1003

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

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

2400 руб.

12.08.2021    35486    348    68    

155

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 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С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106908    313    173    

326

Загрузка и выгрузка в 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 форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156045    378    378    

513

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

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

4800 руб.

09.12.2020    25342    252    1    

114

SALE! 15%

Загрузка и выгрузка в 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 9435 руб.

29.10.2014    216743    657    527    

456
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kai068 5 06.04.23 12:06 Сейчас в теме
А если у кого нет Excel? Установлен LibreOffice какой-нибудь.
Я пользуюсь универсальной загрузкой из любого табличного документа.

ТабличныйДок = Новый ТабличныйДокумент();
	ТабличныйДок.Прочитать(ФайлЗагрузки);
	
	Для Каждого Область Из ТабличныйДок.Области Цикл
		
		ЧитаемаяОбласть = ТабличныйДок.ПолучитьОбласть(Область.Имя);
			
			ПостроительЗапроса = Новый ПостроительЗапроса;
			ИсточникДанных = ЧитаемаяОбласть.Область(1, 1, ЧитаемаяОбласть.ВысотаТаблицы, ЧитаемаяОбласть.ШиринаТаблицы);
			ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ИсточникДанных );
			ПостроительЗапроса.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
			ПостроительЗапроса.ЗаполнитьНастройки();
			ПостроительЗапроса.Выполнить();
			ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить();
	КонецЦикла;
Показать


И все данные в ТЗ ТаблицаДанных. Очень удобно.
chernoff; additive; +2 Ответить
2. mcgoblin 3 08.04.23 18:38 Сейчас в теме
Вызов сервера в цикле?!!! да еще с передачей всего контекста о.О
3. paramedic 10.04.23 09:41 Сейчас в теме
Повеяло самым началом 00-х. 1С нормально не работает ни под чем кроме Windows, ТабличныйДокумент не читает ничего кроме mxl.
А если нет Excel? А если в таблице больше 11 строк?
Как ученический код взаимодействия с com-объектом Excel еще пойдет, но в практической работе такое использовать нельзя.
nagieva.d; Danila-Master; +2 Ответить
Оставьте свое сообщение